10.30模拟赛总结

挂了不少分,自闭了

考试时间及策略

8:00 - 8:20        开题,T1多测+大数据规模,还询问一段区间?感觉二分搞不了啊。T2感觉是个贪心。T3神秘数学题。T4感觉要上数据结构,一点头绪都没有。
8:20 - 9:07        思考T1,发现看错题了,加边的顺序是固定的,而不是可以自己调整。这样来看就简单了很多。想到了可持久化并查集,但是因为询问是一段区间而不是一个点对,所以可持久化并查集好像搞不了。又想了一会儿,想到了对于一个区间而言,它们联通的最早时间实际上等于相邻两个点连接最早时间的最晚时间,所以只要能预处理出两个相邻的点什么时刻能够最早联通,然后上线段树维护区间最大值就好了。这个东西可以用kruskal重构树搞一搞。然后就做完了。
9:08 - 10:08        看T2,发现好像有40pts的做法显然,并且只要能做出符号只有 + + + × \times × 的,那么这道题就做完了。想到可以用 0 0 0 进行划分,剩下的问题就转变成了一个正整数序列,如何在 O ( 长度 ) O(长度) O(长度) 的复杂度内在两个整数之间填 + + + × \times ×,使得答案最大。想了想,感觉 1 1 1 不是太好处理,因为 乘 1 1 1 可以与后面的连接,但是可能不优, 加 1 1 1 也有可能不优。想了40min仍然不太会,写了个40pts的分段交上去了。
10:08 - 11:00       看T3,感觉有 16 16 16 pts 拿起来比较容易,剩下的分数不是太好拿。思考性质A,但是好像感觉没啥用??? 想到用费马小定理可以搞出一个不超过 1 0 7 10^7 107 的周期,但是搞出来之后还需要算出一个值在两个序列中第一次共同出现的位置。这个东西本来想写一个拓展欧几里得算出一组解。但是好像不太行,正确性无法保证。然后就GG了。写了 17 p t s 17pts 17pts 交上去了。
11:00 - 12:00       看T4,会不了一点,然后就在T1,T2,T3反复横跳,啥也没想出来。

考试结果

期望得分: 100 + 40 + 16 + 1 = 157
实际得分: 100 + 0 + 1 + 1 = 102
rk 3

赛后反思

T1:T1是一道好题,感觉并不简单,需要一步一步的转化问题,然后一层一层的去想。
T2:T2挂分了,是因为初值和边界没处理好,这种细节下次要注意。
T3:T3性质A是可以暴力求出两个序列的最小循环元,然后最小循环元的最小公倍数内的答案是一样的, 剩下 n % l c m n \% lcm n%lcm 的暴力做就好了。剩下的分不是很会。
T4: 会不了一点。

你可能感兴趣的:(c++)