首页 > 其他分享 >动态规划2

动态规划2

时间:2023-10-16 18:24:03浏览次数:36  
标签:fv fw int namespace mw mv 动态 规划

动态规划2

P1616 疯狂的采药

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e4+5,M=1e7+5;
int n,m,w[N],v[N],f[M];
signed main(){
	scanf("%lld%lld",&m,&n);
	for(int i=1;i<=n;i++)
		scanf("%lld%lld",&w[i],&v[i]);
	for(int i=1;i<=n;i++)
		for(int j=w[i];j<=m;j++)
			f[j]=max(f[j],f[j-w[i]]+v[i]);
	printf("%lld",f[m]);
	return 0;
}

P1833 樱花

  • 背包问题 -- 二进制拆分
  • 代码优化:快读
#include<bits/stdc++.h>
#define LL long long
using namespace std;
int n,a1,a2,b1,b2,m,nn,ti,ci,pi,l,r;
int f[1010];
deque< pair<int,int> >q;
inline LL read()
{
	char c;LL d=1,f=0;
	while(c=getchar(),!isdigit(c)) if(c=='-') d=-1;f=(f<<3)+(f<<1)+c-48;
	while(c=getchar(),isdigit(c)) f=(f<<3)+(f<<1)+c-48;
	return d*f;
}
signed main()
{
	a1=read();b1=read();a2=read();b2=read();n=read();
	m=(a2-a1)*60+b2-b1;
	for(register int i=1;i<=n;i++)
	{
		ti=read();ci=read();pi=read();
		if(pi==0) for(register int j=ti;j<=m;j++) f[j]=max(f[j],f[j-ti]+ci);
		else
		for(register int j=0;j<ti;j++)
		{
			while(q.size()) q.pop_front();
			l=1;r=0;
			int maxp=(m-j)/ti;
			for(register int p=0;p<=maxp;p++)
			{
				while(q.size()&&f[j+ti*p]-ci*p>=q.back().second) q.pop_back();
				q.push_back(make_pair(p,f[j+ti*p]-ci*p));
				while(q.size()&&q.front().first<p-pi) q.pop_front();
				f[j+ti*p]=max(f[j+ti*p],q.front().second+ci*p);
			}
		}
	}
	printf("%d",f[m]);
}

P1077 摆花

#include <bits/stdc++.h>
using namespace std;
int f[105][105];
int a[105];
int n,m;
int main(){
    cin>>n>>m;
	 for(int i=1;i<=n;i++) cin>>a[i];
	 f[0][0]=1;
	 for(int i=1;i<=n;i++){
	 	for(int j=0;j<=m;j++){
	 		for(int k=0;k<=min(j,a[i]);k++){
	 			f[i][j]=(f[i][j]+f[i-1][j-k])%1000007;
			 }
		 }
	 }
	 cout<<f[n][m];
	 return 0;
}

P1064 金明的预算方案

#include <bits/stdc++.h> 
using namespace std;  
int m,n;
int mw[32005],mv[65],fw[65][3],fv[65][3],f[32005],v,p,q;    
int main()  
{  
    cin>>n>>m;  
    for(int i=1;i<=m;i++){  
    cin>>v>>p>>q;  
    if(!q){   
        mw[i]=v; 
        mv[i]=v*p; 
    }  
    else{
        fw[q][0]++;
        fw[q][fw[q][0]]=v;
        fv[q][fw[q][0]]=v*p;
    }  
    }  
    for(int i=1;i<=m;i++)  
    for(int j=n;j>=mw[i];j--){ 
        f[j]=max(f[j],f[j-mw[i]]+mv[i]);   
        if(j>=mw[i]+fw[i][1])f[j]=max(f[j],f[j-mw[i]-fw[i][1]]+mv[i]+fv[i][1]);  
        if(j>=mw[i]+fw[i][2])f[j]=max(f[j],f[j-mw[i]-fw[i][2]]+mv[i]+fv[i][2]);  
        if(j>=mw[i]+fw[i][1]+fw[i][2])  
        f[j]=max(f[j],f[j-mw[i]-fw[i][1]-fw[i][2]]+mv[i]+fv[i][1]+fv[i][2]);  
    }   
    cout<<f[n]<<endl;  
    return 0;  
} 

标签:fv,fw,int,namespace,mw,mv,动态,规划
From: https://www.cnblogs.com/xiaoyangii/p/17768037.html

