专题:
Day5构造:
1.专题结束前做了4道
2.感悟:主要是考验思维
Day6树上问题:
1.专题结束前做了6道(T6是之前周作业的一道题)
2.感悟:树上问题的代码很难调,T3调了2h,T4调了1h
Day7数学:
1.专题结束前做了2道
2.补题2道
3.感悟:较难
模拟赛二游记:
总分:230pts 排名:21
T1:100pts
T1思路来的很快,代码依旧写的很垃圾,写了86行,调了将近1h40min左右,庆幸的是过了!
T2:20pts
这是我第二次挂T2,这是本场过的人数最多的题,T2思路来的也很快,但是在找第一个一个等于0,一个等于1的时候,前面都中间部分都等于1的忘记加上了,样例没测出来,自己出了10组也没测出来,结束前50s,突然发现自己写错了,当时很着急,头脑不清晰,没改完。赛后加了个if就过了
T3:100pts
T3没想到能过,因为怕代码有细节问题,但思路绝对是对的
核心代码:
void dfs(int u,int fa){
if(son[u]){
mi[u]=a[u];
mis[u]=a[u];
return;
}
for(int i=h[u];~i;i=ne[i]){
int v=e[i];
if(v==fa) continue;
dfs(v,u);
mis[u]=min(mis[u],mis[v]);
mi[u]=min(mi[u],min((mi[v]+a[u])/2,min(mis[v],mi[v])));
}
}
就照着样例调的,样例过了,最后也过了,当时想的非常全面,但这个又不是很像树上DP
T4:10pts
当时看着样例找规律,觉得答案只可能是1~4,然后就乱写了一些貌似不对但考场上觉得很对的if(甚至考场上觉得这是正解),然后过了样例,觉得可能能得30,但最后只有10分。
总结:写代码一定要考虑全面,细节细节再细节
补题:4/4
模拟赛三游记
总分:220pts 排名:26
T1:100pts
T1非常简单,就写了19行,然后把200以内的数据判断了一下没什么问题(为什么不是2000,因为2000没跑动)
T2:0pts
这是第三场挂掉T2的模拟赛,因为T2最开始有问题,然后先做的T3,最后回来做T2,只剩2min了,在之前的烂尾代码上,随便写了点,第二个样例过了,第一个样例都没过,还剩20s,直接交了,赛时想到了联通的要一起算,但是没想到连边,而且没时间了
T3:100pts
这是一个值得说一说的题,我最开始想到的就是最简单的想法,差分后,找到第一个不为1的,然后我去找反例,结果给自己hack掉了,然后就去找别的想发,想了2h,然后想到,假设A赢,那么最后一个一定是A,如果推回去,第一个也是A,那么就说明A赢成立,否则就是B赢,写了80行,也对了,但是浪费了很多时间,T2T4都没怎么想
T4:20pts
先写的T4后写的T2,写T4的时候已经11点多了,没时间了,就直接写的n和k小于7的暴力,写了138行,但基本都是复制的,最开始写了个set里面套结构体去重,结果还报错,一直再调,最后还剩2,3分钟的时候调出来了,然后T2就没时间了
总结:
1.时间一定要规划好,不要再把正解hack掉,去想复杂的
2.T2不要再挂了!!!
补题:4/4
