limn2o4个人训练实录

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lingzidong/article/details/82156348

一些比较好的题会单独写个题解

1.2015 ACM/ICPC Asia Regional Shenyang Online

这场有点难啊,什么矩阵循环群也是第一次听说,这次solo再次暴露出了我数学推导的弱的问题……
进度【3/13】
HDU 5455 Fang Fang
这道题就是纯模拟,但是注意要判断有没有多余的字符……

HDU 5461 Largest Point
这道题是简单贪心,维护两个 vector,分别存 a*t1^2 和 b*t2,然后就选两个最大值,如果最大值就都是一个数就取次大值比较一下。

HDU 5459 Jesus Is Here
大概想了一下,首先我们知道答案dp[i] = dp[i-1] + dp[i-2] + 一堆新生成的数,我们分别维护计算出这个数的其他值就可以了,其他的值是可以递推求的:
len[i] 第i个串的长度,明显的斐波那契
cnt[i] 第i个串里面有几个c ,明显的斐波那契
dist[i] 第i个串里面所有c到串结尾的距离的和,dist[i] = dist[i-1] + dist[i -2] + cnt[i-2]*len[i-2],相当于i-2串的每个c都要往后续len[i-1]的长度
所以最后相当于是先把i-1串到i-2串的距离加上 : cnt[i-1] * dist[i-2],然后就是用上面的式子推一下:cnt[i-1] * dist[i-2]+ cnt[i-2]* (len[i-1]* cnt[i-1] - dist[i-1])
记得疯狂取模就行了

2. 2015 ACM/ICPC Asia Regional Shanghai Online

进度[3/11] 似乎被3诅咒了……
HDU 5477 A Sweet Journey
我直接写了个二分,但是感觉是直接顺着扫一遍就行了。
二分最后的答案,判断能不能走过去,注意区间和点的转换
HDU 5475 An easy problem
看起来是easy的problem……一开始直接写了个java大数上去,没想到线段树1A了
首先我们把数组初始化成1(不能用memset),对于乘的操作,就直接在对应查询的位置上添加这个数,除法就是把对应位置上的数变成1,用通过线段树维护一个区间积+取模。
HDU 5478 Can you find it
日常不会推式子系列……
我们先把原来的式子放到这里 a k 1 n + b 1 + b k 2 n k 2 + 1 = 0 ( m o d C )
观察右边,似乎当n等于1的时候: a k 1 + b 1 + b = 0 ( m o d C )
n等于2的时候 a k 1 2 + b 1 + b k 2 + 1 = 0 ( m o d C )
然后我们只要顺着遍历一下a,通过n等于1的式子反算出b,然后带入n等于2的式子验证一下。
至于证明可以简单灯上式进行合并,相信聪明的读者不难证明

3. 2018 USP-ICMC

之前还做了一场,但是制作了水题,这次稍微好一点
I I will go
把这个翻译成“我一定来”,先对关系求出dfs序,注意要取相反的关系进行判断,要仔细读题呀。
然后发现剩下就是三道水题,难受

猜你喜欢

转载自blog.csdn.net/lingzidong/article/details/82156348