bzoj1501 [NOI2005]智慧珠游戏


搜索苟逼题系列。

暴力枚举每一种情况(包括旋转翻转全都考虑在内)然后码出代码。

(正解似乎不是这样子的)

那年好像还有平衡树苟逼题维护数列233333心疼2005noi

代码也就362行而已

PS.bzoj上的交题号是wfj_2333/滑稽

第五个点比较坑。。。我的方法是先搜出所有‘.'的联通块,有大小<3的就直接No Solution了,还有我瞎打乱了搜索顺序

(这个代码比我博客css还长、、、)

  1. // It is made by XZZ
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<cstdlib>
  5. #include<cstring>
  6. using namespace std;
  7. #define rep(a,b,c) for(rg int a=b;a<=c;a++)
  8. #define drep(a,b,c) for(rg int a=b;a>=c;a--)
  9. #define erep(a,b) for(rg int a=fir[b];a;a=nxt[a])
  10. #define il inline
  11. #define rg register
  12. #define vd void
  13. #define ok =='.'
  14. #define st =ch
  15. #define fr ='.'
  16. #define can(a) (yes[a])
  17. #define disable(a) yes[a]=0
  18. #define able(a) yes[a]=1
  19. #define nxt x,y+1
  20. typedef long long ll;
  21. il int gi(){
  22. rg int x=0;bool flg=0;rg char ch=getchar();
  23. while(ch<'0'||ch>'9'){if(ch=='-')flg=1;ch=getchar();}
  24. while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
  25. return flg?-x:x;
  26. }
  27. const int n=10,m=12;
  28. char s[233][233];
  29. bool yes[233];
  30. bool vis[20][20];
  31. il int dfs(int x,int y){
  32. if(vis[x][y])return 0;
  33. vis[x][y]=1;
  34. if(s[x][y]!='.')return 0;
  35. return 1+dfs(x+1,y)+dfs(x-1,y)+dfs(x,y+1)+dfs(x,y-1);
  36. }
  37. il vd Init(){
  38. memset(s,'X',sizeof s);
  39. rep(i,1,n)scanf("%s",s[i]+1);
  40. rep(i,0,n+1)s[i][0]='X';
  41. rep(i,0,n+1)s[i][i+1]='X';
  42. rep(i,0,n+1)s[n+1][i]='X';
  43. rep(i,'A','L')yes[i]=1;
  44. rep(i,1,n)rep(j,1,i)if(!(s[i][j]ok))yes[s[i][j]]=0;
  45. rep(i,1,n)rep(j,1,i)if(s[i][j]ok&&!vis[i][j]&&dfs(i,j)<3){puts("No solution");exit(0);}
  46. }
  47. il vd Dfs(int x,int y){
  48. if(x==n+1){
  49. rep(i,1,n){
  50. rep(j,1,i)putchar(s[i][j]);
  51. puts("");
  52. }exit(0);
  53. }
  54. if(y==x+1){Dfs(x+1,1);return;}
  55. if(!(s[x][y]ok)){Dfs(nxt);return;}
  56. char ch;
  57. ch='B';
  58. if(can(ch)){
  59. disable(ch);s[x][y]st;
  60. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+3][y]ok){
  61. s[x+1][y]st,s[x+2][y]st,s[x+3][y]st,Dfs(nxt);
  62. s[x+1][y]fr,s[x+2][y]fr,s[x+3][y]fr;
  63. }
  64. if(s[x][y+1]ok&&s[x][y+2]ok&&s[x][y+3]ok){
  65. s[x][y+1]st,s[x][y+2]st,s[x][y+3]st,Dfs(nxt);
  66. s[x][y+1]fr,s[x][y+2]fr,s[x][y+3]fr;
  67. }
  68. s[x][y]fr;able(ch);
  69. }
  70. ch='C';
  71. if(can(ch)){
  72. disable(ch);s[x][y]st;
  73. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x][y+1]ok){
  74. s[x+1][y]st,s[x+2][y]st,s[x][y+1]st,Dfs(nxt);
  75. s[x+1][y]fr,s[x+2][y]fr,s[x][y+1]fr;
  76. }
  77. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y+1]ok){
  78. s[x+1][y]st,s[x+2][y]st,s[x+2][y+1]st,Dfs(nxt);
  79. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y+1]fr;
  80. }
  81. if(s[x][y+1]ok&&s[x][y+2]ok&&s[x+1][y]ok){
  82. s[x][y+1]st,s[x][y+2]st,s[x+1][y]st,Dfs(nxt);
  83. s[x][y+1]fr,s[x][y+2]fr,s[x+1][y]fr;
  84. }
  85. if(s[x][y+1]ok&&s[x][y+2]ok&&s[x+1][y+2]ok){
  86. s[x][y+1]st,s[x][y+2]st,s[x+1][y+2]st,Dfs(nxt);
  87. s[x][y+1]fr,s[x][y+2]fr,s[x+1][y+2]fr;
  88. }
  89. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok){
  90. s[x][y+1]st,s[x+1][y+1]st,s[x+2][y+1]st,Dfs(nxt);
  91. s[x][y+1]fr,s[x+1][y+1]fr,s[x+2][y+1]fr;
  92. }
  93. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y-1]ok){
  94. s[x+1][y]st,s[x+2][y]st,s[x+2][y-1]st,Dfs(nxt);
  95. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y-1]fr;
  96. }
  97. if(y>2&&s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+1][y-2]ok){
  98. s[x+1][y]st,s[x+1][y-1]st,s[x+1][y-2]st,Dfs(nxt);
  99. s[x+1][y]fr,s[x+1][y-1]fr,s[x+1][y-2]fr;
  100. }
  101. s[x][y]fr;able(ch);
  102. }
  103. ch='D';
  104. if(can(ch)){
  105. disable(ch);s[x][y]st;
  106. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok){
  107. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,Dfs(nxt);
  108. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr;
  109. }
  110. s[x][y]fr;able(ch);
  111. }
  112. ch='E';
  113. if(can(ch)){
  114. disable(ch);s[x][y]st;
  115. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x][y+1]ok&&s[x][y+2]ok){
  116. s[x+1][y]st,s[x+2][y]st,s[x][y+1]st,s[x][y+2]st,Dfs(nxt);
  117. s[x+1][y]fr,s[x+2][y]fr,s[x][y+1]fr,s[x][y+2]fr;
  118. }
  119. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y+1]ok&&s[x+2][y+2]ok){
  120. s[x+1][y]st,s[x+2][y]st,s[x+2][y+1]st,s[x+2][y+2]st,Dfs(nxt);
  121. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y+1]fr,s[x+2][y+2]fr;
  122. }
  123. if(s[x+1][y+2]ok&&s[x+2][y+2]ok&&s[x][y+1]ok&&s[x][y+2]ok){
  124. s[x+1][y+2]st,s[x+2][y+2]st,s[x][y+1]st,s[x][y+2]st,Dfs(nxt);
  125. s[x+1][y+2]fr,s[x+2][y+2]fr,s[x][y+1]fr,s[x][y+2]fr;
  126. }
  127. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y-1]ok&&s[x+2][y-2]ok){
  128. s[x+1][y]st,s[x+2][y]st,s[x+2][y-1]st,s[x+2][y-2]st,Dfs(nxt);
  129. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y-1]fr,s[x+2][y-2]fr;
  130. }
  131. s[x][y]fr;able(ch);
  132. }
  133. ch='G';
  134. if(can(ch)){
  135. disable(ch);s[x][y]st;
  136. if(s[x+1][y]ok&&s[x][y+1]ok&&s[x][y+2]ok&&s[x+1][y+2]ok){
  137. s[x+1][y]st,s[x][y+1]st,s[x][y+2]st,s[x+1][y+2]st,Dfs(nxt);
  138. s[x+1][y]fr,s[x][y+1]fr,s[x][y+2]fr,s[x+1][y+2]fr;
  139. }
  140. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+2]ok&&s[x+1][y+2]ok){
  141. s[x+1][y]st,s[x+1][y+1]st,s[x][y+2]st,s[x+1][y+2]st,Dfs(nxt);
  142. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+2]fr,s[x+1][y+2]fr;
  143. }
  144. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok&&s[x+2][y]ok){
  145. s[x][y+1]st,s[x+1][y+1]st,s[x+2][y+1]st,s[x+2][y]st,Dfs(nxt);
  146. s[x][y+1]fr,s[x+1][y+1]fr,s[x+2][y+1]fr,s[x+2][y]fr;
  147. }
  148. if(s[x][y+1]ok&&s[x+1][y]ok&&s[x+2][y+1]ok&&s[x+2][y]ok){
  149. s[x][y+1]st,s[x+1][y]st,s[x+2][y+1]st,s[x+2][y]st,Dfs(nxt);
  150. s[x][y+1]fr,s[x+1][y]fr,s[x+2][y+1]fr,s[x+2][y]fr;
  151. }
  152. s[x][y]fr;able(ch);
  153. }
  154. ch='H';
  155. if(can(ch)){
  156. disable(ch);s[x][y]st;
  157. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok&&s[x][y+2]ok){
  158. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,s[x][y+2]st,Dfs(nxt);
  159. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr,s[x][y+2]fr;
  160. }
  161. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok&&s[x+1][y+2]ok){
  162. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,s[x+1][y+2]st,Dfs(nxt);
  163. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr,s[x+1][y+2]fr;
  164. }
  165. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok&&s[x+2][y]ok){
  166. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,s[x+2][y]st,Dfs(nxt);
  167. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr,s[x+2][y]fr;
  168. }
  169. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok&&s[x+2][y+1]ok){
  170. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,s[x+2][y+1]st,Dfs(nxt);
  171. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr,s[x+2][y+1]fr;
  172. }
  173. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x][y+1]ok&&s[x+1][y-1]ok){
  174. s[x+1][y]st,s[x+1][y+1]st,s[x][y+1]st,s[x+1][y-1]st,Dfs(nxt);
  175. s[x+1][y]fr,s[x+1][y+1]fr,s[x][y+1]fr,s[x+1][y-1]fr;
  176. }
  177. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok){
  178. s[x+1][y]st,s[x+2][y]st,s[x+1][y+1]st,s[x+2][y+1]st,Dfs(nxt);
  179. s[x+1][y]fr,s[x+2][y]fr,s[x+1][y+1]fr,s[x+2][y+1]fr;
  180. }
  181. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+1][y-1]ok&&s[x+2][y-1]ok){
  182. s[x+1][y]st,s[x+2][y]st,s[x+1][y-1]st,s[x+2][y-1]st,Dfs(nxt);
  183. s[x+1][y]fr,s[x+2][y]fr,s[x+1][y-1]fr,s[x+2][y-1]fr;
  184. }
  185. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x][y+2]ok&&s[x+1][y+2]ok){
  186. s[x][y+1]st,s[x+1][y+1]st,s[x][y+2]st,s[x+1][y+2]st,Dfs(nxt);
  187. s[x][y+1]fr,s[x+1][y+1]fr,s[x][y+2]fr,s[x+1][y+2]fr;
  188. }
  189. s[x][y]fr;able(ch);
  190. }
  191. ch='A';
  192. if(can(ch)){
  193. disable(ch);s[x][y]st;
  194. if(s[x+1][y]ok&&s[x][y+1]ok){
  195. s[x+1][y]st,s[x][y+1]st,Dfs(nxt);
  196. s[x+1][y]fr,s[x][y+1]fr;
  197. }
  198. if(s[x+1][y+1]ok&&s[x][y+1]ok){
  199. s[x+1][y+1]st,s[x][y+1]st,Dfs(nxt);
  200. s[x+1][y+1]fr,s[x][y+1]fr;
  201. }
  202. if(s[x+1][y]ok&&s[x+1][y+1]ok){
  203. s[x+1][y]st,s[x+1][y+1]st,Dfs(nxt);
  204. s[x+1][y]fr,s[x+1][y+1]fr;
  205. }
  206. if(s[x+1][y]ok&&s[x+1][y-1]ok){
  207. s[x+1][y]st,s[x+1][y-1]st,Dfs(nxt);
  208. s[x+1][y]fr,s[x+1][y-1]fr;
  209. }
  210. s[x][y]fr;able(ch);
  211. }
  212. ch='L';
  213. if(can(ch)){
  214. disable(ch);s[x][y]st;
  215. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok&&s[x+3][y+1]ok){
  216. s[x][y+1]st,s[x+1][y+1]st,s[x+2][y+1]st,s[x+3][y+1]st,Dfs(nxt);
  217. s[x][y+1]fr,s[x+1][y+1]fr,s[x+2][y+1]fr,s[x+3][y+1]fr;
  218. }
  219. if(s[x][y+1]ok&&s[x][y+2]ok&&s[x][y+3]ok&&s[x+1][y+3]ok){
  220. s[x][y+1]st,s[x][y+2]st,s[x][y+3]st,s[x+1][y+3]st,Dfs(nxt);
  221. s[x][y+1]fr,s[x][y+2]fr,s[x][y+3]fr,s[x+1][y+3]fr;
  222. }
  223. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+3][y]ok&&s[x+3][y-1]ok){
  224. s[x+1][y]st,s[x+2][y]st,s[x+3][y]st,s[x+3][y-1]st,Dfs(nxt);
  225. s[x+1][y]fr,s[x+2][y]fr,s[x+3][y]fr,s[x+3][y-1]fr;
  226. }
  227. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+3][y]ok&&s[x+3][y+1]ok){
  228. s[x+1][y]st,s[x+2][y]st,s[x+3][y]st,s[x+3][y+1]st,Dfs(nxt);
  229. s[x+1][y]fr,s[x+2][y]fr,s[x+3][y]fr,s[x+3][y+1]fr;
  230. }
  231. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x+1][y+2]ok&&s[x+1][y+3]ok){
  232. s[x+1][y]st,s[x+1][y+1]st,s[x+1][y+2]st,s[x+1][y+3]st,Dfs(nxt);
  233. s[x+1][y]fr,s[x+1][y+1]fr,s[x+1][y+2]fr,s[x+1][y+3]fr;
  234. }
  235. if(s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+1][y-2]ok&&s[x+1][y-3]ok){
  236. s[x+1][y]st,s[x+1][y-1]st,s[x+1][y-2]st,s[x+1][y-3]st,Dfs(nxt);
  237. s[x+1][y]fr,s[x+1][y-1]fr,s[x+1][y-2]fr,s[x+1][y-3]fr;
  238. }
  239. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+3][y]ok&&s[x][y+1]ok){
  240. s[x+1][y]st,s[x+2][y]st,s[x+3][y]st,s[x][y+1]st,Dfs(nxt);
  241. s[x+1][y]fr,s[x+2][y]fr,s[x+3][y]fr,s[x][y+1]fr;
  242. }
  243. if(s[x+1][y]ok&&s[x][y+1]ok&&s[x][y+2]ok&&s[x][y+3]ok){
  244. s[x+1][y]st,s[x][y+1]st,s[x][y+2]st,s[x][y+3]st,Dfs(nxt);
  245. s[x+1][y]fr,s[x][y+1]fr,s[x][y+2]fr,s[x][y+3]fr;
  246. }
  247. s[x][y]fr;able(ch);
  248. }
  249. ch='I';
  250. if(can(ch)){
  251. disable(ch);s[x][y]st;
  252. if(s[x][y+1]ok&&s[x][y+2]ok&&s[x+1][y+2]ok&&s[x+1][y+3]ok){
  253. s[x][y+1]st,s[x][y+2]st,s[x+1][y+2]st,s[x+1][y+3]st,Dfs(nxt);
  254. s[x][y+1]fr,s[x][y+2]fr,s[x+1][y+2]fr,s[x+1][y+3]fr;
  255. }
  256. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x+1][y+2]ok&&s[x+1][y+3]ok){
  257. s[x][y+1]st,s[x+1][y+1]st,s[x+1][y+2]st,s[x+1][y+3]st,Dfs(nxt);
  258. s[x][y+1]fr,s[x+1][y+1]fr,s[x+1][y+2]fr,s[x+1][y+3]fr;
  259. }
  260. if(s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+2][y-1]ok&&s[x+3][y-1]ok){
  261. s[x+1][y]st,s[x+1][y-1]st,s[x+2][y-1]st,s[x+3][y-1]st,Dfs(nxt);
  262. s[x+1][y]fr,s[x+1][y-1]fr,s[x+2][y-1]fr,s[x+3][y-1]fr;
  263. }
  264. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y-1]ok&&s[x+3][y-1]ok){
  265. s[x+1][y]st,s[x+2][y]st,s[x+2][y-1]st,s[x+3][y-1]st,Dfs(nxt);
  266. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y-1]fr,s[x+3][y-1]fr;
  267. }
  268. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok&&s[x+3][y+1]ok){
  269. s[x+1][y]st,s[x+1][y+1]st,s[x+2][y+1]st,s[x+3][y+1]st,Dfs(nxt);
  270. s[x+1][y]fr,s[x+1][y+1]fr,s[x+2][y+1]fr,s[x+3][y+1]fr;
  271. }
  272. if(s[x+1][y]ok&&s[x+2][y]ok&&s[x+2][y+1]ok&&s[x+3][y+1]ok){
  273. s[x+1][y]st,s[x+2][y]st,s[x+2][y+1]st,s[x+3][y+1]st,Dfs(nxt);
  274. s[x+1][y]fr,s[x+2][y]fr,s[x+2][y+1]fr,s[x+3][y+1]fr;
  275. }
  276. if(y>1&&s[x][y+1]ok&&s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+1][y-2]ok){
  277. s[x][y+1]st,s[x+1][y]st,s[x+1][y-1]st,s[x+1][y-2]st,Dfs(nxt);
  278. s[x][y+1]fr,s[x+1][y]fr,s[x+1][y-1]fr,s[x+1][y-2]fr;
  279. }
  280. if(y>1&&s[x][y+1]ok&&s[x][y+2]ok&&s[x+1][y]ok&&s[x+1][y-1]ok){
  281. s[x][y+1]st,s[x][y+2]st,s[x+1][y]st,s[x+1][y-1]st,Dfs(nxt);
  282. s[x][y+1]fr,s[x][y+2]fr,s[x+1][y]fr,s[x+1][y-1]fr;
  283. }
  284. s[x][y]fr;able(ch);
  285. }
  286. ch='J';
  287. if(can(ch)){
  288. disable(ch);s[x][y]st;
  289. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x+2][y]ok&&s[x+1][y-1]ok){
  290. s[x+1][y]st,s[x+1][y+1]st,s[x+2][y]st,s[x+1][y-1]st,Dfs(nxt);
  291. s[x+1][y]fr,s[x+1][y+1]fr,s[x+2][y]fr,s[x+1][y-1]fr;
  292. }
  293. s[x][y]fr;able(ch);
  294. }
  295. ch='F';
  296. if(can(ch)){
  297. disable(ch);s[x][y]st;
  298. if(s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+1][y+1]ok&&s[x+1][y+2]ok){
  299. s[x+1][y]st,s[x+1][y-1]st,s[x+1][y+1]st,s[x+1][y+2]st,Dfs(nxt);
  300. s[x+1][y]fr,s[x+1][y-1]fr,s[x+1][y+1]fr,s[x+1][y+2]fr;
  301. }
  302. if(y>1&&s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+1][y+1]ok&&s[x+1][y-2]ok){
  303. s[x+1][y]st,s[x+1][y-1]st,s[x+1][y+1]st,s[x+1][y-2]st,Dfs(nxt);
  304. s[x+1][y]fr,s[x+1][y-1]fr,s[x+1][y+1]fr,s[x+1][y-2]fr;
  305. }
  306. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x+2][y]ok&&s[x+3][y]ok){
  307. s[x+1][y]st,s[x+1][y+1]st,s[x+2][y]st,s[x+3][y]st,Dfs(nxt);
  308. s[x+1][y]fr,s[x+1][y+1]fr,s[x+2][y]fr,s[x+3][y]fr;
  309. }
  310. if(s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+2][y]ok&&s[x+3][y]ok){
  311. s[x+1][y]st,s[x+1][y-1]st,s[x+2][y]st,s[x+3][y]st,Dfs(nxt);
  312. s[x+1][y]fr,s[x+1][y-1]fr,s[x+2][y]fr,s[x+3][y]fr;
  313. }
  314. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x][y+2]ok&&s[x][y+3]ok){
  315. s[x][y+1]st,s[x+1][y+1]st,s[x][y+2]st,s[x][y+3]st,Dfs(nxt);
  316. s[x][y+1]fr,s[x+1][y+1]fr,s[x][y+2]fr,s[x][y+3]fr;
  317. }
  318. if(s[x][y+1]ok&&s[x+1][y+2]ok&&s[x][y+2]ok&&s[x][y+3]ok){
  319. s[x][y+1]st,s[x+1][y+2]st,s[x][y+2]st,s[x][y+3]st,Dfs(nxt);
  320. s[x][y+1]fr,s[x+1][y+2]fr,s[x][y+2]fr,s[x][y+3]fr;
  321. }
  322. if(s[x+1][y]ok&&s[x+2][y+1]ok&&s[x+2][y]ok&&s[x+3][y]ok){
  323. s[x+1][y]st,s[x+2][y+1]st,s[x+2][y]st,s[x+3][y]st,Dfs(nxt);
  324. s[x+1][y]fr,s[x+2][y+1]fr,s[x+2][y]fr,s[x+3][y]fr;
  325. }
  326. if(s[x+1][y]ok&&s[x+2][y-1]ok&&s[x+2][y]ok&&s[x+3][y]ok){
  327. s[x+1][y]st,s[x+2][y-1]st,s[x+2][y]st,s[x+3][y]st,Dfs(nxt);
  328. s[x+1][y]fr,s[x+2][y-1]fr,s[x+2][y]fr,s[x+3][y]fr;
  329. }
  330. s[x][y]fr;able(ch);
  331. }
  332. ch='K';
  333. if(can(ch)){
  334. disable(ch);s[x][y]st;
  335. if(s[x+1][y]ok&&s[x+1][y+1]ok&&s[x+2][y+1]ok&&s[x+2][y+2]ok){
  336. s[x+1][y]st,s[x+1][y+1]st,s[x+2][y+1]st,s[x+2][y+2]st,Dfs(nxt);
  337. s[x+1][y]fr,s[x+1][y+1]fr,s[x+2][y+1]fr,s[x+2][y+2]fr;
  338. }
  339. if(s[x][y+1]ok&&s[x+1][y+1]ok&&s[x+1][y+2]ok&&s[x+2][y+2]ok){
  340. s[x][y+1]st,s[x+1][y+1]st,s[x+1][y+2]st,s[x+2][y+2]st,Dfs(nxt);
  341. s[x][y+1]fr,s[x+1][y+1]fr,s[x+1][y+2]fr,s[x+2][y+2]fr;
  342. }
  343. if(y>1&&s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+2][y-1]ok&&s[x+2][y-2]ok){
  344. s[x+1][y]st,s[x+1][y-1]st,s[x+2][y-1]st,s[x+2][y-2]st,Dfs(nxt);
  345. s[x+1][y]fr,s[x+1][y-1]fr,s[x+2][y-1]fr,s[x+2][y-2]fr;
  346. }
  347. if(s[x][y+1]ok&&s[x+1][y]ok&&s[x+1][y-1]ok&&s[x+2][y-1]ok){
  348. s[x][y+1]st,s[x+1][y]st,s[x+1][y-1]st,s[x+2][y-1]st,Dfs(nxt);
  349. s[x][y+1]fr,s[x+1][y]fr,s[x+1][y-1]fr,s[x+2][y-1]fr;
  350. }
  351. s[x][y]fr;able(ch);
  352. }
  353. }
  354. int main(){
  355. Init();
  356. Dfs(1,1);
  357. puts("No solution");
  358. return 0;
  359. }

