bzoj1187 HNOI2007 神奇遊樂園

2022-05-21 13:15:11 字數 1202 閱讀 2713

(題目鏈結)

乙個$n*m$的矩陣,其中每乙個位置有乙個權值,求一條迴路使得經過的位置的權值和最大。

插頭dp,插頭維護連通資訊,更新答案的條件就是合併的左插頭和右插頭屬於同一連通塊,且當前狀態已經沒有其它插頭了。更新完答案後這個狀態不會再被記入下一次dp。

// bzoj1185

#include#include#include#include#include#include#include#define ll long long

#define has 6311

#define inf 2147483640

#define pi acos(-1.0)

#define free(a) freopen(a".in","r",stdin),freopen(a".out","w",stdout);

using namespace std;

const int maxd=10,maxs=100010,maxh=6400;

int code[maxd],cnts[maxd],n,m;

int head[maxh],next[maxs];

int size[2],tot[2][maxs],s[2][maxs];

void decode(int st)

int encode()

for (int i=0;i<=m;i++) st=st<<3|code[i];

return st;

}void shift()

void add(int p,int num)

s[p][++size[p]]=st;tot[p][size[p]]=num;

next[size[p]]=head[id];head[id]=size[p];

}int main()

for (int l=j+1;l<=m;l++) if (code[l])

if (!flag) ans=max(ans,tot[p^1][k]+val);

}else

}else if (left || up)

if (i}

else

code[j-1]=code[j]=0;

if (j==m) shift();

add(p,tot[p^1][k]);}}

} printf("%d",ans);

return 0;

}

bzoj1187 HNOI2007 神奇遊樂園

time limit 10 sec memory limit 162 mb submit 1309 solved 702 submit status discuss 經歷了一段艱辛的旅程後,主人公小p乘坐飛艇返回。在返回的途中,小p發現在漫無邊際的沙漠中,有一塊狹長的 綠地特別顯眼。往下仔細一看,才...

狡猾的商人 bzoj1202,HNOI2005

ac通道 分析 因為每月的總收入可以為正,也可以為負,所以要比較兩個區間是否相符,當且僅當它們邊界都相同時才能比較。我們設w i 表示第1 i個月的總收入與第1 fa i 1 個月的總收入之差,及第fa i i個月的總收入。如圖。若i 1,j在同乙個集合中,則第i j個月的總收入為w j w i 1...

bzoj 2326 HNOI2011 數學作業

題目大意 給你n,m,求concatenate 1.n mod m的值 concatenate 1.n 代表把1到n連起來 比如n 13時 concatenate 1.n 就是12345678910111213 n 10 1 m 10 9 這題很水,對於n,將其分開,比如145,就分成1 9,10 ...