0918CSP-S模拟测试赛后总结

14名。110分。可以算是几次大落之后的一次小小的崛起??

然而sdfz的开挂选手AK了啊……

T2重测前rank7我就高兴地像个傻子??也不看看这次T1是个什么题。

实力还是不行。一眼秒掉了简单题,接下来的时间就只剩下骗分了。

T2规律还找错了。应该拿到的分数没拿到。

cnt-(n+1)/2+1的规律是错的竟然都没有发现……

T1就是在唬人,赛时估计A掉的人大概在30个左右结果只有9个??

我的实力也就这样了。顶多看破几个sb规律题。

另外,T2的解法也并不是那么难想。只是陷入了思维定势。

而且这次考试状态啥样我自己心里清楚,只能说引以为戒。

怕是和上次一综合又是倒数。

就这样了。只看晚上能不能翻盘了。

如此,继续努力下去。

 


以后还是要在这里放题解啊。

仔细考虑了一下,写题解根本不是给别人看的。而是帮助自己回忆一道题目,一种解题方法。

教练曰:如果一道题,做过去了,不到一个月,你忘干净了,那跟你没做没什么区别。

T1 set

规律题。题目就是在唬人。由于赛时侥幸看破了于是AC。

N个数,前缀和在%N意义下只会出现N个不同取值。即0~N-1

如果出现了0,那么该点前的所有位置即为答案。

否则必定有重复。开桶记录每个值的出现位置,出现重复输出即可。

T2 read

规律题。题目唬人++。N<=500000000然而空间限制16MB。

放弃时间。定义两个变量id和sum,分别记录当前所记录的A值和A值与其他A值数量的大小关系。

具体维护操作:对于得到的每一个A值,如果当前sum=0,id=A,sum++。

否则,如果id=A,sum++,否则sum--。

如果对于一个A值,它出现过的次数大于其他值出现过的次数之和,那么这个A值一定有一部分需要舍弃。

对于这样的A值,id=A意义下的sum一定不会小于0。

所以此时id所记录的A值有可能就是那个需要削掉一部分的A值。注意,只是有可能。

所以最后再扫一遍统计这个A值的数量,输出$max(0ll,2*sum-tot-1)$即可。

(柿子含义:$tot-sum+1$是其他书的个数,id的书最多不能大于其他书的总和。于是为$sum-(tot-sum+1)$,化简为上式)

T3 Race

(二进制神仙题。题干看得我有点晕。话说昨晚考试有大哥今天上午依旧没有理解题意??)

正解0/1trie树。

构建一棵0/1trie,将每个人的能力值插入。

考虑排名为第x时的积分贡献为$(x-1)^2$如何转化。

不难发现,(x-1)^2即为x前面的x-1个人任意取出两个的所有情况。

对于一个A[i],我们设f[i]为能力值的二进制中第i+1到M-1位都和其相等且第i位不同的数的个数。

此时决定A[i]和这些数的大小关系的在于第i位的值。

所以共有$2^{M-1}$天A[i]小于这些值。

(具体大小关系仅取决于天数在二进制下这一位是0是1,在另外$2^{m-1}$天里大小关系相反)

所以可以考虑对于每个A[i],枚举f[j]、f[k],两个值代表的元素排名均在A[i]之前的情况数为$2^{m-2}$。

又因为不考虑前后顺序问题,因此再×2。

然而这样直接枚举j和k会T掉。$m^2$查询时间上撑不住。加前缀和优化即可。

posted @ 2019-09-19 11:16  hzoi_Joe  阅读(228)  评论(0编辑  收藏  举报