相关文章

  • 基于X86六轮差速移动机器人运动控制器设计与实现(二)规划控制算法
    带输入约束的MPC路径跟踪控制MPC算法是一种基于控制对象模型的控制方法,其优势在于在控制中考虑了系统的多种物理约束,同时基于模型与当前机器人的反馈信息预估出未来机器人位姿信息的处理方法可以解决控制迟滞的问题。4.1MPC路径跟踪控制器框架根据第......
  • 代码随想录算法训练营-动态规划-3-(0-1背包问题)|416. 分割等和子集、1049. 最后一块石
    416.分割等和子集01背包的递推公式为:dp[j]=max(dp[j],dp[j-weight[i]]+value[i]);如果dp[j]==j说明,集合中的子集总和正好可以凑成总和j,理解这一点很重要。1classSolution:2defcanPartition(self,nums:List[int])->bool:3_sum=......
  • 网络规划设计师真题解析--HDLC(帧类型)
    HDLC协议通信过程如下图所示,其中属于U帧的是(13)。(2021)A.仅SABME          B.SABME和UA C.SABME、UA和REJ,1    D.SABME、UA和I,0,0答案:B解析:HDLC帧类型如图:bit01234567I帧0N(S)发送帧序号3bit,取值23(0-7)P/FN(R)下一个预期要接收帧的序号3bit,取值23(0-7)S帧10S......
  • Atcoder Beginner Contest 324 F Beautiful Path 题解-分数规划
    为了更好的阅读体验,请点击这里分数规划小技巧:尽可能将式子写成存在某种取值,使得不等式成立的形式。不然可能需要绕几个弯才能想出来。题目链接题目大意:给出一个DAG,每条边有一个\(b_i,c_i\),保证从编号小的边向编号大的边连边,且\(1\)到\(n\)必有路径,求\(1\)到\(n\)......
  • 动态内存管理函数及应用--通讯录管理系统(1)
    引言:我们在创建一个局部变量时,通过下列定义语句向内存申请空间,内存在栈区为变量开辟相应的空间。intval=10;//在内存中栈区中开辟大小为4Byte大小的空间chararray[10]={0};//在内存中栈区中开辟大小为10Byte大小的连续的空间...上述方式开辟空间的特点:空间开辟大小是固定的,开辟好......
  • 金蝶云星空单据界面内增加动态数据展示的单据体
    业务场景有时候,当前订单需要动态显示一些字段或者整个实体用来进行数据对比或者用来动态选择等特殊业务场景,这些数据并不需要保存到数据库。 金蝶BOS实现1、单据体设置 2、字段设置 这样子单据界面绑定的数据都不会写入到数据库。完美。......
  • 动态SQL
    1介绍什么是动态SQL:动态SQL指的是根据不同的查询条件,生成不同的Sql语句。官网描述:https://mybatis.org/mybatis-3/zh/dynamic-sql.htmlMyBatis的强大特性之一便是它的动态SQL。如果你有使用JDBC或其它类似框架的经验,你就能体会到根据不同条件拼接SQL语句的痛苦。例如拼......
  • 五大咨询(IBM|埃森哲|汉得|HP|用友)公司IT规划方法论 P119
    本人从事咨询工作多年,二十年一线数字化规划咨询经验,提供制造业数智化转型规划服务,顶层规划/企业架构/数据治理/数据安全解决方案资料干货.【智能制造数字化咨询】该PPT共119页,由于篇幅有限,以下为部分资料,如需完整原版 方案,点击关注下方。HP、IBM、汉普、埃森哲、用友这五大国内......
  • 网络规划设计师真题解析--PERT “计划评审技术”(三点估算法)
    某网络建设项目的安装阶段分为A、B、C、D四个活动任务,各任务顺次进行,无时间上重叠,各任务完成时间估计如下图所示,按照计划评审技术,安装阶段工期估算为(70)天。(2019年)(70)A.31   B.51    C.53    D.83答案:C解析:依据三点估算公示,活动历时均值=(最悲观时间+最可能时间*4+......
  • HCIA-动态路由RIP
    前言路由信息协议RPI(RoutingInformationProtocol)是一种基于距离矢量算法的协议,以跳数作为度量来衡量到达目的网络的距离。RIP主要用于规模较小的网络中。它配置简单、易于维护、适合小型网络RIP简介距离矢量路由协议;属于IGP协议适用于小型网络;有RIPv1、RIPv2两个版本......