摘要: 给出n,m。从n个数中选几个相乘,再%m。能取到的最大值和取法。 用dp[i][j]记录前i行能否取到j这个结果。那么dp[i][j]至少等于dp[i-1][j],还能等于所有的dp[i-1][j]*arr[i]%m。要输出方案,那么如果在记录的过程中,j*arr[i]%m在i-1没出现说明是新得出 阅读全文
posted @ 2018-10-13 21:15 degvx 阅读(158) 评论(0) 推荐(0)
摘要: 首先,证明结果一定是取某些整行,再加上一个多余的一行的前几个。 假如: x1<=x2<=x3<=x4<=x5 y1<=y2<=y3<=y4<=y5 取6个,最优解是取x3,x4,x5,y3,y4,y5。那么: (1)如果y3>=x2,那么y3+y4>=x1+x2。就取掉y3,y4取x1,x2更优。 阅读全文
posted @ 2018-10-13 13:53 degvx 阅读(240) 评论(0) 推荐(0)
摘要: Factorial 题意:能否找到一个数,它的阶乘后面0的个数为n? 数越大,阶乘后的0越多。用二分找。对于一个数x,它的阶乘,将小于等于它的数分解质因数。其中2的个数一定大于5的个数。因此计5的个数就是结果末尾0的个数。比它小的数有x/5个5的倍数,x/25个25的倍数。那么5的数量就是x/5+x 阅读全文
posted @ 2018-10-13 13:22 degvx 阅读(214) 评论(0) 推荐(0)