APIO2016 亞瑟王之宮

2021-07-14 22:01:16 字數 1149 閱讀 1648

暴力

一開始看到這題:暴搜?剪枝?貪心?不知所措,但是想了一想,肯定是要預處理出每個騎士到每個點的最短路的。

然後打完第三題有來做這題,發現r和c很小,那麼可以暴力出兩個點對,然後分配騎士到兩個點對去,使得答案最小。

dp是肯定可以做的。

貪心

現在搜到了點對i和j,假設所有的騎士都去i,每個騎士的貢獻是d1[i],那麼如果騎士要該去點j,那麼答案就要加上d1[j]-d1[i],可以發現這個數可能是負數,那麼如果是負數可以讓答案變小,是正數就沒必要加,因為答案取最小值,所以有乙個很顯然的貪心策略就是把所的d1[j]-d1[i]排乙個序,然後前n2

個騎士去j,後n2

個騎士去i。

#include

#include

#include

#include

#include

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

using

namespace

std;

const

int maxn=407;

int i,j,k,l,t,n,m,ans,r,c,d,p,o,z;

int x[maxn],y[maxn];

int a[21][21][maxn],e[450][maxn];

int fang[8][2]=;

bool bz[maxn];

struct nodeb[maxn];

bool cmp(node x,node y)

void dfs(int x,int y,int z)

}int main()

memset(a,127,sizeof(a));

fo(i,1,n)

fo(i,1,r)fo(j,1,c)fo(k,1,n)e[de(i,j)][k]=a[i][j][k];

z=r*c;

ans=0x7fffffff;

fo(i,1,z)

}printf("%d\n",ans);

}

概率 亞瑟王

題目描述 小 k 不慎被 ll 邪教 了,程度深到他甚至想要從亞瑟王邪教中脫坑。他決定,在脫坑之前,最後再來打一盤亞瑟王。既然是最後一戰,就一定要打得漂亮。眾所周知,亞瑟王是乙個看臉的遊戲,技能的發動都是看概率的。作為乙個非洲人,同時作為乙個前 oier,小 k 自然是希望最大化造成傷害的期望值。但...

NOIP2016A組模擬7 13 亞瑟王之宮

我們定義di sx,y x1,y2表示 x y 到 x 1,y1 的距離。這個用spfa求。接著,列舉兩個集合點 x y x1,y1 得出這兩個集合點到騎士的距離,放入di s1和dis 2 然後考慮貪心,假設全選di s1,和為su m 把di s2 d is1 從小到大排個序,把前n2 的值加到...

APIO2016 煙火表演

1.x l f x f x w 2.l x l w f x f l w x l 3.l w x r w f x f l 4.r w x f x f l x r w 意思是當前節點考慮到父親的那條邊權為w的邊對於不同x取值的轉移,l,r 表示最小代價的左右端點,而因為在葉子節點初始化只有乙個點 實際上...