![打卡信奥刷题(3459)用C++实现信奥题 P10492 [ICPC 2003 Aizu R] Weather Forecast](http://pic.xiahunao.cn/yaotu/打卡信奥刷题(3459)用C++实现信奥题 P10492 [ICPC 2003 Aizu R] Weather Forecast)
P10492 [ICPC 2003 Aizu R] Weather Forecast题目描述你是风之神。通过移动一朵大云你可以决定天气云下必定下雨其他地方阳光普照。但你是一个仁慈的神你的目标是给乡间的每个田地带来足够的雨水给市场和节日带来阳光。小人类用他们贫乏的词汇只能将这称为“天气预报”。你负责管理一个名为 Paccimc 的小国家。这个国家由4 × 4 4 \times 44×4的方块区域组成用它们的编号表示。你的云的大小为2 × 2 2 \times 22×2不得越过国家的边界。给出了一段时间内每个区域的市场和节日的安排。在该时段的第一天无论安排如何在中心区域6-7-10-11都会下雨。在接下来的每一天你可以将你的云向四个基本方向之一北、西、南和东移动1 11或2 22个方格也可以将其保持在原位。不允许对角线移动。所有移动均发生在一天开始时。你不应该让一个区域连续一周没有雨水也就是说你允许最多连续6 66天没有雨。你不必在你获得的时间段之外的日子里考虑雨水也就是说你可以假设在时间段之前的整个国家都下雨在它结束后的一天也是如此。输入格式输入一个数据集序列后跟一个仅包含零的终止行。一个数据集在单独的一行上给出了期间中的天数N NN不超过365 365365然后是N NN行给出了市场和节日的安排。第i ii行给出了第i ii天的安排。它由16 1616个数字组成要么是0 00要么是1 110 00表示正常日1 11表示市场或节日。数字之间用一个或多个空格分隔。输出格式对每个数据集的单行输出如果你能满足每个人则输出1 11否则输出0 00。【样例解释】翻译来自于ChatGPT输入输出样例 #1输入 #11 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 7 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 15 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 0 1 1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 0 0输出 #10 1 0 1C实现#includebits/stdc.husingnamespacestd;intn,a[405][5][5],f[5][5][405][8][8][8][8];intdx[]{-1,0,-2,0,2,0,1,0,0},dy[]{0,-1,0,-2,0,2,0,1,0};intdfs(intx,inty,intday,intex,intsx,intey,intsy){if(f[x][y][day][ex][sx][ey][sy]!-1)returnf[x][y][day][ex][sx][ey][sy];for(intix;ix1;i)for(intjy;jy1;j)if(a[day][i][j]1)return0;if(ex7||sx7||ey7||sy7)return0;if(dayn)return1;intans0;for(inti0;i9;i){inttxxdx[i],tyydy[i];if(1txtx31tyty3){inta,b,c,d;if(tx1ty1)a0;elseaex1;if(tx3ty1)b0;elsebsx1;if(tx1ty3)c0;elsecey1;if(tx3ty3)d0;elsedsy1;ans|dfs(tx,ty,day1,a,b,c,d);}}if(f[x][y][day][ex][sx][ey][sy]-1)f[x][y][day][ex][sx][ey][sy]ans;returnans;}intmain(){while(1){memset(f,-1,sizeof(f)),cinn;if(n0)break;for(inti1;in;i)for(intj1;j4;j)for(intk1;k4;k)cina[i][j][k];coutdfs(2,2,1,1,1,1,1)\n;}}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容