某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:
每位選手需要回答10個問題(其編號為1到10),越後面越有難度。答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。
每位選手都有乙個起步的分數為10分。
某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?
如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。
你的任務是算出所有可能情況。每個答案佔一行。
答案寫在「解答.txt」中,不要寫在這裡!
分析:方法一:直接暴力即可,十層for迴圈,按照規則進行相應的運算。。。
1 #include2using
namespace
std;
3int
main()426
if(mark==100)27
32}33return0;
34 }
方法二:深搜每種狀態,每種問題有兩種情況,(1正確,0錯誤),時間度咋讀是2^10......
1 #include2 #include3 #include4 #include5using
namespace
std;
6const
int maxn = 15;7
8void dfs(int k, int score,int
a )15 cout<17return;18
}19 a[k]=1
;20 dfs(k+1,abs(score)*2
,a);
2122 a[k]=0
;23 dfs(k+1,score-k,a);
24/*
a[k]=0;
*/2526}
2728
intmain()
*/33 memset(a,0,sizeof
(a));
34 dfs(1,10,a);/*
第乙個引數代表第幾個問題,第二個引數代表現在的得分
*/35
return0;
36 }
某電視台舉辦了低碳生活大獎賽。題目的計分規則相當奇怪:
每位選手需要回答10個問題(其編號為1到10),越後面越有難度。答對的,當前分數翻倍;答錯了則扣掉與題號相同的分數(選手必須回答問題,不回答按錯誤處理)。
每位選手都有乙個起步的分數為10分。
某獲勝選手最終得分剛好是100分,如果不讓你看比賽過程,你能推斷出他(她)哪個題目答對了,哪個題目答錯了嗎?
如果把答對的記為1,答錯的記為0,則10個題目的回答情況可以用僅含有1和0的串來表示。例如:0010110011 就是可能的情況。
你的任務是算出所有可能情況。每個答案佔一行。
答案寫在「解答.txt」中,不要寫在這裡!
分析:方法一:直接暴力即可,十層for迴圈,按照規則進行相應的運算。。。
1 #include2using
namespace
std;
3int
main()426
if(mark==100)27
32}33return0;
34 }
方法二:深搜每種狀態,每種問題有兩種情況,(1正確,0錯誤),時間度咋讀是2^10......
1 #include2 #include3 #include4 #include5using
namespace
std;
6const
int maxn = 15;7
8void dfs(int k, int score,int
a )15 cout<17return;18
}19 a[k]=1
;20 dfs(k+1,abs(score)*2
,a);
2122 a[k]=0
;23 dfs(k+1,score-k,a);
24/*
a[k]=0;
*/2526}
2728
intmain()
*/33 memset(a,0,sizeof
(a));
34 dfs(1,10,a);/*
第乙個引數代表第幾個問題,第二個引數代表現在的得分
*/35
return0;
36 }
第二屆藍橋杯省賽 密碼發生器
密碼發生器 在對銀行賬戶等重要許可權設定密碼的時候,我們常常遇到這樣的煩惱 如果為了好記用生日吧,容易被破解,不安全 如果設定不好記的密碼,又擔心自己也會忘記 如果寫在紙上,擔心紙張被別人發現或弄丟了.這個程式的任務就是把一串拼音字母轉換為6位數字 密碼 我們可以使用任何好記的拼音串 比如名字,王喜...
第二屆藍橋杯 歌賽新規則
題目 歌賽新規則 歌手大賽的評分規則一般是去掉乙個最高分,去掉乙個最低分,剩下的分數求平均。當評委較少的時候,如果我們只允許去掉乙個分數,該如何設計規則呢?有人提出 應該去掉與其餘的分數平均值相差最遠的那個分數。即 最離群 的分數。以下的程式用於實現這個功能。其中x存放所有評分,n表示陣列中元素的個...
第二屆藍橋杯 中獎計算
題目 中獎計算 某 活動的規則是 每位參與者在紙上寫下乙個8位數的號碼。最後通過搖獎的辦法隨機產生乙個8位數字。參與者寫下的數字中最多有多少個連續位與開獎號碼中的相同,則稱為中了幾個號。例如 小張寫的數字是 12345678,而開獎號碼是 42347856。則稱小張中了3個號,因為其中最長的相同連續...