ZCMU - 1931: wjw的剪纸
发布日期:2021-06-30 23:40:52 浏览次数:3 分类:技术文章

本文共 944 字,大约阅读时间需要 3 分钟。

题目链接:

 

题目大意:略。

 

解题思路:从中心点开始搜索,每次可以走四个方向。搜索的过程要将中心对称点顺便标记

 

AC 代码

#include
#include
#define mem(a,b) memset(a,b,sizeof a);#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;typedef unsigned long long ull;const int dir[4][2]={-1,0,1,0,0,-1,0,1};int n;ull rs;int vis[20][20];void dfs(int x,int y){ if(x==0||y==0||x==n||y==n){ rs++; return; } for(int i=0;i<4;i++) { int dx=x+dir[i][0], dy=y+dir[i][1]; if(dx<0||dy<0||dx>n||dy>n) continue; if(!vis[dx][dy]) { vis[dx][dy]=vis[n-dx][n-dy]=1; dfs(dx,dy); vis[dx][dy]=vis[n-dx][n-dy]=0; } }}int main(){ while(~scanf("%d",&n)) { if(n%2==1){puts("1"); continue;} if(n==10){ puts("562070107"); continue;} // 暴力出来 mem(vis,0); rs=0; int dx=n/2, dy=n/2; vis[dx][dy]=vis[n-dx][n-dy]=1; dfs(n/2,n/2); vis[dx][dy]=vis[n-dx][n-dy]=0; cout<

 

转载地址:https://lux-sun.blog.csdn.net/article/details/81148074 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:ZCMU - 1951: ly和wjw的无聊游戏
下一篇:ZCMU - 1961: 引水入城

发表评论

最新留言

不错!
[***.144.177.141]2024年04月29日 10时30分46秒