zoukankan      html  css  js  c++  java
  • 2012年蓝桥杯省赛A组c++第4题(电视台答题比赛)

    /* 
    某电视台举办了低碳生活大奖赛。题目的计分规则相当奇怪: 
    每位选手需要回答10个问题(其编号为1到10),越后面越有难度。
    答对的,当前分数翻倍;答错了则扣掉与题号相同的分数(选手必须回答问题,不回答按错误处理 
    每位选手都有一个起步的分数为10分。 
    某获胜选手最终得分刚好是100分,如果不让你看比赛过程,你能推断出他(她)哪个题目答对了,哪个题目答错了吗? 
    如果把答对的记为1,答错的记为0,则10个题目的回答情况可以用仅含有1和0的串来表示。例如:0010110011 就是可能的情况。 
    答案写在“解答.txt”中,不要写在这里! 
    */
    
    #include<cstdio>  
    #include<cstring>  
    #include<algorithm>  
    #include<iostream>  
    #include<string>  
    #include<vector>  
    #include<stack>  
    #include<bitset>  
    #include<cstdlib>  
    #include<cmath>  
    #include<set>  
    #include<list>  
    #include<deque>  
    #include<map>  
    #include<queue>  
    using namespace std;
    
    int result[11]={0};
    
    void dfs(int steps,int score)
    {
        if(steps==11)
        {
            if(score==100)
            {
                for(int i=1;i<=10;i++)    cout<<result[i];
                cout<<endl;
            }
            return;
        }
        result[steps]=1;
        dfs(steps+1,score*2);
        
        result[steps]=0;
        dfs(steps+1,score-steps);
        return;
    }
    
    int main()
    {
        dfs(1,10);
        return 0;
    }

    可以用暴力简单解决的一道题,但是还是手痒用dfs算法写完了。注意一点:不能在dfs函数内写if(steps==11&&score==100),这样会导致答到第十题但分数不是100,却会继续dfs的情况,此时虽然能编译通过,但是操作系统会报超时错误(因为dfs永远走不完)。

    tz@COI HZAU

    2018/3/23

  • 相关阅读:
    DHCP和NAT
    Mongos WoW
    是否能在构造函数,析构函数中抛出异常?
    Lua Getter/Setter
    xLua
    基于模板特化的Lua自动绑定系统
    为什么有人说富坚义博有着殿堂级的画功?他的画功体现在哪儿呢? 关注者 10205 被浏览 2701670
    在Windows和MacOS下编译Lua
    解决warning MSB8012:问题
    setjmp和longjmp
  • 原文地址:https://www.cnblogs.com/acm-icpcer/p/8631501.html
Copyright © 2011-2022 走看看