這題時限開的挺大的。。。
由於時限較大,我們可以預處理出每個座標走日字步到另一座標的最短距離,o(
r3c3
) 的floyd可以解決(可以考慮用spfa,但這裡的點入隊時間較長)。
然後我們列舉兩個匯合點,我們貪心的想,乙個騎士走到第乙個座標距離如果比走到第二個的小的多,那麼我們肯定不走到第二個座標,反之就不走到第乙個座標。
於是,設第
i 個騎士到座標a的距離為ai
,到b的距離為bi
,那麼把所有騎士按照ai
−bi 排個序,取前n2
個走到a,剩下的走到b,對答案取mi
n 即可。
#include
#include
#include
#include
#include
#define fo(i,j,k) for(int i=j;i<=k;i++)
#define fd(i,j,k) for(int i=j;i>=k;i--)
#define n 21
#define ll long long
using
namespace
std;
int f[n][n][n][n];
struct nodea[n*n];
bool cmp(node x,node y)
,,,,,,,};
int main()
JZOJ 4622 亞瑟王之宮
先用sp b fa把兩兩點的最短路程是多少,這樣我們就可以列舉兩個點a,b,再以每個點到a和b的差從大到小排個序,再貪心選,複雜度 o r2c2 nlog2 n include include include include include define fo i,a,b for int i a i...
概率 亞瑟王
題目描述 小 k 不慎被 ll 邪教 了,程度深到他甚至想要從亞瑟王邪教中脫坑。他決定,在脫坑之前,最後再來打一盤亞瑟王。既然是最後一戰,就一定要打得漂亮。眾所周知,亞瑟王是乙個看臉的遊戲,技能的發動都是看概率的。作為乙個非洲人,同時作為乙個前 oier,小 k 自然是希望最大化造成傷害的期望值。但...
題解 亞瑟王的宮殿
在此之前,該題已經有很多題解,但它們大多是列舉國王周圍 5 times 5 的範圍 玄學貪心?最後計算最小距離。雖然能 ac 但其實這種做法是不嚴謹的 詳見巨佬的hack資料 然而將 5 times 5 的範圍擴大至 r times c 的範圍後,時間複雜度過大。那麼,這道題真的無解了嗎?蒟蒻的我用...