奇怪的比赛(dfs)
2016-10-15 15:14
316 查看
某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:
每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。
每位选手都有一个起步的分数为10分。
某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?
如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。
你的任务是算出所有可能情况。每个答案占一行。
答案写在“解答.txt”中,不要写在这里!
代码:
每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。
每位选手都有一个起步的分数为10分。
某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?
如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。
你的任务是算出所有可能情况。每个答案占一行。
答案写在“解答.txt”中,不要写在这里!
代码:
#include<stdio.h> #include<string.h> int num[10]={0}; int dfs(int n) { int i; if(n==10) { calculate(); return ; } for(i=0;i<=1;i++) { num =i; dfs(n+1); } } int calculate() { int j; int score=10; for(j=0;j<=9;j++) { if(num[j]==1) score=score*2; if(num[j]==0) score=score-(j+1); } if(score==100) { for(j=0;j<=9;j++) { printf("%d",num[j]); } printf("\n"); } } int main() { dfs(0); return 0; }
相关文章推荐
- 蓝桥杯 奇怪的比赛-低碳生活大奖赛(DFS水)
- 蓝桥杯 结果填空 奇怪的比赛 dfs
- 奇怪的比赛(低碳生活大奖赛)
- 4.奇怪的比赛
- 2018年全国多校算法寒假训练营练习比赛(第四场)F-Call to your teacher(dfs)
- 2012 年蓝桥杯 预赛 第四题 奇怪的比赛 状态压缩
- 黄金队列,汉诺塔,奇怪的比赛,第一个数字,割圆,最大数,矩形的交集和并集,趣味算式(第三届蓝桥杯Java本科预赛试题)
- 递归——奇怪的比赛
- 2012年第三届蓝桥杯C/C++程序设计本科B组省赛 奇怪的比赛(结果填空)
- BZOJ_1612_[Usaco2008_Jan]_Cow_Contest_奶牛的比赛_(dfs)
- hdu 5379 Mahjong tree DFS 心塞,比赛时没取模 2015 Multi-University Training Contest 7
- 奇怪的比赛,蓝桥杯2012年第4题
- 情况问题奇怪的比赛--蓝桥杯
- 2012蓝桥杯预赛题-奇怪的比赛-递归实现
- 奇怪的比赛
- java 蓝桥杯 奇怪的比赛
- 蓝桥杯&&奇怪的比赛
- 2018年全国多校算法寒假训练营练习比赛(第四场)A_dfs
- 04-04排列问题_奇怪的比赛
- 蓝桥杯 第三届 奇怪的比赛