2018年3月25日训练日记

时间:2022-01-19 14:01:33

这次训练日记是3月22日到25日。

资料几乎没看,大部分时间都用来做题和写作业。。。

由于马上就要收9000字社会实践报告,于是本周末先抓紧时间写完。

总结一下昨天下午的 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 

A(跳台阶):枚举一下前几项,不难发现答案是2的(n-1)次方

B(跳一跳,很简单的):不会,看大佬代码好像是预处理,倍增加二分

C(平分游戏):第一反应网络流,可惜n达到1e6,网络流明显gg,于是正解为贪心(然而还是交了各种错误)。显然相互影响的同学最终会形成环,且环与环之间没有影响。因此处理每个环的答案再加起来就行了。设某个环有num个人,分别拥有c1,c2,...,cnum个硬币,第一个人从最后一个人那里收到了x枚硬币,那么时间就是abs(x+c1)+abs(x+c1+c2)+...

设b1=c1,b2=c1+c2,...,计算b数组的中位数便能得出最佳的x值。

平均数不为整数肯定不能交换,注意k=n也不能交换。

不过我看了大神们的代码之后,还是有地方不理解。为什么一定要找k和n的最大公因数?这个数就是环的数量?

D(psd面试):显然是dp啊。。。注意字母大小写。字符串反过来再求LCS。最后用len减

E(回旋星空):先处理一下任意两点间的距离,再枚举转折点,用mp存到转折点的距离数出现了几次,再加一下排列数就行。

F(等式):我是直接用随机数搞了n*n的质因子个数/2+1。。。然后就过了。正解是将n分解质因子,n*n对应的质因子和n相同且个数翻倍。即得到n*n的质因子个数。

G(旋转矩阵):其实只要求右旋一次就可以了,左旋为右旋3次。注意-|的旋转即可。

H(哲哲的疑惑):数学题。。。答案是(n-m)的i次方*组合数(n,m),i为用了i种颜色,注意mod

I(填空题):输出ac

J(强迫症序列):之前在hihocoder上做过一道“共同富裕”,和这个几乎一模一样,稍加修改即可。就是排一下序然后把差加起来即可。

K(密码):在纸上画一下不难发现n=1时直接输出字符串,>1时用两个变量f,g刚开始f=2*(n-1),g=0。i从0开始到n-1,每一行i+f和i+g交替进行,然后f-=2,g+=2;经过的点直接输出就行。

L(用来作弊的药水):典型的快速幂,一下就出来了。注意不mod会爆炸。

暂时就是这些。。先去补作业了。。。