题目

Description

钟逆时针而绕,恶物狰狞的倾巢,我谦卑安静地于城堡下的晚祷,压抑远古流窜的蛮荒暗号,而管风琴键高傲的说,那只是在徒劳。我的乐器在环绕,时代无法淘汰我霸气的皇朝。 你无法预言,因为我越险,翅越艳;没有句点,跨时代蔓延,翼朝天。 月下浮雕,魔鬼的浅笑,狼迎风嚎,蝠翔似黑潮,用孤独去调尊严的色调。我跨越过世代,如兽般的姿态,琴声唤起沉睡的血脉。不需要被崇拜,如兽般的悲哀,只为永恒的乐曲存在,醒过来。 去年万众瞩目的《跨时代》专辑发行之后,周杰伦又开始了他的世界巡回演唱会《超时代》。有人说过:如果你喜欢一个人,那你一定要去看一场他的演唱会;电视机前的1m距离和在演唱会现场哪怕100m的距离,两种感觉都是截然不同的。
       所以小G作为铁杆歌迷,也计划带着小Y去看周杰伦的演唱会。 演唱会当然要圈出一个空地,然后才能布置道具。 演唱会的第一站,公司临时跟当地的消防局借了n个栏杆,打算用这n个栏杆围出一个矩形。而麻烦的是,这些栏杆有长有短,这就给围场地带来了一些难度。 所以公司聘请你来写一个程序,计算用这n个栏杆做多围出面积多大的矩形。
(注:必须要刚好围成一个矩形,即不能出现多余的边长,且不能切断栏杆,但所给栏杆不一定要全部用上)

Input

第一行一个正整数n,表示栏杆的数量。
第二行n个正整数,表示每根栏杆的长度li。

Output

仅一行一个正整数,表示用给出的栏杆围成最大矩形的面积,如果不能围成矩形,输出”No Solution”(不包含引号)。

Sample Input

4
1 1 1 1

Sample Output

1

Data Constraint

Hint

对于30%的数据,1<=n<=10。 对于100%的数据,1<=n<=16,1<=li<=15。

分析

  • 数据这么小,应该是个状压
  • 然后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. 跨时代相关推荐

  1. [状压dp][dfs] Jzoj P2679 跨时代

    Description 钟逆时针而绕,恶物狰狞的倾巢,我谦卑安静地于城堡下的晚祷,压抑远古流窜的蛮荒暗号,而管风琴键高傲的说,那只是在徒劳.我的乐器在环绕,时代无法淘汰我霸气的皇朝. 你无法预言,因为 ...

  2. 2019.07.06【NOIP提高组】模拟 A 组总结

    题目 [jzoj 2679] 跨时代 {暴力状压+背包} [luogu 2579] [ZJOI2005]沼泽鳄鱼 {矩阵乘法} [jzoj 1214] [luogu 4130] [NOI2007]项链 ...

  3. JZOJ 5461 购物 —— 贪心

    题目:https://jzoj.net/senior/#main/show/5461 贪心,原来想了个思路,优先选优惠价最小的 K 个,然后其他按原价排序遍历: 如果当前物品没选过,原价选上,如果选过 ...

  4. JEECG 3.7跨时代重构精华版发布,企业级JAVA快速开发平台

    为什么80%的码农都做不了架构师?>>>    JEECG 3.7 跨时代重构精华版发布,企业级J2EE快速开发平台 -------------------------------- ...

  5. JZOJ 5372. 【NOIP2017提高A组模拟9.17】猫

    Description 信息组最近猫成灾了!隔壁物理组也拿猫没办法.信息组组长只好去请神刀手来帮他们消灭猫.信息组现在共有n 只猫(n 为正整数),编号为1 到n,站成了一个环,第i 只猫的左边是第i ...

  6. [jzoj NOIP2018模拟 11.01]

    很庆幸打了这场模拟赛,因为这一场爆零 好像上次纪中的某场比赛我也出现了同样的问题,光是计算时间复杂度而忘记了空间的限制.想必是比上次惨的,考场上就写了两题而这两题都因为MLE爆零了.而且我T2还码了7 ...

  7. 【DP】小学生语文题(jzoj 5102)

    正题 jzoj 5102 题目大意 给你两个串A,B,字母个数相等,可以把B的一个字符移到前面某个位置,问你最少移多少次可以使A,B相等 解题思路 设fi,jf_{i,j}fi,j​为A匹配了i-n, ...

  8. 【二分】防具布置/秦腾与教学评估(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, ...

  9. 【归并排序】奶牛的图片(jzoj 1812)

    奶牛的图片 jzoj 1812 题目大意 给你一个序列,你可以交换相邻的两个数 让你用最少的交换次数来使得这个序列变成形如a+1,a+2...n,1,2...a−1,aa+1,a+2...n,1,2. ...

最新文章

  1. qt 对话框位置如何确定_在图片上加字,如何确定该用什么字体、字体的颜色和放置的位置?...
  2. git分支操作、分支合并冲突解决
  3. C# 文件操作详解(一)---------File类
  4. 深入浅出VC++串口编程--基本概念
  5. [连载]《C#通讯(串口和网络)框架的设计与实现》-1.通讯框架介绍
  6. Sqlite数据库的加密
  7. 数据结构——课程设计
  8. todos app简单编写(web)
  9. 【校招VIP 前端】电影详情模块的开发文档设计实战
  10. 微信热修复框架Tinker集成和使用,爬了很多坑后。带你成功跑通项目!
  11. 2016年上半年信息系统监理师考试感想
  12. K8s 多节点部署流程
  13. 开源的免费听音乐程序
  14. iText7高级教程之html2pdf——6.在pdfHTML中使用字体
  15. matlab kmo检验,RPCL(Rival Penalized Competitive Learning)在matlab下的实现
  16. 传奇人物《周兴和》书连载23 劳燕分飞离故里
  17. 云效部署应用失败问题排查
  18. linux mysql编译参数,Mysql 编译参数详解
  19. Legendre多项式
  20. MVC框架实现分页功能

热门文章

  1. Java 这一年都经历了什么?
  2. ​科技“新冷战”核心技术突破!道翰天琼认知智能机器人平台API接口大脑为您揭秘
  3. 快讯:我国高中数学课本即将发生全面变革,微积分下放高中不是梦!
  4. 如何与更优秀的人做朋友
  5. QML如何实现背景透明
  6. Office 365最新2022新版本
  7. watir是如何定位元素的
  8. java gc 有钱人_小猿圈java之GC垃圾回收机制
  9. Macbook 466 光驱改造为ssd固态硬盘总结
  10. 【java初学】static关键字和接口