2017年浙江中医药大学大学生程序设计竞赛(重现赛)-H剪纸
2017-12-21 14:35
309 查看
题目大意:给定n*n的正方形方格纸,要求沿着方格纸的线条将方格纸分成完全相等的两部分的剪纸方案数。
思路:应该从线条上考虑dfs,同时所搜当前点的对称点记为访问过,每次搜到边界就是一种方案数。考虑对称性,最后结果除以4.
ac代码:#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool vis[11][11];
int dx[]={-1,1,0,0},dy[]={0,0,-1,1},n,cnt;
void dfs(int x,int y){
if(x==0||y==0||x==n||y==n){
cnt++;return;
}
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx>=0&&yy>=0&&xx<=n&&yy<=n&&!vis[xx][yy]&&!vis[n-xx][n-yy]){
vis[xx][yy]=vis[n-xx][n-yy]=1;
dfs(xx,yy);
vis[xx][yy]=vis[n-xx][n-yy]=0;
}
}
}
int main(){
int T;scanf("%d",&T);
while(T--){
scanf("%d",&n);
cnt=0;
if(n&1) puts("0");
else{
memset(vis,0,sizeof(vis));
vis[n/2][n/2]=1;
dfs(n/2,n/2);
printf("%d\n",cnt/4);
}
}
return 0;
}
思路:应该从线条上考虑dfs,同时所搜当前点的对称点记为访问过,每次搜到边界就是一种方案数。考虑对称性,最后结果除以4.
ac代码:#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
bool vis[11][11];
int dx[]={-1,1,0,0},dy[]={0,0,-1,1},n,cnt;
void dfs(int x,int y){
if(x==0||y==0||x==n||y==n){
cnt++;return;
}
for(int i=0;i<4;i++){
int xx=x+dx[i],yy=y+dy[i];
if(xx>=0&&yy>=0&&xx<=n&&yy<=n&&!vis[xx][yy]&&!vis[n-xx][n-yy]){
vis[xx][yy]=vis[n-xx][n-yy]=1;
dfs(xx,yy);
vis[xx][yy]=vis[n-xx][n-yy]=0;
}
}
}
int main(){
int T;scanf("%d",&T);
while(T--){
scanf("%d",&n);
cnt=0;
if(n&1) puts("0");
else{
memset(vis,0,sizeof(vis));
vis[n/2][n/2]=1;
dfs(n/2,n/2);
printf("%d\n",cnt/4);
}
}
return 0;
}
相关文章推荐
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)H - 剪纸
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)A - 不存在的树
- 2017年浙江中医药大学大学生程序设计竞赛 - H 剪纸(DFS)
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)B - 一生之敌
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)F - 开心的cc
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)C - 寻找zcmu
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)D - CC的神奇背包
- 2017年浙江中医药大学大学生程序设计竞赛(重现赛)
- 2017年浙江中医药大学大学生程序设计竞赛 - B 一生之敌 (二分)
- 2017年浙江中医药大学大学生程序设计竞赛 - C 寻找zcmu
- 【2017年浙江中医药大学大学生程序设计竞赛】B一生之敌 【二分+精度】
- 【2017年浙江中医药大学大学生程序设计竞赛】F 开心的cc 【线段树+思维】
- 2017年浙江中医药大学大学生程序设计竞赛-A:不存在的树(树链剖分)
- RunningMan【第六届福建省大学生程序设计竞赛-重现赛】
- 2017年第12届黑龙江省大学生ACM程序设计竞赛以及第11届东北地区大学生程序设计竞赛总结
- 2017年“嘉杰信息杯” 中国大学生程序设计竞赛全国邀请赛:E—Partial Sum
- 【HDU5930 2016CCPC东北地区大学生程序设计竞赛 - 重现赛 I】【线段树 预处理加变更贡献】GCD 动态修改维护全局gcd数量
- 第七届福建省大学生程序设计竞赛-重现赛(感谢承办方闽江学院)
- 第八届福建省大学生程序设计竞赛-重现赛I Magic
- 2017年第八届山东省ACM大学生程序设计竞赛后记