vijosP1903學姐的實習工資

2022-05-12 01:36:43 字數 2736 閱讀 6384

學姐去實習了, 一共實習了n天, 每一天都可以得到實習工資v[i], 這裡v[1..n]被看作是整數序列.

因為學姐很厲害, 所以v[1..n]是不下降的.

也就是說學姐每天的工資只會越來越多, 不會變少.

然而遺憾的是, 偷懶的學姐只記下來了其中m天的收入.

第a[1]天獲得了的工資為b[1].

第a[2]天獲得了的工資為b[2].

第a[3]天獲得了的工資為b[3].

...第a[m]天獲得了的工資為b[m].

其中a是遞增的.

好在她記下來了第一天和第n天的收入. 也就是說a[1]=1, a[m]=n.

現在實習結束了, 學姐看著僅有的m天的記錄, 希望知道:

(1)工資序列v[1..n]有多少種可能情況, 滿足已知的m條記錄. 答案mod 1000000009.

(2)平均來說(考慮所有可能的情況), n天中一共得到了多少工資, 答案四捨五入到小數點後第三位.

如果doc不能回答學姐的這兩個問題, 學姐會生氣的!

輸入資料第一行給定t, 表示總的詢問次數.

對於每一次詢問, 第一行給出兩個整數n和m.

第二行給出m個整數, 分別為a[1]到a[m].

第三行給出m個整數, 分別為b[1]到b[m].

對於每一次詢問, 首先輸出詢問的編號, 參見樣例輸出.

之後輸出問題1和問題2的答案, 用空格隔開, 詳細請參見樣例輸出.

2

6 51 2 3 5 6

3 5 10 20 20

6 61 2 3 4 5 6

3 5 10 15 20 20

case #1: 11 73.000

case #2: 1 73.000

對於30%的資料:

n <= 100.

對於60%的資料:

n <= 50000.

對於100%的資料:

2 <= n <= 1000000.

m <= 1000.

t <= 10.

1 = a[1] < a[2] < ... < a[m] = n.

0 <= b[1] <= b[2] <= ... <= b[m] <= 1000000.

題解:終於填了這個坑。。。

其實考場上因為沒時間所以打了暴力,大概因為乘法溢位爆零了。。。然後發現需要預處理n!以及n!的逆元,這不是很隨意嗎。。。

第一問用插板法算一下組合數,第二問我們可以認為b[i]到b[i+1]這裡面的每個數被選到的概率都是相等的,然後期望就是(b[i]+b[i+1])/2

然後注意乘法溢位就可以了(乘法溢位居然wa0了4次t_t)

**:

1 #include2 #include3 #include4 #include5 #include6 #include7 #include8 #include9 #include

10 #include11 #include

12#define inf 1000000000

13#define maxn 2000000+5

14#define maxm 500+100

15#define eps 1e-10

16#define ll long long

17#define pa pair18

#define for0(i,n) for(int i=0;i<=(n);i++)

19#define for1(i,n) for(int i=1;i<=(n);i++)

20#define for2(i,x,y) for(int i=(x);i<=(y);i++)

21#define for3(i,x,y) for(int i=(x);i>=(y);i--)

22#define mod 1000000009

23using

namespace

std;

24 inline int

read()

2528

while(ch>='

0'&&ch<='9')

29return x*f;30}

31 ll fac[maxn+1],inv[2][maxn+1

];32

bool v[maxn+1

];33

int p[maxn+1

],tot,a[maxn],b[maxn];

34int

main()

3548

}49 inv[0][0]=inv[0][1]=1

;50 for2(i,2,maxn)inv[0][i]=(ll)(mod/i+1)*inv[0][i-mod%i]%mod;

51 fac[1]=inv[1][1]=1

;52 for2(i,2

,maxn)

5357

//for1(i,100)cout<58

int cs=read(),t=0;59

while(cs--)

6070

double sum=b[m];

71 for1(i,m-1)72

76 printf("

case #%d: %lld %.3lf\n

",++t,ans,sum);77}

78return0;

79 }

view code

docker 19 03安裝部署,阿里源加速

部署docker最新版本,本技術文件以19.03為例子。如果需要最新版本的centos7的docker版本,那麼這個技術文件也是能夠幫助到你。docker所依賴的包環境,為了方便不報錯,推薦執行 yum config manager add repo 只需要再執行一下這條命令 yum config ...

洛谷 P1903 數顏色 分塊 bitset

題目鏈結 給你乙個數列代表不同的顏色 可以修改 詢問一段區間內有多少種顏色。很容易想到的就是線段樹來維護bitset。這裡為了練習,使用分塊維護bitset。事實上線段樹可以看成是無限分塊。修改的時候直接暴力將被修改位置所在的塊重新計算,形成新的bitset。查詢的時候,直接按塊合併bitset即可...

pip18 1公升級19 0 3 艱辛路程

今天準備把pip18.1公升級到19.0.3的,可是沒想到網上搜尋到的大多數方法都不管用,嘗試了n種分享的方法後,最後在pip官方 找到了正確的公升級方法。嘗試的方法有以下幾種 1 pip install upgrade pip 2 python m pip install upgrade pip ...