比賽5 總結

2021-08-07 21:10:18 字數 2371 閱讀 7332

t2t3

t4t5t6

輸入n和長度為n的由0,1組成的序列,刪去一些數,使1後面沒有0.

因為有1後,就不能有0,故僅需決定從哪個1開始刪去後面的0,且之前不能有1.

#include

using

namespace

std;

int n,a[101],b[101],bb=0;

int main()

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

}for(i=1;i<=bb;i++)

ans=max(ans,n-bb);//最後與全部為0時比較

cout

《未與全部為0時比較,且bb+b[i]+1-2*i計算錯誤.

輸入n,k,t與長度為k的序列.序列表示每個子任務依次要多久

有n個任務,每個任務必須按序列依次完成子任務,完成乙個子任務,加一點,乙個總任務,再加一點,問在t時間內最多可以獲得幾點.

先排序,統計最多能做m個總任務,列舉0到m,多餘時間從小任務開始做,找到最大值即可。

#include

#define n 501

#define m 1000000000

using

namespace

std;

int a[n],m,n,k,q,t,sum;

int zs(int sy,int rw)

z+=rw;

}for(i=1;;i++)

else

break;

}return z;

}int main()

m=t/sum;

if(t>=sum*n)//特判能否全做完

sort(a+1,a+k+1);

for(i=0;i<=m;i++)

cout

《輸入n與長度為n的整數序列,確定其中三個點,分成四段,使一三段減二四段的差最大

列舉中間點並計算它前後兩段所能取到的最大與最小值(用字首和維護),並比較哪個最終結果最大.

#include

#define n 5001

#define ll long long

using

namespace

std;

ll cnt[n],n;

int main()

//cnt[i]表示第乙個數到它的和

for(i=0;i<=n;i++)//列舉第二個數

}//向後取一段找到最大值

if(cnt[an1]+cnt[an3]-cnt[an2]>mx2)

//比較一三和的最大值來找答案

}cout

<" "

<" "

《先找一段和最小的序列,頭為ans1,尾為ans2,再以n為尾往前找一段和最小的序列,頭為ans3.

反例如下

5 1,-9,1,-9,-9.

答案應為1 2 3

該方法輸出1 5 5

因為第一次找的序列為-9到-9,是第四段為0.

輸入矩陣長寬m,n和k,q.

接下來q行,每行寫x,y,t,表示座標為x,y的t時為1.

若矩陣中有邊長為q的正方形內均為1,則輸出該時間

若沒有這個時間,則輸出-1.

將矩陣初值負為10^9+1,將時間輸入矩陣,每個數變成它右邊k-1數與自己的最大值,然後每個數變成它下面k-1個數和自己的最大值,再掃一遍,找到方陣的最小值,若為10^9+1,則輸出-1,否則輸出最小值。

#include

#define ll long long

#define n 510

#define m 1000000001

using

namespace

std;

ll a[n][n],m,n,k,q;

int main()

for(i=1;i<=m-k+1;i++)

}if(mn==m) cout

<<-1;

else

cout

《輸入長度為n的序列,隨機選擇r和l,若r< l,則交換,答案為其間的不同數字的個數

輸出所有答案的平均值

若要乙個數貢獻,則要在它與該數上一次出現的地方加一到該數與該數到n兩個區間,各選乙個,故可以算出該數貢獻的種類數,最後加起所有數貢獻的種類數除以總方案數n*n即可。

#include

#define n 1000001

#define ll long long

using

namespace

std;

ll last[n];

double n;

int main()

printf("%.6lf",ans/(n*n));

}

2015 8 15比賽總結

在總結之前,我必須膜拜一下某個切完提高組來省賽組虐場的犇。今天的比賽,失策還是有的,今天的問題如下 打 不小心,打錯了乙個小細節,導致最終答案錯誤。有的題目a了樣例我就以為可以了,或者是打的對拍也錯了 打題前沒有想清楚,最後對拍時才發現錯誤。第一題 這是道二分的題目,我在做比賽時就想到了正解,就是用...

8 17比賽總結

這次比賽考得一般般,這回的題是前段時間學的圖論演算法的測試題 100 52.2 40 12.5。1 位圖 這題是很簡單的圖論,用bfs 加優化簡單 o nm 過了。正解 這題將所有更新的點記錄在乙個佇列裡 初始的時候都是1 的看為更新的 然後每次將這些點往四周擴散,如果可以擴散,那麼 ans x,y...

8 18 比賽總結

這次比賽很不錯,排名第一 100 100 0 100 300。1 跳格仔 這題在比賽的時候做就很淼,直接dp 就可以了。正解 dp。2 2048 這題是一道純模擬題,只需要模擬2048 執行的步驟來進行迴圈和合併,由於 比較複雜,所以要精細做,考試的時候在除錯一小時後終於將這道題做了出來。正解 同上...