国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

[Educational Codeforces Round 17 D (762D)] Maximum path

2019-11-14 10:16:48
字體:
來源:轉載
供稿:網友

題意

給定一個3?n的數字矩陣,要求從(1,1)走到(3,n)使得路徑上數字和最大,每個位置只能走一次。

題解

找規律,一條路徑不會往回翻多于一格。因為如果多于一格,所有的路徑情況都能由不多于一格的路徑方案代替。

>>v v>v<<v ==> v^vv>> >^>

那么每一列有5種狀態

status 0 1 2 3 40 > > ->1 > < <2 > -> >

如果某一列狀態為0,1或2,代表從這一列有著一些路徑從第0,1或2行接出。 如果某一列狀態為3,代表著出現一次回翻且回翻是從這一列的第0行進入,下一列的第2行接出,走遍這兩列的每個數字。 狀態為4的類似狀態3。 然后O(n)dp

代碼

/// by ztx/// blog.csdn.net/hzoi_ztx#define Rep(i,l,r) for(i=(l);i<=(r);i++)#define rep(i,l,r) for(i=(l);i< (r);i++)#define Rev(i,r,l) for(i=(r);i>=(l);i--)#define rev(i,r,l) for(i=(r);i> (l);i--)#define Each(i,v) for(i=v.begin();i!=v.end();i++)#define r(x) read(x)typedef long long ll ;typedef double lf ;int CH , NEG ;template <typename TP>inline void read(TP& ret) { ret = NEG = 0 ; while (CH=getchar() , CH<'!') ; if (CH == '-') NEG = true , CH = getchar() ; while (ret = ret*10+CH-'0' , CH=getchar() , CH>'!') ; if (NEG) ret = -ret ;}#define maxn 100010LL#define infi 1000000000000000LLll a[3][maxn];ll f[5][maxn];inline void MA(ll&x,const ll&y) { if (x < y) x = y; }/*status 0 1 2 3 40 > > ->1 > < <2 > -> >*/int main() { int n, i, j; ll now; r(n); Rep (i,1,n) r(a[0][i]); Rep (i,1,n) r(a[1][i]); Rep (i,1,n) r(a[2][i]); rep (i,0,5) Rep (j,0,n) f[i][j] = -infi; f[0][0] = 0; Rep (i,1,n) { MA(f[0][i],f[0][i-1]+a[0][i]); MA(f[1][i],f[1][i-1]+a[1][i]); MA(f[2][i],f[2][i-1]+a[2][i]); now = a[0][i]+a[1][i]; MA(f[0][i],f[1][i-1]+now); MA(f[1][i],f[0][i-1]+now); now += a[2][i]; MA(f[0][i],f[2][i-1]+now); MA(f[2][i],f[0][i-1]+now); MA(f[0][i],f[4][i-1]+now); MA(f[2][i],f[3][i-1]+now); MA(f[3][i],f[0][i-1]+now); MA(f[4][i],f[2][i-1]+now); now = a[1][i]+a[2][i]; MA(f[1][i],f[2][i-1]+now); MA(f[2][i],f[1][i-1]+now); }
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 平潭县| 敦化市| 崇文区| 沅江市| 长沙市| 育儿| 茂名市| 全州县| 新泰市| 麟游县| 玉林市| 泗洪县| 徐闻县| 辽宁省| 南乐县| 卢氏县| 庆元县| 会昌县| 花垣县| 清新县| 侯马市| 临泽县| 灵山县| 扬中市| 清苑县| 呼伦贝尔市| 定结县| 天长市| 合川市| 富阳市| 卫辉市| 娱乐| 斗六市| 尼玛县| 黄冈市| 大名县| 玉门市| 临清市| 龙井市| SHOW| 巫山县|