NOIP模擬題 答題比賽

2021-08-09 21:47:55 字數 1236 閱讀 8676

description

lcj報名參加了乙個特殊的電視問答節目。這個節目共有

n 個問題,每回答正確1題,lcj就會獲得1分,而每當lcj連續答對

k題,那麼他的現有得分乘以2,注意答對第

k 題後,是先加1分到總分中,再把總分乘以2,此時連續答對題目計數器會清零。現在lcj成功對了

m題,他想知道他的最小得分。因為這個數字可能很大,你只需要輸出這個數對1,000,000,009取模的結果即可。

input

僅一行,三個數n,

m,k 如題目描述。

2<=

k<=

n<=109

,0<=

m<=

n 。

output

僅一行,乙個數,lcj的最小得分。

sample input

5 3 2

sample output

3hint

思路

每次答題得分的最小值一定是盡可能連續答對k−

1 題,如果還有可以答對的題,那麼都放在前面的空缺中。注意這道題要快速冪,由於連續答對k∗

m 的得分為2(

2(2(

k)+k

)+k.

..)=

2m+2

m−1+

...+

2=2m

+1−2

,因此答案加上這個值再減去重複求的值就好了。

**

#include 

const

long

long mo=1000000009ll;

long

long n,m,k,ans;

long

long quickpow(long

long a,long

long b,long

long m)

b/=2;

a=(a*a)%m;

}return res;

}int main()

else

else

}printf("%lld\n",ans);

return

0;}

程式設計題 比賽模擬

from random import random def printintro 列印程式介紹資訊 print 桌球競技分析 print 這個程式模擬兩個隊伍a和b桌球比賽 print 程式執行需要隊伍a和隊伍b的能力值 以0到1之間的小數表示 def getinputs 獲得程式執行引數 a ev...

NOIP2017模擬 舉辦比賽

2017.8.27 t1 1946 樣例資料1 輸入5 5 1 2 3 4 5 輸出 樣例資料2 輸入10000000 10000000 555 888 777 666 12345 輸出 分析 第一次做這種隨機概率題 看到資料那麼大o n 的做法根本想不到就直接放棄了。結果就是個撞運氣的ffffff...

NOIP2012模擬10 27 比賽

description 有兩個隊伍a和b,每個隊伍都有n個人。這兩支隊伍之間進行n場1對1比賽,每一場都是由a中的乙個選手與b中的乙個選手對抗。同乙個人不會參加多場比賽,每個人的對手都是隨機而等概率的。例如a隊有a1和a2兩個人,b隊有b1和b2兩個人,那麼 a1 vs b1,a2 vs b2 和 ...