NOIP模擬 艾比所特

2021-07-22 08:00:46 字數 2352 閱讀 5087

阿良良木曆將要迎來人生(不,是吸血鬼生涯)的第二次戰鬥——與身為人類和吸血鬼混血兒的艾比所特在直江津高中的操場solo,以取回heartunderblade的左腳。

艾比所特個子不大,卻單手扛著一副形狀比自己大三倍,重量是他體重乘三次方的巨大十字架。吸血鬼是怕十字架的,所以曆要遠遠地躲著。更麻煩的是艾比所特能變成霧氣,歷攻擊不到他,他卻因為是混血兒,吸血鬼的弱點降到了mininum,可以碰十字架。直到歷用沙子使艾比所特顯形,曆才獲得勝利。

可以把直江津高中的操場看成排成一條直線的n個點,其中第i個點位於數軸上的位置x[i]。如果從i跳到j,首先要花費時間|x[j]-x[i]|。假如i

這道題,題意很奇怪,字句間暗藏玄機。

我開始還以為是只用找乙個環,那麼就是值最大的尤拉迴路。

然後其實是可以有很多個簡單環的。

那麼就有乙個很顯然的性質

每個點的入度和出度只有1。

我們設f[i][j][k]表示做到第i個點,在1~i之間有j個點的還沒有出度,有k個點還沒有入度。

我們考慮從第i個點推向第i+1個點。

第一種情況:前i個點有乙個點連向第i+1個點,第i+1個點又連回來——>f[

i+1]

[j−1

][k−

1]=m

ax(f

[i+1

][j+

1][k

+1],

f[i]

[j][

k]+x

[i+1

]∗2+

a[i+

1]+c

[i+1

]);

第二種情況:前i個點有乙個點連向第i+1個點,第i+1個點往後面連——>f[

i+1]

[j][

k]=m

ax(f

[i+1

][j]

[k],

f[i]

[j][

k]+a

[i+1

]+d[

i+1]

);為什麼j和k沒有-1呢?因為推到i+1是又會多乙個點的,那麼影響j和k的點原本是又會多乙個,但是這裡會抵消乙個,上面的那種情況會抵消兩個。

第三種情況:第i+1個點連向前i個點的乙個點,i+1後面的點連向第i+1個點——>f[

i+1]

[j][

k]=m

ax(f

[i+1

][j]

[k],

f[i]

[j][

k]+b

[i+1

]+c[

i+1]

);第四種情況:i+1後面的點連向第i+1個點,第i+1個點又連向i+1後面的點——>f[

i+1]

[j+1

][k+

1]=m

ax(f

[i+1

][j+

1][k

+1],

f[i]

[j][

k]−x

[i+1

]∗2+

b[i+

1]+d

[i+1

]); 這種情況不會抵消。

注意邊界條件,前三種情況是在j>0||k>0的時候才能向後推的,因為都與i前面的點有關,前面的點用完了,自然不能連。

縮小空間

我們發現j和k都是同時加減的,所以三維可以合併為二維。

其實還可以繼續縮小,當然是滾動啦。

#include

#include

#include

#include

#include

#define fo(i,a,b) for(i=a;i<=b;i++)

#define fod(i,a,b) for(i=a;i>=b;i--)

#define rep(i,a) for(i=first[a];i;i=next[i])

using

namespace

std;

typedef

long

long ll;

const

int maxn=10007;

ll i,j,k,l,t,n,m,ans,da;

ll x[maxn],a[maxn],b[maxn],c[maxn],d[maxn],p,q;

ll f[2][maxn];

int main()

f[q][j+1]=max(f[q][j+1],f[p][j]-x[i+1]*2+b[i+1]+d[i+1]);

}p=p^1;

}printf("%lld\n",f[p][0]);

}

NOIP提高A組模擬 艾比所特

阿良良木曆將要迎來人生 不,是吸血鬼生涯 的第二次戰鬥 與身為人類和吸血鬼混血兒的艾比所特在直江津高中的操場solo,以取回heartunderblade的左腳。艾比所特個子不大,卻單手扛著一副形狀比自己大三倍,重量是他體重乘三次方的巨大十字架。吸血鬼是怕十字架的,所以曆要遠遠地躲著。更麻煩的是艾比...

NOIP模擬 修路

這題第一眼看上去有些懵逼,還以為是dp。第二眼,哦,這麼裸的最小生成樹,2分鐘打完,拍都沒對,自信100分。最終100分。每條邊的權值減去連個節點的權值,所有的邊做一次最小生成樹就好了。include include include include include define fo i,a,b f...

NOIP模擬 項鍊

經過一番周折,bob找到了alice,為了安慰alice驚魂未定的心,bob決定給alice買一條手鍊,這條手鍊由m個珍珠組成,每個珍珠上刻著不同的小寫字母。當alice看到一些字母按照一定的順序排列成的字串時,就會產生一定的愉悅值。bob現在可以在這m個珍珠上刻上字母,現在他想知道,如何刻字母可以...