博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1736 [Usaco2005 jan]The Wedding Juicer 婚宴的榨汁机
阅读量:4983 次
发布时间:2019-06-12

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

从外面一点一点往里面拓展(floodfill),每次找出最小的一个点,计算它对答案的贡献就好了。。。

找最小的点的话,直接pq就行

 

1 /************************************************************** 2     Problem: 1736 3     User: rausen 4     Language: C++ 5     Result: Accepted 6     Time:196 ms 7     Memory:2116 kb 8 ****************************************************************/ 9  10 #include 
11 #include
12 13 using namespace std;14 typedef long long ll;15 const int N = 305;16 const int dx[] = {
0, 0, 1, -1};17 const int dy[] = {
1, -1, 0, 0};18 19 inline int read();20 21 struct data {22 int x, y, h;23 data(int _x = 0, int _y = 0, int _h = 0) : x(_x), y(_y), h(_h) {}24 25 inline bool operator < (const data &d) const { 26 return h > d.h;27 }28 };29 30 int n, m;31 int mp[N][N], v[N][N];32 priority_queue
h;33 34 inline ll work(){35 ll res = 0;36 int x, y, k;37 data now;38 while (!h.empty()) {39 now = h.top(), h.pop();40 for (k = 0; k < 4; ++k) {41 x = now.x + dx[k], y = now.y + dy[k];42 if (x <= 0 || y <= 0 || x > n || y > m || v[x][y]) continue;43 v[x][y] = 1;44 if (mp[x][y] < now.h)45 res += now.h - mp[x][y], mp[x][y] = now.h;46 h.push(data(x, y, mp[x][y]));47 }48 }49 return res;50 }51 52 int main() {53 int i, j;54 m = read(), n = read();55 for (i = 1; i <= n; ++i)56 for (j = 1; j <= m; ++j) mp[i][j] = read();57 for (i = 1; i <= n; ++i)58 for (j = 1; j <= m; ++j)59 if (i == 1 || j == 1 || i == n || j == m)60 h.push(data(i, j, mp[i][j])), v[i][j] = 1;61 printf("%lld\n", work());62 return 0;63 }64 65 inline int read() {66 static int x;67 static char ch;68 x = 0, ch = getchar();69 while (ch < '0' || '9' < ch)70 ch = getchar();71 while ('0' <= ch && ch <= '9') {72 x = x * 10 + ch - '0';73 ch = getchar();74 }75 return x;76 }
View Code

 

转载于:https://www.cnblogs.com/rausen/p/4464294.html

你可能感兴趣的文章
substring和substr小结
查看>>
onbeforeunload与onunload事件
查看>>
android端的的网络访问
查看>>
escape()、encodeURI()、encodeURIComponent()区别详解
查看>>
retry
查看>>
使用jQuery插件轻松实现动态流动的网页布局
查看>>
[转]6个HelloWorld
查看>>
C调用C++接口
查看>>
Golang系列:抓取网页内容
查看>>
jquery扩展的两个方法与区别 $.extend $.fn.extend
查看>>
CodeForces_937C Save Energy!(贪心)
查看>>
[Gatsby] Install Gatsby and Scaffold a Blog
查看>>
[Recompose] Add Local State to a Functional Stateless Component using Recompose
查看>>
Spring Boot + Spring Data + Elasticsearch实例
查看>>
我的机器学习之旅(一):认识机器学习
查看>>
util包下Timer类的延迟执行
查看>>
缓冲区溢出漏洞实验
查看>>
失业的程序员(十):分歧的产生
查看>>
[FZU2261]浪里个浪
查看>>
四则运算*2
查看>>