[CF1100D]Dasha and Chess
Dasha and Chess
题解
开始看这道题时你会发现这道题数据给得非常奇怪,但可以先不管。
由于车走的都是最优策略,所以国王只有在行列上同时出现2个小兵时才能获胜。
于是乎我们需要构造出一种情形使得国王在一段长度为n的路途中同时面对n以上的小兵。
于是,我们又回到了数据上。一个很神奇的式子:。
而499正是从中点走到图的一个顶点的距离。
所以将图平均分成4部分后,当国王在中点时肯定会有三部分的和大于499,于是我们就可以先走到中点,再从中点沿最多的一快块走到端点,即可保证一定可以获得胜利。
源码
注意有人的格子不能走呀。
#include<cstdio>
#include<cstring>
#include<cmath>
#include<iostream>
#include<algorithm>
#include<vector>
#include<queue>
#include<map>
using namespace std;
typedef long long LL;
struct ming{
int x,y;
ming(){}
ming(int X,int Y){x=X;y=Y;}
}king,car[700];
int sum[5];
bool vis[1005][

浙公网安备 33010602011771号