首页 > 其他分享 >P1504积木堡垒(简略)

P1504积木堡垒(简略)

时间:2024-01-25 19:11:53浏览次数:18  
标签:积木 int sum 简略 高度 P1504 maxn ans dp

用DP枚举出每一个的能到达的高度,进行 \(n\) 次背包即可,\(ans[ ]\) 记录高度 \(j\) 是否可行,高度 \(j\) 可行 \(n\) 次就是答案,\(j\) 从 \(maxn\) 开始枚举

//dp[i][j] 表示前i个表示高度为j的存不存在
// dp[i][j]=dp[i-1][j],dp[i][j]=dp[i-1][j-a[i]];选或者不选
//顺序的话dp[j-a[i]]里记录的其实是dp[i][j-a[i]]而逆序是它记录的是dp[i-1][j-a[i]]
#include<bits/stdc++.h>
using namespace std;
const int N=1e6+10;
int dp[N];
int a[N],ans[N];
int n,maxn;
void dp_01(int g,int sum)
{
	memset(dp,0,sizeof dp);
	dp[0]=1,a[0]=g;
	for(int i=1;i<=g;i++)
		for(int j=sum;j>=a[i];j--)
		{
			if(dp[j-a[i]]&&!dp[j]){ 
				dp[j]=1,ans[j]++;   //高度j可行
			}
		}
}
int main()
{
	cin>>n;
	for(int i=1;i<=n;i++)
	{
		int g=0,sum=0;
		while(true)
		{
			int x=0;
			cin>>x;
			if(x==-1) break;
			a[++g]=x;
			sum+=x;
		}
		maxn=max(maxn,sum);
		dp_01(g,sum);//dp
	}
	for(int i=maxn;i>=0;i--)
	{
		if(ans[i]==n) {
			cout<<i<<endl;
			return 0;
		}
	}
	cout<<"0"<<endl;
	return 0;
}

标签:积木,int,sum,简略,高度,P1504,maxn,ans,dp
From: https://www.cnblogs.com/marshuo/p/17987955

相关文章

  • 阿里云 PolarDB 开发者大会首度召开,让数据库开发像“搭积木”一样简单
    1月17日,首届阿里云PolarDB开发者大会在京举办,中国首款自研云原生数据库PolarDB发布“三层分离”全新版本,基于智能决策实现查询性能10倍提升、节省50%成本。面向开发者,阿里云全新推出数据库场景体验馆、训练营等系列新举措,广大开发者可率先免费体验PolarDB数据库核心特......
  • “氛围感 真环绕”可拆卸自由观影新物种 ——索尼发布“积木音响”HT-AX7
    2023年10月16日,索尼(中国)有限公司发布新款蓝牙音响——“积木音响”HT-AX7。该音响采用索尼360SSM技术(360空间声场映射技术,简称360SSM)和独特的可拆卸结构设计,在实现传统音响的功能基础上,进一步为用户提供了创新式可移动多场景的360智能穹顶声场沉浸音效体验。随着流媒体市场发......
  • JimuReport积木报表 v1.6.4 稳定版本正式发布—开源免费的低代码报表
    项目介绍一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等!Web版报表设计器,类似于excel操作风格,通过拖拽完成报表设计。秉承“简单、易用、专业”的产品理念,极大的降低报表开发难度、缩短开发周期、节......
  • 洛谷 P1969 [NOIP2013 提高组] 积木大赛 - 小思维
    洛谷P1969[NOIP2013提高组]积木大赛[NOIP2013提高组]积木大赛题目描述春春幼儿园举办了一年一度的“积木大赛”。今年比赛的内容是搭建一座宽度为\(n\)的大厦,大厦可以看成由\(n\)块宽度为\(1\)的积木组成,第\(i\)块积木的最终高度需要是\(h_i\)。在搭建开始之前......
  • qbxt 4179 积木中赛(block)
    原题小P准备了一次预测活动,每个参与活动的人都可以在PPP队获胜,GGG队获胜和平局三种结果中选择自己要预测的一种。如果第\(i\)个人预测正确,那么小P需要付给他\(a_i\)元,否则他需要给小P付\(b_i\)元。小P目前已经收到了\(n\)个人报名参加活动的信息,并知道他们每......
  • 新人笔记-继承简略
    packagecom_black.jicheng;//调试类publicclassDemo{publicstaticvoidmain(String[]args){//创建对象调用方法fuc=newfu();c.show();ziz=newzi();z.method();z.show();}}packagecom_black......
  • P4729 [HNOI2009] 积木游戏
    P4729[HNOI2009]积木游戏Solution2023.09.06。八个月前做这个题调了六个小时。现在看来,除开欧拉定理的部分,整道题的思路极其清晰易懂,虽然码量大,但并不难码。尽管如此,融合了数据结构、图论(模型构建+三元环计数)、拓扑论(欧拉定理)多方面知识点,而且还有四面共角的细节问题,它仍然......
  • 从积木式到装配式云原生安全
    云原生安全风险随着云原生架构的快速发展,核心能力逐渐稳定,安全问题日趋紧急。在云原生安全领域不但有新技术带来的新风险,传统IT基础设施下的安全威胁也依然存在。要想做好云原生安全,就要从这两个方面分别进行分析和解决。新技术带来新的安全风险云原生的概念定义本身就比较抽象......
  • 阿里云亮相数据库顶会 VLDB 2023 特邀主旨演讲:云数据库要像乐高积木一样好用
    北京时间8月30日,数据库国际顶会VLDB在加拿大温哥华开幕,来自阿里云、达摩院及合作者的论文共入选17篇,其中工业赛道(Industrial Track)收录7篇阿里云论文,均刷新中国企业纪录。在VLDB大会现场,阿里云数据库负责人李飞飞作大会特邀主旨演讲时表示,随着云计算基础设施的完善和......
  • P8675 [蓝桥杯 2018 国 B] 搭积木 题解
    总述此题用区间dp解决,二维前缀和优化。朴素做法阶段:自上而下数每一层。状态:\(dp_{i,l,r}\)表示自上而下数第\(i\)行中在\([l,r]\)摆积木的方案数。状态转移方程:根据题意可知,若要在\([l,r]\)中摆积木,那么\([l,r]\)中不允许有\(\tt{X}\),而第\(i\)层的\([l,r]\)......