博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LightOJ 1126 Building Twin Towers(线性)
阅读量:5897 次
发布时间:2019-06-19

本文共 932 字,大约阅读时间需要 3 分钟。

题目链接:

题意:从n个数中选出一些数,将选出的数分成两个集合,使得这两个集合的数字之和相等。求和最大为多少?

思路:f[i][j]表示前i个数构成两个差为j的集合,这两个集合的数字之和( 注意是这两个集合一起的数字之和)

最大为f[i][j]。则答案就是f[n][0]/2。具体实现时用滚动数组。。。真的不好想啊,看了别人的才知道的。。

 

View Code
1 #include 
2 #include
3 #include
4 #define max(x,y) ((x)>(y)?(x):(y)) 5 #define min(x,y) ((x)<(y)?(x):(y)) 6 using namespace std; 7 8 int C,num=0; 9 int n,a[55],f[2][250005],sum;10 11 int abs(int x)12 {13 return x>0?x:-x;14 }15 16 int DP()17 {18 memset(f,-1,sizeof(f));19 int cur=1,pre=0,i,j,k,t=0;20 f[0][0]=0;21 for(i=0;i
>1;41 }42 43 44 int main()45 {46 for(scanf("%d",&C);C--;)47 {48 scanf("%d",&n);49 int i;50 sum=0;51 for(i=0;i
>=1;53 printf("Case %d: ",++num);54 int ans=DP();55 if(ans==0) puts("impossible");56 else printf("%d\n",ans);57 }58 return 0;59 }

 

 

 

 

转载地址:http://wqxsx.baihongyu.com/

你可能感兴趣的文章
Create UML diagrams online in seconds, no special tools needed.yUML
查看>>
抓屏原理
查看>>
Crash/Instance Recovery与Media Recovery的本质区别
查看>>
【组成原理】——运算器
查看>>
ASP.NET Dynamic Data Part.2(自定义动态数据网站)
查看>>
《Effective Java》读书笔记09--谨慎地覆盖clone方法
查看>>
AMF Message 及 AMF3 OBJECT 对象格式
查看>>
类对象Java设计模式之十八(中介者模式)
查看>>
Qt 写文件失败
查看>>
Gridview控件导出Excel之后图片无法显示
查看>>
FastJson
查看>>
[置顶] 小本求职了---实习岗位
查看>>
Oracle中查看所有表和字段以及表注释.字段注释
查看>>
UVA 10564 - Paths through the Hourglass (dp)
查看>>
Web工程师的工具箱 | 酷壳 - CoolShell.cn
查看>>
ASP.NET Web API自身对CORS的支持: EnableCorsAttribute特性背后的故事
查看>>
Eclipse 常用快捷键
查看>>
INDEX--索引页上存放那些数据
查看>>
INDEX--关于索引的琐碎
查看>>
sql查看所有表大小的方法
查看>>