luogu P2423 双塔
题目描述
2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难。为了纪念“911”事件,Mr. F决定自己用水晶来搭建一座双塔。Mr. F有N块水晶,每块水晶有一个高度,他想用这N块水晶搭建两座有同样高度的塔,使他们成为一座双塔,Mr. F可以从这N块水晶中任取M(1≤M≤N)块来搭建。但是他不知道能否使两座塔有同样的高度,也不知道如果能搭建成一座双塔,这座双塔的最大高度是多少。所以他来请你帮忙。
给定水晶的数量N(1≤N≤100)和每块水晶的高度Hi(N块水晶高度的总和不超过2000),你的任务是判断Mr. F能否用这些水晶搭建成一座双塔(两座塔有同样的高度),如果能,则输出所能搭建的双塔的最大高度,否则输出“Impossible”。
输入输出格式
输入格式:
输入的第一行为一个数N,表示水晶的数量。第二行为N个数,第i个数表示第i个水晶的高度。
输出格式:
输出仅包含一行,如果能搭成一座双塔,则输出双塔的最大高度,否则输出一个字符串“Impossible”。
输入输出样例
5 1 3 4 5 2
7
双倍经验
#include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int maxn = 107; int n,thi[maxn]; inline int read() {int x=0, f=1;char c=getchar() ;while(c<'0'||c>'9'){ if(c=='-')f=-1;c=getchar();};while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();return x*f; } int f[maxn][2007]; int main() {n=read();int sum=0;memset(f,-2,sizeof(f));f[0][0]=0;for(int i=1;i<=n;++i) thi[i]=read(),sum+=thi[i];for(int i=1;i<=n;++i) {for(int j=0;j<=sum;j++) {f[i][j]=max(f[i][j],f[i-1][j]);//不放f[i][j+thi[i]]=max(f[i][j+thi[i]],f[i-1][j]+thi[i]);//放在高的上if(thi[i]<=j) f[i][j-thi[i]]=max(f[i][j-thi[i]],f[i-1][j]);//矮的还矮else f[i][thi[i]-j]=max(f[i][thi[i]-j],f[i-1][j]+thi[i]-j);//矮的变高 }}if(!f[n][0])puts("Impossible");else printf("%d\n",f[n][0]);return 0; }
转载于:https://www.cnblogs.com/sssy/p/7988579.html
luogu P2423 双塔相关推荐
- 洛谷 P2423 双塔
洛谷 P2423 双塔 题目 题目描述 2001年9月11日,一场突发的灾难将纽约世界贸易中心大厦夷为平地,Mr. F曾亲眼目睹了这次灾难.为了纪念"911"事件,Mr. F决定自 ...
- 解题报告:luogu P2423 [HEOI2012]朋友圈【最大团转最大点独立集(匈牙利算法+时间戳优化)】
图的最大团:"任意两点之间都有一条边相连"的子图被称为无向图的团,点数最多的团为图的最大团 朋友圈中任意两个点之间都有关系,既是图中的团. 答案就是图中的最大团. 我们如果把B国的 ...
- luogu P2423 [HEOI2012]朋友圈 (最大团)
在很久很久以前,曾经有两个国家和睦相处,无忧无虑的生活着. 一年一度的评比大会开始了,作为和平的两国,一个朋友圈数量最多的永远都是最值得他人的尊敬,所以现在就是需要你求朋友圈的最大数目.两个国家看成是 ...
- 清北学堂Day 3 游记
爆炸!!!!! 上午:emmmm我今天要争取进前40(flag 1) 拿到试题,瞬间感受到了zhx长者的恶意......两道方案数题,我要凉了啊. T1:这是道傻逼题,我20分钟就能切掉(flag2) ...
- 【洛谷P2423】双塔
题目链接:https://www.luogu.org/problem/show?pid=2423 题解: 没有一下子想到正确的状态定义,然后就开始各种YY,拿背包乱搞只错了一个点hhh 正解显然是DP ...
- luogu P1549 棋盘问题(2) 题解
luogu P1549 棋盘问题(2) 题解 题目描述 在\(N * N\)的棋盘上\((1≤N≤10)\),填入\(1,2,-,N^2\)共\(N^2\)个数,使得任意两个相邻的数之和为素数. 例如 ...
- [Luogu] 选学霸
https://www.luogu.org/problemnew/show/P2170 并查集+DP #include <iostream> #include <cstring> ...
- Luogu 2470 [SCOI2007]压缩
和Luogu 4302 [SCOI2003]字符串折叠 差不多的想法,区间dp 为了计算方便,我们可以假设区间[l, r]的前面放了一个M,设$f_{i, j, 0/1}$表示区间$[i, j]$中是 ...
- 【Luogu】P1613 跑路
[Luogu]P1613 跑路 一.题目 题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资 ...
最新文章
- 四种排序(冒泡、插入、递归、选择)
- Java13-day04【Integer、int和String的相转、自动装箱和拆箱、Date、SimpleDateFormat、Calendar、异常、try...catch、throws】
- 显示mnist手写数字
- 安装CentOS6.8并配置网络图文解说亲测全过程
- 求链表的倒数第m个元素
- Beta冲刺——星期三
- php分享十三:mysql事物
- lock.lock()使用,与synchronized对比
- Data Binding 实践
- python怎么排名次_2019:python第3次获得TIOBE最佳年度语言排名
- python定期自动运行_令人惊叹的8个Python新手工具
- 相爱相杀:移动联通IT支撑回忆录(九)
- css3中transform:translateY之后文字模糊的原因
- matlab 绘图颜色参考 linspace
- 心随风飞扬,仍存一线牵~
- HDFS 磁盘写及balance
- 查看BMP格式图片的十六进制代码
- 上证50基金有哪些_上证50指数基金,最全选购攻略
- 通过pc算法和随机游走来做根因定位,CloudRanger论文解读
- Kaggle 2022 年鉴发布!涵盖竞赛趋势 57场比赛方案汇总!
热门文章
- 微信小程序激励式视频广告组件使用
- 【案例实战】分布式应用下登录检验解决方案(JWT)
- Vulnhub靶机:HACKER KID_ 1.0.1
- Vue 浏览器本地存储
- 人工智能成天桥区智能制造突破口
- 巴巴腾小腾智能对话机器人_我的“心”始终陪伴着你——巴巴腾陪护机器人“小腾”...
- 锁定计算机 最新的,锁定计算机的方法
- 每个程序员都应该知道的 CPU 知识:NUMA
- Java开发西安地区最近面试汇总(三)
- 【微信小程序】wampserver之路启航