博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces 598D (ccpc-wannafly camp day1) Igor In the Museum
阅读量:5152 次
发布时间:2019-06-13

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

分析:BFS,同一连通区域的周长一样,但查询过多会导致TLE,所以要将连通区域的答案储存,下次查询到该连通区域就可以直接得出结果

1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 #include
15 #include
16 const double PI = acos(-1.0);17 const int INF = 0x3f3f3f3f;18 const int NINF = -INF - 1;19 typedef long long ll;20 #define MOD 100000721 using namespace std;22 typedef pair
P;23 char map[1005][1005];24 int n, m, ans, cnt;25 int x, y;26 int dx[4] = { 1, 0, -1, 0}, dy[4] = { 0, 1, 0, -1};27 int vis[1005][1005];28 int num[1000025];29 void bfs()30 {31 int i, j;32 queue

q;33 q.push(P(x, y));34 cnt++;35 vis[x][y] = cnt;36 ans = 0;37 while (q.size())38 {39 P temp = q.front();40 q.pop();41 ans += 4;42 for (i=0; i < 4; ++i)43 {44 int nx = temp.first + dx[i];45 int ny = temp.second + dy[i];46 if (nx >= 0 && nx < n && ny >= 0 && ny < m)47 {48 if(map[nx][ny] == '.')49 {50 ans--;51 if(!vis[nx][ny])52 {53 q.push(P(nx, ny));54 vis[nx][ny] = cnt;55 }56 }57 }58 else59 ans--;60 }61 }62 num[cnt] = ans;63 cout << ans << endl;64 }65 66 int main()67 {68 int i, j, k;69 cin >> n >> m >> k;70 for (i = 0; i < n; ++i)71 cin >> map[i];72 memset(num, -1, sizeof(num));73 memset(vis, 0, sizeof(vis));74 cnt = 0;75 while (k--)76 {77 cin >> x >> y;78 x--, y--;79 if (vis[x][y] == 0)80 bfs();81 else82 cout << num[vis[x][y]] << endl;83 }84 return 0;85 }

 

转载于:https://www.cnblogs.com/veasky/p/11223467.html

你可能感兴趣的文章
qt槽函数中,窗口镶嵌窗口的问题,求解
查看>>
在网页设计中应用大照片作背景的52个优秀范例(上篇)
查看>>
GCD
查看>>
RTNETLINK answers: Operation not possible due to RF-kill
查看>>
关于映射路径@ReuqestMapping的总结
查看>>
按照《权威指南》的例子求最低温度并且修改默认调度器为FairScheduler
查看>>
学习的一个MapReduce程序(《beginner`s guide》中的例子)
查看>>
申请评分卡分析及建模
查看>>
延迟加载
查看>>
.29-浅析webpack源码之doResolve事件流(1)
查看>>
算法(三)粒子群算法PSO的介绍
查看>>
java.util.Objects的主要方法
查看>>
从Spring看Web项目开发
查看>>
SDN第二次作业
查看>>
APP STORE 付费验证(IAP)服务端验证全过程(三)
查看>>
Web性能优化内容
查看>>
《2018面向对象程序设计(java)课程学习进度条》
查看>>
MYSQL SQL高级查询技巧
查看>>
sql查询语句
查看>>
软件测试1
查看>>