時間限制: 1 sec 記憶體限制: 128 mb
提交: 20 解決: 12
[提交][狀態][討論版][命題人:外部匯入]
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:
每位選手需要回答10個問題(其編號為1到10),越後面越有難度。答對的,當前分數翻倍;答錯了則扣
掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理
每位選手都有乙個起步的分數為10分。
某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個
題目答錯了嗎?
如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:
0010110011 就是可能的情況。
你的任務是輸出所有可能情況,按二進位制從小到大的順序,每個答案佔一行。
解題思路:遞迴。用mk陣列標記每乙個問題是否答對,然後接著一直往下遞迴直到分數等於100,最後用乙個for迴圈算出每個方法對應的十進位制數值,儲存到sum陣列,然後用sort從小到大排序,最後按順序二進位制輸出
#includeusing namespace std;int mk[11],sum[9999];
int j=0;
void dfs(int x,int y)
j++;
return;
}else if(x!=100&&y==11)return;
mk[y]=1;
dfs(x*2,y+1);//第y道題答對
mk[y]=0;
dfs(x-y,y+1);//第y道題答錯
}int main()
}return 0;
}
低碳生活大獎賽
問題描述 某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 1 每位選手需要回答 10個問題 其編號為1到 10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 2 每位選手都有乙個起步的分數為 10分。某獲勝選手最終得分剛好是 100分,...
低碳生活大獎賽
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...
藍橋杯 某電視台舉辦了低碳生活大獎賽
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪 每位選手需要回答10個問題 其編號為1到10 越後面越有難度。答對的,當前分數翻倍 答錯了則扣掉與題號相同的分數 選手必須回答問題,不回答按錯誤處理 每位選手都有乙個起步的分數為10分。某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能...