2023年牛客寒假集訓營第五場題解

2021-10-20 04:33:37 字數 949 閱讀 8147

c、石子遊戲

思路:利用差分陣列將區間修改轉化為兩個端點處的單點修改,按照每次新增乙個長度為 k 的區間的規則,首先從左到右將所有點補到該點左邊比它高的點的高度,再從右到做將所有點補到該點右邊比它高的點的高度,最後特判一下第 n-k+1 個點(因為差分時以該點為左端點的區間右端點無法判斷)

然後如果能夠達到同一高度,說明從陣列中 2~n 部分的差分值都為0

**:

#include

#define int long long

using

namespace std;

const

int n =

1e5+5;

int a[n]

, b[n]

;signed

main()

int ans =0;

for(

int i =

2; i <= n-k; i++)}

for(

int i = n; i >= k+

1; i--)}

if(b[n-k+1]

<0)

int f =1;

for(

int i =

2; i <= n; i++)}

if(!f)puts

("-1");

else

cout << ans <<

"\n";}

return0;

}

f、我的心是冰冰的

**:

#include

using

namespace std;

intmain()

if(n ==1)

puts

("1");

else

puts

("2");

}return0;

}

2023年牛客寒假集訓營第二場題解

d 牛牛與整除分塊 思路 整數分塊有乙個性質,對於乙個整數n,當k n sqrt n 1 時,每個 n k 都是不同的,否則看n k是幾,然後利用對稱軸x n sqrt n 對稱過來 圖源自出題人 f 牛牛與交換排序 思路 如果有解的話k值一定是唯一的,那麼先確定k值,然後判斷這個k值是否可行。手寫...

2023年牛客寒假集訓營第一場題解

a 串 思路 一共n個字元,可以轉化為 i 1 i n 個字母中包含 us 的方案數之和 用 f i 2 1 0 表示前 i 個字母中 含有us 含u但不含us 既不含u也不含us 的方案數 然後可得狀態轉移方程 f i 0 25 f i 1 0 前i 1個字元不含u也不含s,那麼第 i 個字元除了...

2023年牛客寒假集訓營第六場題解

a 回文括號序列計數 思路 只有 形式的才符合題意,但 不是回文串 所以只有0的時候才行,其他都不行 include using namespace std intmain return0 c 末三位 思路 易得 include using namespace std intmain return0...