码迷,mamicode.com
首页 > 其他好文 > 详细

ECF R9(632E) & DP

时间:2016-04-19 10:08:52      阅读:129      评论:0      收藏:0      [点我收藏+]

标签:

Description:

  给你$n$个数可以任取$k$个(可重复取),输出所有可能的和.

  $n \leq 1000,a_i \leq 1000$

Solution:

  好神的DP,我们排序后把每个数都减去第一个,那么第一个就变成0,任意取不足k次的j次都是合法的-----多余的可以用第一个补上.不过感觉复杂度不太对啊...CF也真是快啊...

  

for(i=0;i<=1000000;i++)dp[i]=inf;
 dp[0]=0;

 for(j=0;j<=1000000;j++){
      for(i=1;i<=n;i++){
           if(j>=a[i]){
               dp[j]=min(dp[j],dp[j-a[i] ]+1);
           }
      }
 }
 int flag=1;
 for(j=0;j<=1000000;j++)
      if(dp[j]<=k){
           printf("%d ",j+t*k);
      }

 

ECF R9(632E) & DP

标签:

原文地址:http://www.cnblogs.com/YCuangWhen/p/5406805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!