upc 訓練賽第六場 遊戲(組合數)

2021-08-21 22:21:42 字數 1981 閱讀 2485

時間限制: 1 sec  記憶體限制: 512 mb

提交: 180  解決: 48

[提交] [狀態] [討論版] [命題人:admin]

題目描述

九條可憐是乙個熱愛遊戲的女孩子,她經常在網上和一些網友們玩一款叫做《殭屍危機》遊戲。

在這款遊戲中,玩家們會需要在成為殭屍之前與黑惡勢力鬥智鬥勇,逃離被病毒感染的小島。但是黑惡勢力不會讓玩家輕易得逞,他會把一些玩家抓走改造成殭屍。變成殭屍的玩家會攻擊其他的玩家,被攻擊的玩家會被」感染」,成為病毒的潛在宿主。

具體來說,遊戲開始時,所有的玩家會獲得乙個l∼r的編號(如果一共有r−l+1個玩家),不同的玩家的編號不同。

遊戲分輪次進行,在每一輪中一次會發生這樣的事情。

•如果所有當前所有的正常人都已經被感染,那麼遊戲結束。

•不然,黑惡勢力會在當前的正常人(包括被感染的人)中等概率隨機乙個改造成殭屍。

•被改造成殭屍的玩家會攻擊所有編號是他的倍數的玩家,使得他們被感染。

九條可憐現在想知道,這個遊戲期望會進行多少輪?這個答案可能是乙個實數,她想讓你給出期望輪數乘上(r−l+1)!以後的結果,這個結果可能很大,請對109+7取模後輸出。

輸入第一行輸入兩個整數 l, r 表示編號範圍。

輸出乙個整數,表示期望進行的輪數。

樣例輸入

2 4
樣例輸出

16
提示

• 2 3 4, 輪數是 2。

• 3 2 4, 輪數是 2。

• 4 2 3, 輪數是 3。

• 4 3 2, 輪數是 3。

• 2 4 3, 輪數是 3。

• 3 4 2, 輪數是 3。

每種情況的概率都是 1/6,於是期望輪數就是 (2 + 2 + 3 + 3 + 3 + 3)/6 =8/3。

乘上 3! = 6 以後就是 16 。

對於 20% 的資料,r − l + 1 ≤ 8。

對於另 10% 的資料,l = 1。

對於另 10% 的資料,l = 2。

對於另 30% 的資料,l ≤ 200。

對於 100% 的資料,1 ≤ l ≤ r ≤ 107 。

題解: 

1.首先要求得篩掉所有的數所需要最少的數的個數(即只要在剩下那些數前邊拿這些數就可以減少拿的次數)

2。假設必須取的數為sum個,對於本題來說就是遊戲的輪數應當介於sum到r-l+1

3.我們設s[i]為遊戲輪數為i時的排列有多少種.

4.輪數為i那麼第i位一定時sum個數中的乙個(情況有sum種(c(sum,1))並且剩餘的sum-1個數在第i位前邊。

5.第i位前邊有i-1個數 有sum-1個數必選的 剩餘的i-1-(sum-1)是從剩餘的n-sum個數中選的

情況為c(n-sum,i-sum)乘前i-1個數的全排列,乘後n-i個數的全排列

6.綜上所述公式為sigama(i從sum到r-l+1)s[i]=sum*(c(n-sum,i-sum))*(i-1)!*(n-i)!,因為這個是輪數為i的排列個數,所以還要乘i

7.還有就是注意那個o(n)求階乘逆元的方法(學習了)。

#include#include#includeusing namespace std;

#define ll long long

#define n 10000005

const ll mod = 1000000007;

ll fac[n];

ll ni[n];

int vis[n];

inline ll qpow(ll a,ll k)

return tm%mod;

}int main()}}

ll ans=0;

ll n=r-l+1;

for(register int i=sum;i<=r-l+1;++i)

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

}

參考部落格:

2018 8 4牛客網暑期ACM訓練第六場 A題

題目大意 有2 n個歌手,每個歌手會準備n首歌去唱,每首歌有它的分數,分數高的就贏。兩兩相比,贏的人繼續兩兩相比,直到冠軍出來。分析 用乙個二維陣列儲存每個比賽歌手準備的歌曲,並且用該陣列繼續儲存每輪勝者還可以唱的歌曲。可以知道,每個歌手要保證自己每場都贏,就要用比對手最高分歌曲還高的歌曲唱,並且在...

暑期個人賽 第六場 B(常複習 !!!)

時間限制 4000 ms 記憶體限制 65536 kb 小弱有n個玩具,現在小弱想把他們排列成一行,把玩具j放在玩具i的右邊相鄰的位置上,他將得到乙個高興值hij.輸入有多組資料。每組資料以乙個整數n n 18 開頭。接下來n行,每行n個整數。第i行第j列hij hij的絕對值 10000 代表把玩...

2020NYIST個人積分賽第六場 D

題意 給n個點,m條邊,讓構建乙個有向無環無重邊的圖,並且圖的最短路是素數,最小生成樹也是素數。思路 題意的可塑造性很強,我們可以讓最小生成樹就是最短路,呢麼我們現在就是給最小生成樹找乙個素數,很明顯最小生成樹的素數範圍在 1,1e14 1,1e14 1,1e1 4 所以預處理1 1e14不太可能,...