2018ACM-ICPC 焦作站现场赛 F. Honeycomb(BFS求最短路,卡memset)
F. Honeycomb
从前不信命,从这道题开始,我信了。
我就是没有拿牌子的命。这道题或者说这个memset,击碎了我所有对ACM的美好记忆。
#include<bits/stdc++.h>
using namespace std;const int N = 1e3 + 10;
int r, c, w, h;
char s[N*6][N*6];
bool vis[N*6][N*6];
int dir[2][6] = {{0, 0, 3, -3, 3, -3}, {2, -2, 1, 1, -1, -1}};struct node{int x, y, t;
}st;
bool check(int x, int y){if(x > 0 && x < w && y > 0 && y <h) return true;return false;
}
int BFS(){queue<node> Q;node u, v;u.x = st.x;u.y = st.y;u.t = st.t;vis[u.x][u.y] = true;Q.push(u);while(!Q.empty()){v = Q.front();Q.pop();if(s[v.x][v.y] == 'T') return v.t;for(int i = 0; i < 6; i++){int x = v.x + dir[1][i];int y = v.y + dir[0][i];int dx = x + dir[1][i];int dy = y + dir[0][i];if(s[x][y] == ' ' && !vis[dx][dy] && check(dx, dy)){vis[dx][dy] = true;u.x = dx; u.y = dy; u.t = v.t + 1;Q.push(u);}}}return -1;
}int main(){//freopen("in.txt", "r", stdin);int T;scanf("%d", &T);while(T--){scanf("%d%d", &r, &c);getchar();w = 4 * r + 3;h = 6 * c + 3;for(int i = 0; i < w; i++)gets(s[i]);for(int i = 0; i < w; i++){int len = strlen(s[i]);for(int j = 0; j < len; j++){if(s[i][j] == 'S'){st.x = i; st.y = j; st.t = 1;break;}}if(st.t) break;}int ans = BFS();printf("%d\n", ans);for(int i = 0; i < w; i++){int len = strlen(s[i]);for(int j = 0; j < len; j++){s[i][j] = '\0';vis[i][j] = false;}}st.x = 0; st.y = 0; st.t = 0;r = c = w = h = 0;}return 0;
}
2018ACM-ICPC 焦作站现场赛 F. Honeycomb(BFS求最短路,卡memset)相关推荐
- 2018 icpc 焦作站现场赛 E题题解
水题没人写题解,都直接上Java代码--那我写一个. 计蒜客题面:https://nanti.jisuanke.com/t/A2203 题意:如果i是完全平方数(>=4)的倍数,那么i号电阻的阻 ...
- Icpc 焦作站现场赛 E 题解
这道题当时做的时候推不出来,晚上去找题解,不是Java,就是Python,对于只会c/c++的萌新,哎,难受.硬着头皮看了好久,大概懂了思路,第二天自己把前天的又推了一遍发现是自己计算错误的问题,要被 ...
- 2018 年 ACM-ICPC 焦作站现场赛感受
今天下午四点半,ACM-ICPC国际大学生程序设计竞赛亚洲区域赛/焦作站圆满结束.首先,感谢河南理工大学给了我们这样的一个可以与国际接轨的平台,更要感谢王老师的辛苦付出. 弱校举办这么大型的比赛实属不 ...
- ICPC焦作站(E、F)+思维+树上dp
这场比赛依旧是三道题,E其实比我们出的D难一点,但确实在能力范围之内,出了就保底铜牌了,出的快的话说不定有银.策略很重要 E. Resistors in Parallel 大数+打表找规律. 最后得出 ...
- JSK-107305丨ICPC焦作站网赛 B丨dp
题意: 给出n个数字,顺次取出m个数,按照给出的m个运算符,依次去运算于k.保证m个运算符都用掉,求算计算结果的最大值. 思路: 观察到m很小只有5,5x1000的复杂度是够用的,所以可以找找状态转移 ...
- 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)
摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...
- 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)
http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...
- 2016ACM/ICPC亚洲区大连站现场赛题解报告
此文章可以使用目录功能哟↑(点击上方[+]) 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原本过的人数比较多的题结果重现过的变少了,而原本现场赛全场过的人最少的题重现做 ...
- 2018年11月25日ICPC焦作站参赛总结
可能就这么退役了吧. 对这次ICPC还是比较有信心的,毕竟心态都放平和了. 路途很波折,热身赛还是赶上了. 等到了正赛的时候,开场看出了A题的签到,签到肯定是我来签的,11分钟签完了这道题之后,开始看 ...
最新文章
- 中国python之父是谁-Python之父:谈Python
- 基于Visual C++2010与windows SDK fo windows7开发windows7平台的tabletpc应用(1)-手写数学公式输入...
- html5 响应式背景图
- Java多线程-生产者消费者问题(多个消费者多个生产者)
- Intel SGX技术详细解释(非常棒)
- z变换与s变换之间的转换(一些零碎且不严谨的想法)
- 超级浏览器对跨境亚马逊防关联有用吗?
- 通过 purge_relay_logs 自动清理relaylog
- ServletConfig与ServletContext
- 算法笔记 刷题2.6
- 黑客与技术提示:电脑出现文中现象说明你已经被黑客入侵
- 监视注册表变化 - Registry Auditing
- 案例 | 深入了解捷尼赛思GV60的数字座舱
- Windows10独立显卡+核心显卡的三屏扩展输出
- Flutter webview下拉刷新
- python学习027-----python之函数(三):函数返回值、局部变量与全局变量
- 1500_什么是鱼骨图以及鱼骨图如何使用
- 用户在小程序操作后通过公众号(服务号)推送通知
- 通信工程有哪些SCI期刊推荐? - 易智编译EaseEditing
- 试看不同PCI-E带宽对Radeon HD 7970性能的影响
热门文章
- 音乐播放器制作 (HTML + CSS + JavaScript)
- 洛谷P1151 子数整数(问题转化,透过现象看本质)
- 奔富bef407价格_Penfolds Bin 707 Cabernet Sauvignon, South Australia, Australia
- 游戏+与通用人工智能的实现
- 本世纪,佛祖派机器人来弘扬佛法
- 教ai玩游戏_简单解释:DeepMind如何教AI玩视频游戏
- php 生成ics文件
- OA系统的集成与整合:打破信息孤岛,实现企业信息化融会贯通
- OpenStack newton版安装教程(4)——Neutron部分
- java 导入excel 日期格式转换