杭电1010 梦里梦外; 2022-06-04 00:45 167阅读 0赞 **杭电1010** **1.奇偶性剪枝** **可以把map看成这样:** **0 1 0 1 0 1** **1 0 1 0 1 0** **0 1 0 1 0 1** **1 0 1 0 1 0** **0 1 0 1 0 1** **从为 0 的格子走一步,必然走向为 1 的格子** **从为 1 的格子走一步,必然走向为 0 的格子** **即:0 ->1或1->0 必然是奇数步 0->0 走1->1 必然是偶数步** **所以当遇到从0走向0但是要求时间是奇数的,或者,从1走向0但是要求时间是偶数的都可以直接判断不可达!** **\[cpp\]** [view plain][] [copy][view plain] 1. \#include <iostream.h> 2. \#include <string.h> 3. \#include <stdlib.h> 4. **char** map\[9\]\[9\]; 5. **int** n,m,t,di,dj; 6. **bool** escape; 7. **int** dir\[4\]\[2\]=\{ \{0,-1\},\{0,1\},\{1,0\},\{-1,0\}\}; 8. **void** dfs(**int** si,**int** sj,**int** cnt) 9. \{ 10. **int** i,temp; 11. **if**(si>n||sj>m||si<=0||sj<=0) 12. **return**; 13. **if**(cnt==t&&si==di&&sj==dj) 14. escape=1; 15. **if**(escape) 16. **return**; 17. temp=(t-cnt)-abs(si-di)-abs(sj-dj); 18. **if**(temp<0||temp&1) 19. **return**; 20. **for**(i=0;i<4;i++) 21. \{ 22. **if**(map\[si+dir\[i\]\[0\]\]\[sj+dir\[i\]\[1\]\]!='X') 23. \{ 24. map\[si+dir\[i\]\[0\]\]\[sj+dir\[i\]\[1\]\]='X'; 25. dfs(si+dir\[i\]\[0\],sj+dir\[i\]\[1\],cnt+1); 26. map\[si+dir\[i\]\[0\]\]\[sj+dir\[i\]\[1\]\]='.'; 27. \} 28. \} 29. **return**; 30. \} 31. **int** main() 32. \{ 33. **int** i,j,si,sj; 34. **while**(cin>>n>>m>>t) 35. \{ 36. **if**(n==0&&m==0&&t==0) 37. **break**; 38. **int** wall=0; 39. **for**(i=1;i<=n;i++) 40. **for**(j=1;j<=m;j++) 41. \{ 42. cin>>map\[i\]\[j\]; 43. **if**(map\[i\]\[j\]=='S') 44. \{ 45. si=i; 46. sj=j; 47. \} 48. **else****if**(map\[i\]\[j\]=='D') 49. \{ 50. di=i; 51. dj=j; 52. \} 53. **else****if**(map\[i\]\[j\]=='X') 54. wall++; 55. \} 56. **if**(n\*m-wall<=t) 57. \{ 58. cout<<"NO"<<endl; 59. **continue**; 60. \} 61. escape=0; 62. map\[si\]\[sj\]='X'; 63. dfs(si,sj,0); 64. **if**(escape) 65. cout<<"YES"<<endl; 66. **else** 67. cout<<"NO"<<endl; 68. \} 69. **return** 0; 70. \} 71. [view plain]: http://blog.csdn.net/acdreamers/article/details/7802036#
相关 杭电1061 Rightmost Digit Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (J 布满荆棘的人生/ 2022年09月17日 05:27/ 0 赞/ 282 阅读
相关 杭电1010-Tempter of the Bone(BFS) Tempter of the Bone Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 浅浅的花香味﹌/ 2022年08月08日 14:52/ 0 赞/ 179 阅读
相关 杭电1039 Easier Done Than Said? Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6553 一时失言乱红尘/ 2022年06月05日 12:48/ 0 赞/ 286 阅读
相关 杭电1026 Ignatius and the Princess I Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 6553 快来打我*/ 2022年06月04日 05:53/ 0 赞/ 306 阅读
相关 杭电1010 杭电1010 1.奇偶性剪枝 可以把map看成这样: 0 1 0 1 0 1 1 0 1 0 1 0 0 1 0 1 0 1 1 0 1 0 1 0 梦里梦外;/ 2022年06月04日 00:45/ 0 赞/ 168 阅读
相关 杭电oj Problem Title 1 Pro. ID 1000 A+B Problem include<stdio.h> int main() { £神魔★判官ぃ/ 2022年05月15日 16:14/ 0 赞/ 334 阅读
相关 杭电1060 此题是一道数学题,也是一道技巧题,也是不能直接算的,否则会超时的!!! 此题思路: 设n^n=d.xxxx\10^(k-1),其中k表示n^n的位数; d.xxxx 痛定思痛。/ 2021年12月01日 22:40/ 0 赞/ 326 阅读
相关 杭电2075 此题真的是简单的再不能简单了!呵呵!我一直纠结,出这样的题是什么意思呢?不懂!哎,不说那些废话了,直接 ac吧!呵呵! \include<iostream> using 今天药忘吃喽~/ 2021年12月01日 22:38/ 0 赞/ 310 阅读
相关 杭电2078 说实话,此题是一道有严重bug的问题,对于xhd没晚能复习的科目数m根本就没用上!!!哎不管那么些了,反正ac了!呵呵!此题这样想xhd得复习效率是前一课程和后一课程复习效率差 ╰+攻爆jí腚メ/ 2021年12月01日 22:38/ 0 赞/ 354 阅读
相关 杭电2090 此题就是一道令人无法琢磨的题!哎!!我简直就无语了!!呵呵!竟然能出这题。。。。 废话少说,直接ac!!! \\\ 此题要想输出结果,还需要注意一下! 在linux 约定不等于承诺〃/ 2021年12月01日 21:12/ 0 赞/ 368 阅读
还没有评论,来说两句吧...