09-19模擬C組
T0
總的來說有點炸,AC一題,然後有一題水了50%的點。
T1蜈蚣
題目描述
你有C只蜈蚣,每隻蜈蚣有F只腳。冬天來了,要給蜈蚣們穿襪子。抽屜裡有N種顏色的襪子,第i種顏色襪子的數量有a[i]只。對於一隻蜈蚣來說,它所有的腳穿的襪子的顏色必須相同。現在你閉上眼睛,從抽屜裡面隨意拿出X只襪子,你要保證隨意拿出來的X只襪子一定可以滿足所有蜈蚣的需求。那麼X的最小值是多少?如果X不存在,輸出-1。
輸入
第一行,三個整數,C,F,N。1<=C<=50,1<=F<=100,1<=N<=100。
第二行,N個整數,第i個整數是a[i]。1 <= a[i] <= 10000000。
輸出
一個整數。最小的X,如果X不存在,輸出-1。
這道題是一道數學題而我卻沒打出來呵呵(電腦前面坐了一天狀態有點差,下午也沒改出來)。正解也查不到,據說Pascal正解如下
var a:array[0..105] of longint; n,m,l,i,j,ans,maxi:longint; function find:longint; var i:longint; begin find:=1; for i:=2 to l do begin if a[i]>a[find] then find:=i; end; end; begin assign(input,'e.in'); reset(input); assign(output,'e.out'); rewrite(output); readln(n,m,l); for i:=1 to l do begin read(a[i]); end; maxi:=0; for i:=1 to n do begin if i=1 then begin for j:=1 to l do begin if a[j]>=m-1 then begin inc(ans,m-1); dec(a[j],m-1); end else begin inc(ans,a[j]); a[j]:=0; end; end; maxi:=find; end else begin if a[maxi]>=m-1 then begin inc(ans,m-1); dec(a[maxi],m-1); end else begin inc(ans,a[maxi]); a[maxi]:=0; end; maxi:=find; end; if a[maxi]=0 then begin writeln(-1); halt; end; dec(a[maxi]); inc(ans); end; writeln(ans); close(input); close(output); end.
對著打了一遍沒打出來。
T2白板
這道題就比較簡單,用模擬六種情況就可以了。
T3序列
題目描述
PYWBKTDA最近在研究一些有趣的數列。
他給你一個無窮序列”112123123412345…”。這個序列是這麼構造的,我們先寫出1到1的所有整
數,然後寫出1到2的所有整數,然後寫出1到3的所有整數,這樣不斷重複進行到無窮。
例如現在前56個數字組成的序列是:
”11212312341234512345612345671234567812345678912345678910”。
我們把序列裡面的每個數字從1開始編號,比如編號為1的數字就是1,編號為2的數字也是1,編號
為3的數字是2,編號為20的數字是5,編號為38的數字是2,編號56的數字是0.
現在你的任務是對於題目給出的q個詢問,每個詢問是k i ,表示問你編號為k i 的數字是多少。
輸入
第一行是整數q,表示詢問的數量。
接下來i行,每行一個整數,表示k i 。
輸出
輸出共計有q行,第i行的輸出表示對應的k i 的詢問,顯然,每個答案都在0到9之間。
這道題就很傷,資料有10^18這麼大。
T4遊戲
PYWBKTDA很喜歡玩一些遊戲,比如算21點。他最近迷上了一款彈珠遊戲。
有n個彈珠排成一排,第i個彈珠的顏色是a i 。 PYWBKTDA喜歡把這些彈珠重新排列,使得相
同顏色彈珠都在同一個連續區間。也就是說,如果PYWBKTDA想要把顏色i的全部放在一起,那
麼顏色i彈珠的最左邊的位置是l,最右邊的位置是r,那麼所有顏色為i的彈珠的位置只能在l到r之間,
l到r範圍內也只能有顏色i的彈珠。
為了達到這個目的,PYWBKTDA將進行如下操作:找到兩個相鄰的彈珠,把它們交換一下位
置。
現在你的任務是來計算最小的交換次數,使得相同顏色彈珠都在同一區間,在這個區間內,同
種顏色的彈珠的位置是無關緊要的。
輸入
輸入的第一行是一個整數n,表示彈珠的數量。
輸入的第二行有n個整數a i ,表示第i個位置上彈珠的顏色。
輸出
輸出只有一個整數,表示最少的交換次數。
正解好像是狀壓dp+n逆序對統計,暴力只有20%,但是我一個都沒打出來。