2020第一賽 新生賽002 補題

2021-10-01 22:30:54 字數 2641 閱讀 6112

這次只出了一道題 不可能告訴你們呢道題是簽到題

然後是愉快的補題時間(如下)nbut - 1609

題幹傳送門 題意

是在乙個座標軸上求乙個梯形的面積 可以把這個梯形分成兩個同底不同高的兩個三角形附**

思路+**

#include #include int main()

return 0;

}

nbut - 1666

題幹傳送門

開始的思路

一位數字的時候只有乙個類二進位制數(也就是1),兩位數字的時候有兩個類二進位制數(10和11),然後用%10/10算出n有幾位數前n-1位數字可以用等比數列前n項和來算 只需算出n位數字有有幾個類二進位制數加起來即可,算出數字n 所有位的數有幾個超過1的數字附源**如下(未ac)

#include #include #include using namespace std;

int qpow(int x,int y)

return re;

}int main()

return 0;

}

然後補題失敗 看過大佬題解之後不知道dfs是啥

去學了下(還不太懂)

等看懂再補上吧hhhhhh

codeforces - 1265a

題幹傳送門 題意

思路+**codeforces-1265b

題幹題幹傳送門

題意

給乙個含有n個整形元素的陣列,對每乙個m(1<=m<=n)進行判斷是否有乙個含m個元素的區間([l,r])能夠包含從1到m的所有元素(不要求順序排列)並以0和1輸出

思路+**

一 孫晨曦dalao思路+**

思路

因為如果存在這樣的區間[l,l+1,…,r]使區間內恰好

只有前k個數,則區間長度為r-l+1,所以可以在輸入時

預處理排列中[1…n]每個數的位置,對數值進行排序。

開兩個變數記錄包含當前值k(幷包含之前值)需要的

最大左右端點l和r,判斷r-l+1是否等於k即可。

``

**
#include#include#includeusing namespace std;

const int maxn=200007;

int t,n,p[maxn];

int main()

for(int i=1;i<=n;i++)

printf("\n");

}}

二 自己的還沒想出來 等想出來比dalao的更簡單的話會再加上codeforces - 1263a

題幹傳送門

題意

給你三種顏色的糖塊的數量,每天吃兩個不同顏色的糖塊 得出這三堆糖塊最多能吃幾天

思路+**

cbl思路

思路

用最少的那堆糖去平和其他兩堆 分兩種情況 1 最多的減去第二多的比最少的那堆多 (也就是平和不了 最少的那堆太少了)簡單,2最少的那堆比兩堆差還多 再分兩種情況 剩的是奇數餘數減一除二 同理

**#include #include #include using namespace std;

int t,r,g,b;

int main()

if(r>b)

if(g>b)

if(b-g>=r){

cout題幹傳送門

題意

在攽發最多的獎牌的情況下(g+s+b),滿足以下條件

1.g>0&&s>0&&b>0

2.gp[s]>p[b]>p[wu]不能相等

4.g+s+b<=n/2

5。g+s+b的總數要最多

思路+**

思路

1.先把g安排好(越少越好)

2.同理,再把s安排好(也是越少越好)

3.最後,把能安排的剩下的所有獎牌都給b

**#include #include #include using namespace std;

int t,n;

const int maxn=400005;

int p[maxn];

int main(){

cin>>t;

while(t--){

int i=1,t,x=1,y=2,z=2;

cin>>n;

for(int h=1;h<=n;h++)

cin>>p[h];

t=p[1];

for(i++;x+y+z<=n/2&&p[i]==t;i++)x++,y++,z++;

i=x+y;

t=p[i];

for(i++;x+y+z<=n/2&&p[i]==t;i++)y++;

i=x+y+z;

z=n/2-x-y;

t=p[n/2+1];

for(int h=n/2;x+y+z<=n/2&&p[h]==t;h--)z--;

if(xnbut - 1615

題幹傳送門 題意

思路+**nbut - 1667

題幹傳送門 題意

思路+**poj -2227

題幹傳送門 題意

思路+**

新生賽補題

題目大意 構造乙個長度為n的嚴格遞增序列,每個數都屬於 1,m 求方案數,結果模998244353。dp的轉移方程 第一位數 i 代表的是遍歷到第幾個數了,j代表的是當前位是幾。dp i j dp i 1 j dp i j 1 ac include using namespace std const...

新生賽002(涼心的比賽)補題

這次又寫了簽到題 codeforces 976a 題幹傳送門 題意 其實只需要得出0和1的數目 然後輸出乙個1和所有的0即可 include include include include using namespace std int n string s int main str maxn bo...

天梯賽賽前模擬賽補題 2020

一 暢通工程之最低成本建設問題 這道題是用最小生成樹做的,之前最小生成樹練的很少,比賽時沒寫出來,也沒考慮用最小生成樹,還是練得少。這個題可以用kruskal演算法做,先將每條路的花費從小到大排序,然後再從頭開始加每條邊花費的 從頭開始用並查集判斷兩個點的根節點是否相同,如果相同說明出現了環,就co...