1110 模拟赛总结

赛时安排

7:40~7:50 读题
8:00~8:40 想了想决定先写题面简洁的T3。手推了一下样例,发现将它按从大到小排序之后,只需要将第 i i i位到 i + a [ i ] − 1 i+a[i]-1 i+a[i]1位分为一组贪心就能保证最优,然后到后面出现 i + a [ i ] − 1 > n i+a[i]-1>n i+a[i]1>n的情况的话,就把它插到前面队伍中人数最少的里面就可以了。
9:00~10:30 看了看T2,推了推样例,发现求得答案只与前面的长为 m m m的字符串有关,然后只需要找到其中前缀和后缀相同并且相连或者重叠,如果不相连或重叠或者前后缀不相同的话,答案就是 ( n − 1 ) ∗ m (n-1)*m (n1)m,然后过了样例,但交上去之后评测只有50分,第二个大样例挂了…然后先去写下一题。
10:30~11:30 看了看前两个操作,想到了用bitset来做,将所有数字按出现的顺序放在二进制位置上,然后集合B存下来这些数之后,如果是并的操作,就将 A ∣ B A|B AB,如果是交,就KaTeX parse error: Expected 'EOF', got '&' at position 2: A&̲B。接着就开始查错…手推了一下到错误的地方,然后打了输出了一下那个位置B上存有的数字…发现比样例少了…找了好半天没找出来哪里错…自闭了。
11:30~12:00 T4还没动…想了想也快没时间了,还是去调T2…然后跑了一下大样例,发现 n n n m m m没有开 l o n g l o n g long long longlong,然后开了之后发现答案还是有问题…想不出来哪里错了…
12:00~12:10 交题。

赛后总结

T1

当时考场上一直挂掉的原因…我用 b ∣ = ( 1 < < p o s [ i ] ) b|=(1<<pos[i]) b=(1<<pos[i])时,没有想到 1 < < p o s [ i ] 1<<pos[i] 1<<pos[i]的大小,然后导致后面这个东西的大小太大了,结果就出了错。接着得知,bitset也可以和vector一样直接修改下标。虽然样例过了…但是map的常数太大,然后全T了…接着是正解。它不需要任何数据结构…只需要加一个时间戳就可以了,如果当前位置的时间戳与取并的时间相同,就代表它能够存在A中,然后对于加减操作,就是维护一个懒标记,然后在计算的时候统计这个影响就行了。

T2

这道题的正解思路是找循环节,kmp处理就好了…当时想的方向出了亿点点的小问题…

T3

这道题当时写的贪心,被题目的额外数据给卡了十分,看了之后想了想,贪心能水这么多分确实也挺奇迹。然后看正解,这道题可以看出是要从局部最优解转化为整体最优解,因此就可以想到DP的思路了。

T4

To be continued…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值