NOI Online 3 提高組 水壺

2022-06-13 14:18:14 字數 656 閱讀 3462

在乙個長度為 \(n\) 的序列中求出長度為 \((k+1)\) 的最大子段。

本題唯一的需要注意的一點是當 \(k=n\) 時要輸出所有數的和,像我的考場**:

scanf("%d%d", &n, &k);

k++;

if(k > n) k = n;

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

scanf("%d", &a[i]);

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

op += a[i];

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

printf("%lld", ans);

要是 \(n\leq k\) 就鍋了。

正確**:

scanf("%d%d", &n, &k);	

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

scanf("%d", &a[i]);

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

op += a[i];

for (int i = min(k + 1, n); i <= n; i++)

printf("%lld", ans);

NOI Online 3 提高組 第一題 水壺

題目鏈結 其實這道題也不算是特別難,也跟普及組的題目的難度差不多。題目基本演算法 最大欄位和 字首和維護 由於水都是正數,我們能加多少就加多少,故我們必須要用完k kk次。而且我們要保證我們最後都能把所有水加到一杯水裡面去,所以題目就轉化成了求一段長度為k 1 k 1 k 1的最大子段和。inclu...

NOI Online 3 提高組 T1水壺 題解

有 n 個容量無窮大的水壺,它們從 1 sim n 編號,初始時 i 號水壺中裝有 a i 單位的水。你可以進行不超過 k 次操作,每次操作需要選擇乙個滿足 1 x n 1 的編號 x 然後把 x 號水壺中的水全部倒入 x 1 號水壺中。最後你可以任意選擇恰好乙個水壺,並喝掉水壺中所有的水。現在請你...

NOI Online 3 提高組 優秀子串行

點此看題 首先有乙個樸素dpdp dp,因為每個數字都只會最多出現1 11次,而且出現數字相同的不同情況最後也可以一起算答案 和一定 那麼我們只需要統計出方案數,dp i dp i dp i 為二進位制位出現的裝壓為i ii,轉移列舉包含i ii的狀態j jj,設a i a i a i 為值i ii...