博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1047 单调队列
阅读量:4921 次
发布时间:2019-06-11

本文共 2274 字,大约阅读时间需要 7 分钟。

 

做4次单调队列优化DP。

 

1 /************************************************************** 2     Problem: 1047 3     User: idy002 4     Language: C++ 5     Result: Accepted 6     Time:2088 ms 7     Memory:16756 kb 8 ****************************************************************/ 9  10 #include 
11 #define N 101012 13 struct Pair {14 int i, j, v;15 Pair(){}16 Pair( int i, int j, int v ):i(i),j(j),v(v){}17 };18 19 int n, m, r, ans;20 int v[N][N], dp[N][N], dmin[N][N], dmax[N][N];21 Pair qu[N]; int bg, ed;22 23 int dodp() {24 // min25 for( int i=1; i<=n; i++ ) {26 bg=1, ed=0;27 for( int j=1; j<=m; j++ ) {28 while( bg<=ed && qu[bg].j
v[i][j] ) ed--;30 qu[++ed] = Pair(i,j,v[i][j]);31 dp[i][j] = qu[bg].v;32 }33 }34 for( int j=1; j<=m; j++ ) {35 bg=1, ed=0;36 for( int i=1; i<=n; i++ ) {37 while( bg<=ed && qu[bg].i
dp[i][j] ) ed--;39 qu[++ed] = Pair(i,j,dp[i][j]);40 dmin[i][j] = qu[bg].v;41 }42 }43 // max44 for( int i=1; i<=n; i++ ) {45 bg=1, ed=0;46 for( int j=1; j<=m; j++ ) {47 while( bg<=ed && qu[bg].j
tans ) ans=tans;67 }68 /* debug69 fprintf( stderr, "n=%d m=%d r=%d\n", n, m, r );70 fprintf( stderr, "v:\n" );71 for( int i=1; i<=n; i++ ) {72 for( int j=1; j<=m; j++ )73 fprintf( stderr, "%2d ", v[i][j] );74 fprintf( stderr, "\n" );75 }76 fprintf( stderr, "dmin:\n" );77 for( int i=1; i<=n; i++ ) {78 for( int j=1; j<=m; j++ ) 79 fprintf( stderr, "%2d ", dmin[i][j] );80 fprintf( stderr, "\n" );81 }82 fprintf( stderr, "dmax:\n" );83 for( int i=1; i<=n; i++ ) {84 for( int j=1; j<=m; j++ )85 fprintf( stderr, "%2d ", dmax[i][j] );86 fprintf( stderr, "\n" );87 }88 */89 return ans;90 }91 int main() {92 scanf( "%d%d%d", &n, &m, &r );93 for( int i=1; i<=n; i++ )94 for( int j=1; j<=m; j++ )95 scanf( "%d", &v[i][j] );96 printf( "%d\n", dodp() );97 }
View Code

 

转载于:https://www.cnblogs.com/idy002/p/4533410.html

你可能感兴趣的文章
快速切题 poj3414 Pots
查看>>
Linux 常用命令
查看>>
五家共井(第1届第3题)
查看>>
c文件操作
查看>>
《Spring In Action》 读书笔记(2) -- bean装配 ...
查看>>
很好很強大..
查看>>
Oracle之子查询:Top-N问题
查看>>
PAT:1011. A+B和C (15) AC
查看>>
JS中的内置对象
查看>>
Android--在Android应用中愉快地写C/C++代码(转)
查看>>
IOSUIcontrol事件
查看>>
docker 部署spring.boot项目【一】(引用外部配置文件)
查看>>
CSS 巧用 :before和:after
查看>>
Winform——用户登陆
查看>>
【博客园IT新闻】博客园IT新闻 iPhone 客户端发布
查看>>
Zookeeper通过java创建、查看、修改、删除znode
查看>>
Web设计师应该避免的 6 大错误
查看>>
强化学习(基本概念)
查看>>
selenium学习笔记(一)
查看>>
Android 更新UI的两种方法——handler和runOnUiThread()
查看>>