【搜索好题】bzoj1501 [NOI2005]智慧珠游戏的更多相关文章

  1. [BZOJ1501][NOI2005] 智慧珠游戏

    Input 文件中包含初始的盘件描述,一共有10行,第i行有i个字符.如果第i行的第j个字符是字母”A”至”L”中的一个,则表示第i行第j列的格子上已经放了零件,零件的编号为对应的字母.如果第i行的第 ...

  2. 洛谷 P4205 [NOI2005]智慧珠游戏 DFS

    目录 题面 题目链接 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例 输出样例 说明 思路 AC代码 总结 题面 题目链接 P4205 [NOI2005]智慧珠游戏 题目描述 智慧 ...

  3. bzoj 1501: [NOI2005]智慧珠游戏 Dancing Link

    1501: [NOI2005]智慧珠游戏 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 190  Solved: 122[Submit][Status] ...

  4. Luogu P4205 [NOI2005]智慧珠游戏

    国内少有的可以练习神仙算法--DLX的好题怎么可以被爆搜埋没呢? 看到这题没有DLX的题解所以写一篇,不过貌似我实现的太弱(构图太慢)所以速度上不是很快. 下面开始讲题,但请保证你要先学会DLX.(d ...

  5. 【BZOJ1501】【NOI2005】智慧珠游戏(搜索)

    [BZOJ1501][NOI2005]智慧珠游戏(搜索) 题面 我要一改我懒惰的作风 这道题目必须放题面 Description Input 文件中包含初始的盘件描述,一共有10行,第i行有i个字符. ...

  6. BZOJ 1501 智慧珠游戏

    Description Input 文件中包含初始的盘件描述,一共有10行,第i行有i个字符.如果第i行的第j个字符是字母”A”至”L”中的一个,则表示第i行第j列的格子上已经放了零件,零件的编号为对 ...

  7. zzulioj--1790-- 弹珠游戏(数学水题!)

    弹珠游戏 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 14  Solved: 10 SubmitStatusWeb Board Descriptio ...

  8. 搜索 水题&&错误集锦

    引子: 本以为搜索的题目老师也不会检查,结果今天早上loli慢悠悠的说:“请同学们提交一下搜索的题目~”,顿时心旌摇曳,却也只能装作镇定自若的样子,点了点头.. 然后就开始了今天的疯狂做题,虽说题目都 ...

  9. Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper)

    Leetcode之广度优先搜索(BFS)专题-529. 扫雷游戏(Minesweeper) BFS入门详解:Leetcode之广度优先搜索(BFS)专题-429. N叉树的层序遍历(N-ary Tre ...

随机推荐

  1. HDFS 读取、写入、遍历文件夹获取文件全路径、append

    版权声明:本文为博主原创文章,未经博主同意不得转载.安金龙 的博客. https://blog.csdn.net/smile0198/article/details/37573081 1.从HDFS中 ...

  2. @property 装饰器

    property() 函数作用于新式类,返回属性值. class C(object): def __init__(self): self._x = None def getx(self): print ...

  3. [SHOI2010]最小生成树

    题目 首先让其余所有边都减\(1\)和让自己加\(1\)没什么区别 考虑\(kruskal\)的过程 首先边权大于这条边的是不用考虑的 考虑把那些边权比这条边小的调节到比这条边大,这样就相当于在生成树 ...

  4. Presentation 常用的承接句——技术分享、学术报告串联全场不尴尬

    前言 现在即使是搞技术,做科研的,也需要在不同的场合,用ppt来做分享,做汇报,做总结. 如果国际会议,研讨会,或者在外企,国外工作,英文的presentation就更加必不可少.英语的提升需要大家从 ...

  5. 查找系统中jdk的位置

    查找系统中jdk的位置: [root@localhost native]# find /|grep jni_md.h /var/lib/docker/overlay2/ec7a5439382a8a6d ...

  6. SQL Server 数据库每个表占用的空间、大小

    查看MSSQL数据库每个表占用的空间大小 sp_spaceused显示行数.保留的磁盘空间以及当前数据库中的表所使用的磁盘空间,或显示由整个数据库保留和使用的磁盘空间. 语法sp_spaceused ...

  7. react 配置开发环境

    一:先自行下载安装node和npm 二:cnpm install create-react-app -g 三:create-react-app my-project 四:cd my-project  ...

  8. jQuery $ 的作用

    $符号总体来说有两个作用: 1.作为一般函数调用:$(param) (1).参数为函数:当DOM加载完成后,执行此回调函数 $(function(){//dom加载完成后执行 //代码 }) (2). ...

  9. 树莓3B+_Raspbian 源使用帮助

    https://mirrors.ustc.edu.cn/help/raspbian.html   Raspbian 源使用帮助 地址 https://mirrors.ustc.edu.cn/raspb ...

  10. python学习第二天 -----2019年4月17日

    第二周-第02章节-Python3.5-模块初识 #!/usr/bin/env python #-*- coding:utf-8 _*- """ @author:chen ...