打卡信奥刷题(2981)用C++实现信奥题 P6063 [USACO05JAN] The Wedding Juicer G
P6063 [USACO05JAN] The Wedding Juicer G题目描述约翰的奶牛们找到了一份不错的兼职一设计冲压式榨汁机榨汁机设计如下一个W×HW \times HW×H的底座3≤W,H≤3003\leq W,H \leq 3003≤W,H≤300每一个1×11 \times 11×1的方格上都放有一个高度为BBB1≤B≤1091 \leq B \leq 10^91≤B≤109的柱子用来榨汁。假设柱子之间都被完美地粘合了这样水不会顺着柱子与柱子之间的空隙流走。但是约翰一直不知道这么一个榨汁机到底能装多少果汁假设榨汁机周围没有任何东西也就是说边界上的水都会流走有些榨汁机则根本不能装下任何的果汁。输入格式第一行两个整数WWW和HHH。接下来HHH行每行WWW个数字代表了高度。输出格式输出最多能装多少果汁。输入输出样例 #1输入 #14 5 5 8 7 7 5 2 1 5 7 1 7 1 8 9 6 9 9 8 9 9输出 #112C实现#includebits/stdc.husingnamespacestd;constintN1e35;intn,m;inta[N][N],fx[4][2]{{1,0},{0,1},{-1,0},{0,-1}},ans0;boolvis[N][N];structnode{intx,y;booloperator(constnodes)const{returna[x][y]a[s.x][s.y];}};priority_queuenodeq;voidbfs(){for(inti2;in;i){q.push({i,1});q.push({i,m});vis[i][1]true;vis[i][m]true;}for(inti2;im;i){q.push({1,i});q.push({n,i});vis[1][i]true;vis[n][i]true;}vis[1][1]vis[n][1]vis[1][m]vis[n][m]true;while(!q.empty()){node tq.top();q.pop();intxt.x,yt.y;for(inti0;i4;i){intx_xxfx[i][0];intx_yyfx[i][1];if(x_x1x_y1x_xnx_ym!vis[x_x][x_y]){vis[x_x][x_y]true;if(a[x][y]a[x_x][x_y]){ansa[x][y]-a[x_x][x_y];a[x_x][x_y]a[x][y];}q.push({x_x,x_y});}}}}intmain(){cinmn;for(inti1;in;i){for(intj1;jm;j){cina[i][j];}}bfs();coutans;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容