codeforces #319 DIV2 577B Modulo Sum
2015-09-14 11:32
323 查看
思路:
考虑n>=m的时候:
根据鸽巢原理
N = 6 , m = 5
R0 R1 R2 R3 R4 (Ri:i= sumi%5)
假设n个数字分别为 a b c d e f
Sum1 = (a)%m
Sum2 = (a+ b)%m
Sum3 = (a+b+c)%m
Sum4 = (a+b+c+d)%m
Sum5 = (a+b+c+d+e)%m
Sum6 = (a+b+c+d+e+f)%m
根据鸽巢原理 六个和放进五个笼子里面 必然会有一个放在相同的笼子里面,如 sum5=sum1,此时b+c+d+e必然符合条件,输出必然为YES,
考虑n<m:
状态转移方程Dp[i][j]表示加上ai以后模m的结果是否存在
循环i(1~n)、j(1~m)
Dp[i][(j+ai)%m]= 1【+ai以后结果】
Dp[i][j] = 1【不加ai结果】
总结:
代码网上有,主要考虑n和m的大小关系,这样DP过程中可节约许多空间和时间。
考虑n>=m的时候:
根据鸽巢原理
N = 6 , m = 5
R0 R1 R2 R3 R4 (Ri:i= sumi%5)
假设n个数字分别为 a b c d e f
Sum1 = (a)%m
Sum2 = (a+ b)%m
Sum3 = (a+b+c)%m
Sum4 = (a+b+c+d)%m
Sum5 = (a+b+c+d+e)%m
Sum6 = (a+b+c+d+e+f)%m
根据鸽巢原理 六个和放进五个笼子里面 必然会有一个放在相同的笼子里面,如 sum5=sum1,此时b+c+d+e必然符合条件,输出必然为YES,
考虑n<m:
状态转移方程Dp[i][j]表示加上ai以后模m的结果是否存在
循环i(1~n)、j(1~m)
Dp[i][(j+ai)%m]= 1【+ai以后结果】
Dp[i][j] = 1【不加ai结果】
总结:
代码网上有,主要考虑n和m的大小关系,这样DP过程中可节约许多空间和时间。
相关文章推荐
- codeforces #319 DIV2 577B Modulo Sum
- AWS EC2搭建tomcat服务器并托管应用
- 编绎报错,objc_msgSend too many arguments to function call,expected 0, have3
- 2.仿微信--登录界面(LoginActivity)布局界面的实现
- erl_list-打印杨辉三角
- 第三方登录开发-Facebook
- init: Id "co" respawning too fast: disabled for 5 minutes
- 值传递和引用传递
- quartz CronExpression表达式
- H264—MP4格式及在MP4文件中提取H264的SPS、PPS及码流
- erl_stack_queue-队列求迷宫最短路径
- Java集合类详解
- Spark的广播变量模块
- 推送安霸A7L实时视频至RTMP服务器(1)
- 网站集成Facebook登录教程
- PowerShell使用小技巧分享
- 15年长春网赛Alisha’s Party +优先队列
- Spring AOP 循环应用(This means that said other beans do not use the final version of the bean..)
- 语不惊人死不休(159) 最让我们渴望的反而使我们恐惧 贪婪使我恐惧
- H264编码 封装成MP4格式 视频流 RTP封包