JZOJ 2679. 跨时代
题目
Description
所以小G作为铁杆歌迷,也计划带着小Y去看周杰伦的演唱会。 演唱会当然要圈出一个空地,然后才能布置道具。 演唱会的第一站,公司临时跟当地的消防局借了n个栏杆,打算用这n个栏杆围出一个矩形。而麻烦的是,这些栏杆有长有短,这就给围场地带来了一些难度。 所以公司聘请你来写一个程序,计算用这n个栏杆做多围出面积多大的矩形。
(注:必须要刚好围成一个矩形,即不能出现多余的边长,且不能切断栏杆,但所给栏杆不一定要全部用上)
Input
第二行n个正整数,表示每根栏杆的长度li。
Output
Sample Input
4 1 1 1 1
Sample Output
1
Data Constraint
Hint
分析
- 数据这么小,应该是个状压
- 然后dfs
- 我们只用先处理出集合是否能构成长宽
代码
1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 int f[2000],g[1<<17],t[20],n; 5 void dp(int sum,int x) 6 { 7 if (sum&1) return; 8 memset(f,0,sizeof(f)),f[0]=1; 9 for (int i=0;i<n;i++) if (x&1<<i) for (int j=sum;j>=t[i];j--) if (f[j-t[i]]) f[j]=1; 10 if (f[sum>>1]) g[x]=1; 11 } 12 int ans; 13 void dfs(int k,int x1,int sum1,int x2,int sum2) 14 { 15 if (k==n) 16 { 17 if (g[x1]&&g[x2]) ans=max(ans,sum1*sum2/4); 18 return; 19 } 20 dfs(k+1,x1,sum1,x2,sum2),dfs(k+1,x1+(1<<k),sum1+t[k],x2,sum2),dfs(k+1,x1,sum1,x2+(1<<k),sum2+t[k]); 21 } 22 int main () 23 { 24 cin>>n; 25 for (int i=0;i<n;i++) 26 cin>>t[i]; 27 int sum=0; 28 for (int i=1;i<=(1<<n)-1;i++) 29 { 30 sum=0; 31 for (int j=0;j<n;j++) if (i&1<<j) sum+=t[j]; 32 dp(sum,i); 33 } 34 dfs(0,0,0,0,0); 35 if (ans) 36 cout<<ans; 37 else 38 cout<<"No Solution"; 39 }
转载于:https://www.cnblogs.com/zjzjzj/p/11147210.html
JZOJ 2679. 跨时代相关推荐
- [状压dp][dfs] Jzoj P2679 跨时代
Description 钟逆时针而绕,恶物狰狞的倾巢,我谦卑安静地于城堡下的晚祷,压抑远古流窜的蛮荒暗号,而管风琴键高傲的说,那只是在徒劳.我的乐器在环绕,时代无法淘汰我霸气的皇朝. 你无法预言,因为 ...
- 2019.07.06【NOIP提高组】模拟 A 组总结
题目 [jzoj 2679] 跨时代 {暴力状压+背包} [luogu 2579] [ZJOI2005]沼泽鳄鱼 {矩阵乘法} [jzoj 1214] [luogu 4130] [NOI2007]项链 ...
- JZOJ 5461 购物 —— 贪心
题目:https://jzoj.net/senior/#main/show/5461 贪心,原来想了个思路,优先选优惠价最小的 K 个,然后其他按原价排序遍历: 如果当前物品没选过,原价选上,如果选过 ...
- JEECG 3.7跨时代重构精华版发布,企业级JAVA快速开发平台
为什么80%的码农都做不了架构师?>>> JEECG 3.7 跨时代重构精华版发布,企业级J2EE快速开发平台 -------------------------------- ...
- JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫
Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...
- [jzoj NOIP2018模拟 11.01]
很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...
- 【DP】小学生语文题(jzoj 5102)
正题 jzoj 5102 题目大意 给你两个串A,B,字母个数相等,可以把B的一个字符移到前面某个位置,问你最少移多少次可以使A,B相等 解题思路 设fi,jf_{i,j}fi,j为A匹配了i-n, ...
- 【二分】防具布置/秦腾与教学评估(ybtoj 二分-1-2/jzoj 1253/luogu 4403)
正题 ybtoj 二分-1-2 jzoj 1253 luogu 4403 题目大意 给出n组数:si,ei,dis_i,e_i,d_isi,ei,di 对于每组数据,表示在sis_isi加1, ...
- 【归并排序】奶牛的图片(jzoj 1812)
奶牛的图片 jzoj 1812 题目大意 给你一个序列,你可以交换相邻的两个数 让你用最少的交换次数来使得这个序列变成形如a+1,a+2...n,1,2...a−1,aa+1,a+2...n,1,2. ...
最新文章
- qt 对话框位置如何确定_在图片上加字,如何确定该用什么字体、字体的颜色和放置的位置?...
- git分支操作、分支合并冲突解决
- C# 文件操作详解(一)---------File类
- 深入浅出VC++串口编程--基本概念
- [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
- Sqlite数据库的加密
- 数据结构——课程设计
- todos app简单编写(web)
- 【校招VIP 前端】电影详情模块的开发文档设计实战
- 微信热修复框架Tinker集成和使用,爬了很多坑后。带你成功跑通项目!
- 2016年上半年信息系统监理师考试感想
- K8s 多节点部署流程
- 开源的免费听音乐程序
- iText7高级教程之html2pdf——6.在pdfHTML中使用字体
- matlab kmo检验,RPCL(Rival Penalized Competitive Learning)在matlab下的实现
- 传奇人物《周兴和》书连载23 劳燕分飞离故里
- 云效部署应用失败问题排查
- linux mysql编译参数,Mysql 编译参数详解
- Legendre多项式
- MVC框架实现分页功能