场上写到 F 题,两道题没写出来。赛后补了一道题。
果然我就只配当个 Beginner.
E
可以说是 Dijkstra 的一种变体,挺有意思的。由于我们只关心最大值,那么删掉小于潜在最大值的点是有益无害的,那么从代价最小的点开始删,动态维护即可。
代码语言:javascript复制
#include <algorithm>
#include <cstdio>
#include <ctype.h>
#include <queue>
const int bufSize = 1e6;
inline char nc()
{
#ifdef DEBUG
return getchar();
#endif
static char buf[bufSize], *p1 = buf, *p2 = buf;
return p1 == p2 && (p2 = (p1 = buf) fread(buf, 1, bufSize, stdin), p1 == p2) ? EOF : *p1 ;
}
inline void read(char* s)
{
static char c;
for (; !isalpha(c); c = nc())
;
for (; isalpha(c); c = nc()) *s = c;
*s = '