寒假集訓四補題與題解

2022-09-21 00:36:10 字數 1340 閱讀 6721

採摘花生也需要單位1的時間;

最後只需退回馬路上即可,不需要返回起點,退回馬路所需的時間即為當前位置的行號;

#include#include#includeusing namespace std;

int n,m,t;

int bu,sum;

int a[22][22];

struct you

hh[22*22];

bool cmp(you a,you b)

int main()

}sort(hh,hh+t,cmp);

int c=hh[0].x+1;

for(int i=0;ibu) break;

sum+=hh[i].num;

c+=abs(hh[i+1].x-hh[i].x) + abs(hh[i+1].y-hh[i].y) + 1;

}cout《可以轉化為01揹包問題求方案數:

將總和 mm 看作揹包容量;

將每個數 aiai 看作體積為 aiai 的物品

#includeusing namespace std;

const int n=110;

int n,m;

int v[n];

int f[n];

int main()

cout《狀態表示—集合f[l][r]: 當前合併的石子堆的左端石頭的左引數是 ll,右端石頭的右引數是 rr 的方案

狀態表示—屬性f[l][r]: 方案的費用最大

狀態計算—f[l][r]:    f[l][r]=max(f[l][r],f[l][k]+f[k][r]+e[l][r])(l初始狀態: f[l][l+1]=0(1≤l≤n)

目標狀態: f[1][n+1]

#include#include#includeusing namespace std;

const int n=110,m=220;

int n,w[m];

int f[m][m];

int main()

memset(f,-0x3f,sizeof f);

for(int len=2;len<=n+1;len++)

for(int i=1,r;(r=i+len-1)<=n*2;i++)

if(len==2) f[i][r]=0;

else for(int k=i+1;kf[i][r]=max(f[i][r],f[i][k]+f[k][r]+w[i]*w[k]*w[r]);

int res=0;

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

res=max(res,f[i][i+n]);

cout

}

寒假集訓一補題與題解

排序 中位數性質 int a 100010 void sort int l,int r return false 如果所有的都不滿足,那麼這個平均數就一定不滿足 int main while r l 1e 5 printf d n int r 1000 return 0 兩邊的牛高 中間的牛矮資料範...

寒假集訓二補題與題解

統計字首個數,一想到字串的字首,我們就應該想到字典樹,這個和字典一樣的字首樹.這道題目是字典樹模板的略微改動,我們發現這道題目和一般字典樹的查詢不一樣,字典樹一般查詢是看這個字串是否出現,而這道題目這是統計這個字串出現的次數.includeusing namespace std const int ...

1 28寒假集訓 1(補題)

學不會今天的內容 種樹,只能補補昨天的題了otz 先補了個昨天的g題 竟因沒反應過來priority queue是優先佇列沒有寫qaq太菜了 kattis guessthedatastructure 題意 給n行資料,如果是1就塞進去,2就拿出來,判斷是佇列還是優先佇列還是棧,都不是就輸出impos...