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)相关推荐

  1. 2018 icpc 焦作站现场赛 E题题解

    水题没人写题解,都直接上Java代码--那我写一个. 计蒜客题面:https://nanti.jisuanke.com/t/A2203 题意:如果i是完全平方数(>=4)的倍数,那么i号电阻的阻 ...

  2. Icpc 焦作站现场赛 E 题解

    这道题当时做的时候推不出来,晚上去找题解,不是Java,就是Python,对于只会c/c++的萌新,哎,难受.硬着头皮看了好久,大概懂了思路,第二天自己把前天的又推了一遍发现是自己计算错误的问题,要被 ...

  3. 2018 年 ACM-ICPC 焦作站现场赛感受

    今天下午四点半,ACM-ICPC国际大学生程序设计竞赛亚洲区域赛/焦作站圆满结束.首先,感谢河南理工大学给了我们这样的一个可以与国际接轨的平台,更要感谢王老师的辛苦付出. 弱校举办这么大型的比赛实属不 ...

  4. ICPC焦作站(E、F)+思维+树上dp

    这场比赛依旧是三道题,E其实比我们出的D难一点,但确实在能力范围之内,出了就保底铜牌了,出的快的话说不定有银.策略很重要 E. Resistors in Parallel 大数+打表找规律. 最后得出 ...

  5. JSK-107305丨ICPC焦作站网赛 B丨dp

    题意: 给出n个数字,顺次取出m个数,按照给出的m个运算符,依次去运算于k.保证m个运算符都用掉,求算计算结果的最大值. 思路: 观察到m很小只有5,5x1000的复杂度是够用的,所以可以找找状态转移 ...

  6. 2016 ACM/ICPC亚洲区青岛站现场赛(部分题解)

    摘要 本文主要列举并求解了2016 ACM/ICPC亚洲区青岛站现场赛的部分真题,着重介绍了各个题目的解题思路,结合详细的AC代码,意在熟悉青岛赛区的出题策略,以备战2018青岛站现场赛. HDU 5 ...

  7. 2016ACM/ICPC亚洲区大连站现场赛题解报告(转)

    http://blog.csdn.net/queuelovestack/article/details/53055418 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原 ...

  8. 2016ACM/ICPC亚洲区大连站现场赛题解报告

    此文章可以使用目录功能哟↑(点击上方[+]) 下午重现了一下大连赛区的比赛,感觉有点神奇,重现时居然改了现场赛的数据范围,原本过的人数比较多的题结果重现过的变少了,而原本现场赛全场过的人最少的题重现做 ...

  9. 2018年11月25日ICPC焦作站参赛总结

    可能就这么退役了吧. 对这次ICPC还是比较有信心的,毕竟心态都放平和了. 路途很波折,热身赛还是赶上了. 等到了正赛的时候,开场看出了A题的签到,签到肯定是我来签的,11分钟签完了这道题之后,开始看 ...

最新文章

  1. 中国python之父是谁-Python之父:谈Python
  2. 基于Visual C++2010与windows SDK fo windows7开发windows7平台的tabletpc应用(1)-手写数学公式输入...
  3. html5 响应式背景图
  4. Java多线程-生产者消费者问题(多个消费者多个生产者)
  5. Intel SGX技术详细解释(非常棒)
  6. z变换与s变换之间的转换(一些零碎且不严谨的想法)
  7. 超级浏览器对跨境亚马逊防关联有用吗?
  8. 通过 purge_relay_logs 自动清理relaylog
  9. ServletConfig与ServletContext
  10. 算法笔记 刷题2.6
  11. 黑客与技术提示:电脑出现文中现象说明你已经被黑客入侵
  12. 监视注册表变化 - Registry Auditing
  13. 案例 | 深入了解捷尼赛思GV60的数字座舱
  14. Windows10独立显卡+核心显卡的三屏扩展输出
  15. Flutter webview下拉刷新
  16. python学习027-----python之函数(三):函数返回值、局部变量与全局变量
  17. 1500_什么是鱼骨图以及鱼骨图如何使用
  18. 用户在小程序操作后通过公众号(服务号)推送通知
  19. 通信工程有哪些SCI期刊推荐? - 易智编译EaseEditing
  20. 试看不同PCI-E带宽对Radeon HD 7970性能的影响

热门文章

  1. 音乐播放器制作 (HTML + CSS + JavaScript)
  2. 洛谷P1151 子数整数(问题转化,透过现象看本质)
  3. 奔富bef407价格_Penfolds Bin 707 Cabernet Sauvignon, South Australia, Australia
  4. 游戏+与通用人工智能的实现
  5. 本世纪,佛祖派机器人来弘扬佛法
  6. 教ai玩游戏_简单解释:DeepMind如何教AI玩视频游戏
  7. php 生成ics文件
  8. OA系统的集成与整合:打破信息孤岛,实现企业信息化融会贯通
  9. OpenStack newton版安装教程(4)——Neutron部分
  10. java 导入excel 日期格式转换