8.3总结T1prime T2Isfind T3Divide T4直径

2020.08.03【NOIP提高组】模拟

赛时

先看第一题,一看prime题目还有点激动,以为是道有点意思的题目,结果只是让一堆数,互质的分组然后问最小分的组数以及最小的最大组的大小,一看感觉是dp,再看n<=15,逆向思维猜测出题人就是想让暴力,旁边的yyh大佬一看到就上手感觉很不妙。但是自己暴力水准低所以先放着。
看到T2,给个模式串和一堆匹配串询问是否为子序列,一看还以为AC自动机?结果发现是子序列不是匹配,哦哦,然后看看数据显然的淼法是肯定不行的,然后想着快速求答案,一看匹配串总和才400万,想到字典树,然后考虑匹配的问题,这时想到我们对于每个匹配串,若能找到目前模式串匹配的位置的下一个当前匹配串的字母的位置,那么只需要匹配串长度的时间就能处理每次询问。然后就如此思路,对于模式串的每一位处理它下一个a到z的位置,然后就直接询问就行了,也不需要字典树了。然后拿着暴力对拍大概几百组吧,看没什么问题就测了一下极端数据,发现跑2秒!!!然后找原因发现读入就炸裂,然后考虑各种方式改但是不行,就想算了交上去应该不会这么慢,oj的评测机还是比较lj的。
随后瞄t3,给个a数组以及p,询问当i<j<k时a[i]*a[j]*a[k]模p为0的方案,一开始想确定2个知道第三个,然后发现不会,然后30分滚粗。
最后T4,问一个树上经过所有直径的边的个数,然后这个东东有点思路。大胆猜测所有直径都有一个点是相同的(错的吧?)然后找到最远的点,对他找直径(bfs),然后把所有直径的最后一个点记录下来,对于每个点记录它上一个点。然后我们对于每个点向前找,并把每个经过的点++,然后统计有几个点是等于直径的个数的,然后点的个数-1就是边的个数,然后没有拍就交了,觉得应该没问题。
这时自信满满,230到手了。然后看T1,然后就猜测,知道组数后,最大的组的个数最优肯定是所以组的个数平均,然后暴力找每个组,之后贪(shui)心(fa)输出总数除以组数(有余+1),对着yyh大佬说“说不定有40分”
然后预估:
(0~100)+100+30+100=230 ~330
香死了

结束后

实际:
50+100+30+8=188 (12名)
一看不在前面感觉很慌,然后发现T1水法50分,开森,然后发现T4 8分???再一看yyh大佬第9名,这时觉得没什么他却惊呼T2,然后我一看T2好多人都a了,包括yyh,然后他说他是暴力。!!!这**数据,没点p用。
然后看T4咋错了,结果发现就前4个数据点,拿了第一个询问的部分分(20%)一看发现前四个数据答案都多了1?不知道为什么但还是果断水到40,结果从第五个数据wa了,一看没开longlong见祖先,然后想着马上就AC了!结果时间炸裂,一看由于直径太多了(10000+)所以爆了。看题解发现什么都没有,一直到下午讲题之前都在发呆。。。。。。

讨论

T1:n<15显然的暴力,也没什么好讲的,上去的人随便bala几下就下来了,说是枚举一下组的最大值的个数,然后还是暴力嘛(这时还是没什么思路)。
T2:暴力,烦人(唯一有点竞争的题竟然如此水,当然还是有着巨佬打什么子序列自动机,听都没听过)
T3:10^6的因数最多256个,然后枚举之后累计答案+去重就行了。
T4:对于一条直径(链),左右判断是否可取区间大小就行了,额不会码怎么办?

ak

同级第二个ak的,所以?

论水法的重要性!!!

先秒了t4,这是因为?
省选T1是我们的T4,看lzc的总结发现一种水法,但是是错的,哎不管了,能a就行。思路就是随便一条直径,然后将路径的边-1,然后再做一遍直径,第二个询问就是第一遍直径答案与第二遍直径的差值-1(母鸡是为什么,反正要减就对了(而且这样是过不了样例的))。
然后是T3,随便搞搞这样就行了。
然后在打T3时,听别人说T1有水法!!!yyh就跟我说,你的最大值没错,是组数求错了!!!一脸震惊!!!这时去看了看,还真是!然后水就完事了。

猜你喜欢

转载自blog.csdn.net/jay_zai/article/details/107770802
T4
今日推荐