2018/3/26

今天T1 T2都是思路不错的题

T1 divisor 

  如果只考虑两个数之间的关系就是$$sum_{i=1}^{A}sum_{j=1}^{B}d(i*j)=sum_{(i,j)=1}^{}lfloor frac{A}{i} floorlfloor frac{B}{j} floor$$

  然后拓展到三个之间就是$$sum_{(i,j)=1,(j,k)=1,(i,k=1)}^{}lfloor frac{A}{i} floorlfloor frac{B}{j} floorlfloor frac{C}{k} floor$$

  然后我们就是考虑如果直接枚举i,j,k的话,很难保证他们两两互质,那我们就先保证(i,j)==1,(i,k)==1,这个在枚举的时候就可以与用预处理的gcd来判断,然后我们在用通常的套路加一个mu来保证j,k互质,然后在把mu提到前面来最终的式子就是$$sum_{i=1}^{A}lfloor frac{A}{i} floorsum_{t=1}^{C}mu(t)sum_{j=1,(i,t*j)=1}^{lfloor frac{B}{t} floor}lfloor frac{B}{t*j} floorsum_{k=1,(i,t*k)=1}^{lfloor frac{C}{t} floor}lfloor frac{C}{t*k} floor$$

  然后就可以O(n^2log) 解决了

T2 isn

  这个题其实有很显然的结论,就是如果如果我们还可以删除一个元素,那么现在的序列中一定存在逆序的数,那么我们考虑,每次构造出来一个不降的序列,我们都可以枚举最后删除了哪些数,假设我们构成的不降的长度是j,然后有k个逆序的数,那么构成这个答案的方案数就是(n-j-1)!*k,那么我们就可以构造一个DP来计算,设计f[i][j][k],表示强制以i结尾的不降序列,长度是j,有k个逆序的存在,然后这么n^4DP就可以得到72分(主要是有用的状态数很少),然后我们考,虑优化这个DP,可以观察到,每次的j是很难去掉的,因为是(n-j-1)! 然后我们就可以考虑优化掉这个k,然后我们重新定义一下两个DP数据组,就是f[i][j]表示方案数,g[i][j]表示所有方案中k的和,然后我们就成功的优化掉了k,可以拿到92分

  正解就更神了,就是先找出所有我们能构造出来的不降序列,设f[i]是长度为i的不降序列的方案数,那么构造他的全部方案(先不考虑不合法的)就是f[i]*(n-i)!,然后我们在考虑怎么减去不合法的方案数,其实就是,如果到i不合法,那么到i+1这一步就已经是不降序列了,那么我们要减去的方案数就是f[i+1]*(n-i-1)!*(i+1)。 至于f[i],就随便DP一下,然后用树状数组优化一下就好了

T3 tower

  这个题看懂了显然就是可以二分,然后我们换一个方向,就是考虑最少用多少个tower能使他们围出的面积有交,这个其实就很好弄了,就是每次选择连续的K个tower,然后半平面交一发,就好了

原文地址:https://www.cnblogs.com/FOXYY/p/8652487.html