国内最全IT社区平台 联系我们 | 收藏本站
华晨云阿里云优惠2
您当前位置:首页 > php开源 > 综合技术 > hiho 1044

hiho 1044

来源:程序员人生   发布时间:2015-06-12 08:07:12 阅读次数:3515次
// // main.cpp // hiho1044 // // Created by Fangpin on 15/4/28. // Copyright (c) 2015年 FangPin. All rights reserved. // #include <iostream> #include <cstdio> #include <cstring> using namespace std; int n,m,q; int dp[1005][1029],a[1004]; int cnt(int x){ int ans=0; while(x){ if(x&1) ++ans; x>>=1; } return ans; } int main(int argc, const char * argv[]) { // insert code here... // std::cout << "Hello, World! "; // int n,m,q; scanf("%d%d%d",&n,&m,&q); memset(dp,0,sizeof(dp)); for(int i=1;i<=n;++i) scanf("%d",&a[i]); for(int i=1;i<=n;++i){ for(int j=0;j<(1<<m);++j){ int s0=(j<<1)&((1<<m)⑴); int s1=(j<<1|1)&((1<<m)⑴); dp[i][s0]=max(dp[i][s0],dp[i⑴][j]); if(cnt(s1)<=q) dp[i][s1]=max(dp[i][s1],dp[i⑴][j]+a[i]); } } int ans=0; for(int i=0;i<(1<<m);++i) ans=max(ans,dp[n][i]); printf("%d ",ans); return 0; }

生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠
程序员人生
------分隔线----------------------------
分享到:
------分隔线----------------------------
关闭
程序员人生