2012 年蓝桥杯 预赛 第四题 奇怪的比赛 状态压缩

来源:互联网 发布:通达oa软件下载 编辑:程序博客网 时间:2024/05/02 23:17

题目:奇怪的比赛

题目描述:

    某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪:

    每位选手需要回答10个问题(其编号为1到10),越后面越有难度。答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理)。

    每位选手都有一个起步的分数为10分。

    某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗?

    如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。

    你的任务是算出所有可能情况。每个答案占一行。


思路:

        我闲着没事用状态压缩写了写。。。。。。。。。。。。。


状态压缩代码(java):


public class test4_2 {public static void main(String[] args) {//枚举每一种状态从  00000 00000  到  11111 11111for (int i = 0; i < (1 << 10); i++) {judge(i);}}private static void judge(int x) {int ans = 10;for (int i = 0; i < 10; i++) {if (((1 << i) & x) != 0) {ans *= 2;} else {ans -= (i + 1);}}//如果模拟此种结果为100,则输出这种状态if (100 == ans) {for (int i = 0; i < 10; i++) {if (((1 << i) & x) != 0)System.out.print("1");elseSystem.out.print("0");}System.out.println();}}}



答案:

101101000001110100000010110011



原创粉丝点击