2.3 Day0
来到了长沙。
2.4~2.7
Day1~Day4
各种讲课,各种掉线。我们还是说饭吧,不是说好了应该很辣?为什么我的唯一感觉是很甜???
2.8
Day5
考试日
第一题看上去就暴力分十足,先写了n^2的28分,然后16分的直接求树上直径,然后当时sb的满脑子都是点分治于是写了点分治求树上最长链qaq。还对拍了一下美滋滋。以为拿到44分过去了将近一个半小时赶紧去看T2。
第二题,n好小,无向图欧拉回路,怎么判定来着,满脑子都是要不跑个网络流验证下吧,脑残至极。还好慢慢的想起来联通且度均为0为存在欧拉回路。然后就敲暴力枚举试试大样例嘛!咦,不对诶???开始了怀疑人生的调试qaq调啊调,调到外婆家,旁边大哥开始吃东西,吃得贼香emmm【一脸黑】
时间过去了三个半小时,依旧调不出来的我【再见】,连一开始想好要写状压dp的都忘记了qaq于是转战T3。
第三题,交互题,然而看上去很可搞?好像暴力分又双叒叕很足?心想这次wc分数线怕不是要上天qaq于是乎就假贪心的写了一波,测测样例,跑的很滋磁诶,还想写写随机化,然而还不敢写随机种子gg(别问我为什么不知道自己钦定一个种子就好了),就随便重新表了一下号,假装我随机了【捂脸】。
还有一点时间,跑去接着调T2,怀疑是我误解了欧拉回路的判定方法,于是开始瞎搞,然后在最后一分钟,突然就调过了???突然就和敦敦敦心灵相通了???无比激动,然而把写状压dp的计划彻底忘在了脑后【再见】,估计就算写也写不完了吧x
此时大喇叭响起考试结束。眼见一个黄衣男子wys匆匆跑过,大声呼喊着些什么,大致是些不要结束的话语吧。我还很惊奇,这是咋的了。。
原来,是T2的题目描述有些锅。。。然后广播有些锅。。。嗯,有趣。T1的16分挂掉了,我还一直以为是非要写点分点分写挂了,结果是没*3【再见】,于是乎28+20+70=118Cu滚粗(Ag线120)【再见】
其实T2状压dp还挺简单的?gg。其实暴力分至少有44(+12)+50+70?,暴力打满也够Au了呢,然而太菜无话而说。
大家好像都各种出锅了?哎,希望下次大家都能运气再好一点吧qaq
2.9 Day6
湖南省博物馆。车上人数闹鬼是为何?原因竟是**
下午回来和wrx打通关了森林冰火人,感觉很有成就?【捂脸】
【比赛|WC2018游记】2.10 Day7
返程。
通道
#include
#include
#include
using namespace std;
#define N 100010
#define ll long long
#define inf 0x3f3f3f3f
inline ll read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x*f;
}
int n,Log[N<<1];
struct edge{
int to,next;
ll val;
};
struct Data{
int h[N],num,fa[N],dep[N],mn[N<<1][19],dfn[N],a[N<<1],dfnum,f[N],sz[N],rt,sumsz;
ll dis[N],mx,gmx,ans;
bool vis[N];
edge data[N<<1];
inline void ini(){
for(int i=1;
i2*n-1) break;
if(dep[mn[j][i-1]]y) swap(x,y);
int t=Log[y-x+1];
if(dep[mn[x][t]]>1]+1;
for(int i=0;
i<3;
++i) A[i].ini();
if(n<=3000){solve0();
return 0;
}
A[0].solve1();
return 0;
}
州区划分
#include
#include
#include
using namespace std;
#define N 2100010
#define ll long long
#define inf 0x3f3f3f3f
#define mod 998244353
inline int read(){
ll x=0,f=1;
char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-') f=-1;
ch=getchar();
}
while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
return x*f;
}
int n,m,p,h[25],num=0,bin[25],du[25],sum[N],ans=0,summ=0,w[25],inv[3000],fa[25],f[N];
bool ok[N],good[25],in[N];
struct edge{
int x,y;
}e[5000];
inline int find(int x){return x==fa[x]?x:fa[x]=find(fa[x]);
}
inline bool check(int S){
int tot=0;
for(int i=0;
i>i)&1) good[i]=1,sum[S]+=w[i],++tot;
else good[i]=0;
fa[i]=i;
}
for(int i=1;
i<=m;
++i){
if(!good[e[i].x]||!good[e[i].y]) continue;
du[e[i].x]++;
du[e[i].y]++;
int xx=find(e[i].x),yy=find(e[i].y);
if(xx!=yy) fa[xx]=yy,--tot;
}if(tot!=1) return 1;
for(int i=0;
i
即时战略
#include "rts.h"
#include
#include
#define N 300010
bool f[N];
int ed[N],now,a[N];
inline void solve(int x){
while(x!=a[now]){
int y=explore(x,a[now]);
f[y]=1;
x=y;
}
}
void play(int n, int T, int dataType) {
a[1]=1;
now=1;
for(int i=2;
i<=n;
++i){
a[i]=a[i-1]+7;
if(a[i]>n) a[i]=++now;
}now=n;
memset(f,0,sizeof(f));
memset(ed,0,sizeof(ed));
f[1]=1;
while(T--){
while(f[a[now]]) --now;
if(!now) return;
int res=explore(1,a[now]);
if(ed[res]) solve(ed[res]);
else f[res]=1,solve(res);
ed[res]=a[now];
}
}
推荐阅读
- 初生菜鸟|2019The 44th International Collegiate Programming Contest Asia Shenyang Regional Contest
- GDOI2018游记
- 2019--国赛--第一次参加线上赛的自己的整理
- 每日打卡|集训队每周一赛2020-03-13(构造+找规律+字符串+并查集)
- 集训队每周一赛2020-03-22(思维+概率+错排)
- 集训队每周一赛 2020-03-26(思维/构造+数学+博弈)