第五届“图灵杯”NEUQ-ACM程序设计大赛 H题 深搜
2017-12-09 22:19
423 查看
题目描述:
Lethe最近买了一个新的手环,想送给女友。但他觉得只送一个手环还不够诚意,于是他决定在手环上镶嵌一些钻石。已知这个手环有n个孔可以镶嵌,且这n个孔均匀分布在手环上。Lethe是一个有强迫症的人,于是他买了价值为1、2。。。n的钻石各一个。但是他了解到他的女友不喜欢7这个数字,所以他决定任意相邻的三个钻石价值之和不能为7的倍数。现在他不知道从顺时针方向看,他有多少种顺序去镶嵌钻石,你能帮帮他吗?
输入:
多组输入 每行一个整数n(1<=n<=12),与描述相同
输出:
对于每组输入,输出方案数
样例输入
1
2
3
样例输出
1
1
2
注意,因为手环是环形的,所以在第二组样例中,n=2时,1 2和2 1是同一种方案。 因为是从顺时针方向看,所以在第三组样例中,n=3时,1 2 3 和 3 2 1是两种方案(3 2 1 的方案等同于1 3 2)
Lethe最近买了一个新的手环,想送给女友。但他觉得只送一个手环还不够诚意,于是他决定在手环上镶嵌一些钻石。已知这个手环有n个孔可以镶嵌,且这n个孔均匀分布在手环上。Lethe是一个有强迫症的人,于是他买了价值为1、2。。。n的钻石各一个。但是他了解到他的女友不喜欢7这个数字,所以他决定任意相邻的三个钻石价值之和不能为7的倍数。现在他不知道从顺时针方向看,他有多少种顺序去镶嵌钻石,你能帮帮他吗?
输入:
多组输入 每行一个整数n(1<=n<=12),与描述相同
输出:
对于每组输入,输出方案数
样例输入
1
2
3
样例输出
1
1
2
注意,因为手环是环形的,所以在第二组样例中,n=2时,1 2和2 1是同一种方案。 因为是从顺时针方向看,所以在第三组样例中,n=3时,1 2 3 和 3 2 1是两种方案(3 2 1 的方案等同于1 3 2)
#include<iostream> #include<cstdio> using namespace std; int a[15]; int b[15]; long long result; int n; void dfs(int deep); int main() { while(cin>>n) { result = 0;//很重要 if(n<=2) { cout<<1<<endl; } else { a[0] = 1; b[1] = 1; dfs(1); cout<<result<<endl; } } return 0; } void dfs(int deep) { if(deep == n) { if((a[n-1]+a[0]+a[1])%7 == 0) return ; else if((a[n-2]+a[n-1]+a[0])%7 == 0) return ; result++; return ; } for(int i = 2; i<=n; i++) { if(b[i]==1) continue; if(deep>=2&&(a[deep-1]+a[deep-2]+i)%7==0)continue; a[deep] = i; b[i] = 1; dfs(deep+1); b[i] = 0; a[deep] = 0; } }
相关文章推荐
- 第五届“图灵杯”NEUQ-ACM程序设计大赛 B题 字符串处理
- 第五届“图灵杯”NEUQ-ACM程序设计大赛 F题 字符串处理哈夫曼树
- 第二届“图灵杯”NEUQ-ACM程序设计大赛(个人赛)
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) A: 编程世界的大门
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) B: 田鼠买酒喝
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) C: 橙子姐姐的围棋
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) E: 好学的coco
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) G: 田鼠看热闹(Ⅰ)
- Contest1040 - 第三届“图灵杯”NEUQ-ACM程序设计大赛(个人赛) H: 橙子姐姐的梦 基数排序
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)-网络同步赛J(字典树 or map)
- NEUQ图灵杯之A题——蔡老板的会议
- 第四届“图灵杯”NEUQ-ACM程序设计竞赛(团队赛)—A
- 第五届图灵杯1872PJ的情书
- 博客园图灵杯第五届博问大赛(2010.8.3~2010.9.2)
- **第四届“图灵杯”NEUQ-ACM程序设计竞赛(个人赛)C粉丝与汉诺塔
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-F-一道简单的递推题
- 来简单地数个数(大数 NEUQ“图灵杯”)
- 图灵杯-第四届“图灵杯”NEUQ-ACM 程序设计竞赛-G-那么大奶牛之神
- 简单的RMQ(RMQ+ST NEUQ“图灵杯”)
- 博客园“图灵杯”第五届博问大赛比赛结果