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 執行的步驟來進行迴圈和合併,由於 比較複雜,所以要精細做,考試的時候在除錯一小時後終於將這道題做了出來。正解 同上...