(題目鏈結)
乙個$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 ...