算法设计与分析 动态规划/回溯

news2025/2/24 20:03:52

1.最大子段和

int a[N];
int maxn(int n)
{
	int temp=a[0];int ans=0;
	ans=max(temp,ans);
	for(int i=1;i<n;++i)
	{
		if(temp>=0)
		{
			temp+=a[i];
		}
		else	temp=a[i];
		ans=max(temp,ans);
	}
	return ans;
}
int main()
{
	int n,ans=0;cin>>n;
	for(int i=0;i<n;++i)	cin>>a[i];
	ans=maxn(n);
	cout<<ans;
	return 0;
}

2. 

int main()
{
	string a,b;cin>>a>>b;
	if(a.length()>b.length())	swap(a,b);
	int l1=a.length(),l2=b.length();
	int start=0,maxn=0;
	int dp[l2+1][l2+1];
	for(int i=0;i<l1;++i)	dp[i][0]=0;
	for(int j=0;j<l2;++j)	dp[0][j]=0;
	for(int i=1;i<=l1;++i)
	{
		for(int j=1;j<=l2;++j)
		{
			if(a[i-1]==b[j-1])	dp[i][j]=dp[i-1][j-1]+1;
			if(dp[i][j]>maxn)
			{
				maxn=dp[i][j];
				start=i-maxn;
			}
		}
	}
	cout<<maxn<<" ans:"<<a.substr(start,maxn);
	return 0;
}

 3.

#include<iostream>
#include<stdio.h>
using namespace std;
 
void Knapsack(int n,int c,int *w,int *p){
	  int f[100][100];
	int i=0,j=0;
	for(i=1;i<=n;i++){
		for(j=1;j<=c;j++){
			f[i][j]=f[i-1][j];
			if(j>=w[i]){
				f[i][j]=max(f[i-1][j],f[i-1][j-w[i]]+p[i]);
			}
		}
	}

	cout<<"背包能装的最大价值是:" << f[i-1][j-1] <<endl;
}
int main(){
    int n;
	int c;
    int w[100]; 
    int p[100];
    cout << "请输入背包容量c:"<< endl;
    cin >>c;
      cout <<"请输入物体个数n:"<<endl;
      cin >>n;
      for(int i=1;i<=n;i++) 
        {
        	cout<<"请输入物重w["<<i<<"]:"<<endl;
        	cin >> w[i]; 
		}
		  for(int i=1;i<=n;i++) 
        {
        	cout<<"请输入物价p["<<i<<"]:"<<endl;
        	cin >> p[i];
		}
		Knapsack(n,c,w,p);
		
}
 

 4.

typedef struct{
	char name;
	float v;
	float w;
	float key;
}goods;
int n;vector<goods> g;
float nowweight=0;
float remainweight=10; 
float nowvalue=0;
vector<int> bagG;
float bestV=0;
vector<int> bestS; 
float shangjie=0;
void digui(int k) 
{
	int i,j=0,maxG;
	float shangjie=0;
	if(k>n) 
	{
		if(nowvalue> bestV)
		{
			for(int i=0;i<n;i++)
			{
				bestS[i]=bagG[i];
			}
			bestV=nowvalue; 
		} 
		return; 
	}
	maxG=remainweight/g[k].w;
	shangjie=nowvalue+(remainweight-nowweight)*g[k].key;
	if(bestV>=shangjie)return;
	for(i=maxG;i>=0;i--)
	{
		if(nowweight+i*g[k].w <=remainweight )
		{
			nowweight += i*g[k].w;
			nowvalue+=i*g[k].v;
			bagG[k]=i;
			j=k;
			if(nowweight==remainweight)
			{
				for(j++;j<n;j++)
				{
					bagG[j]=0;
				 }
			} 
			digui(j+1);
			nowweight -= i*g[k].w;
			nowvalue-=i*g[k].v;
			bagG[k]=0;
		}
	}
}

int main()
{
	cin>>n;
	for(int i=0;i<n;++i)
	{
		cin>>g[i].name>>g[i].w>>g[i].v;
	}
	for(int i=0;i<n;i++)
		g[i].key= 1.0*g[i].v/g[i].w; 
	for(int i=0;i<n-1;i++)
	{
		for(int j=0;j<i;j++)
			if(g[j].key < g[j+1].key )
			{
				char tname=g[j].name;
				g[j].name=g[j+1].name;
				g[j+1].name=tname;
				float t=g[j].v;
				g[j].v=g[j+1].v;
				g[j+1].v=t;
				t=g[j].w;
				g[j].w=g[j+1].w;
				g[j+1].w=t;
				t=g[j].key;
				g[j].key =g[j+1].key ;
				g[j+1].key =t;
			}
	} 
	for(int i=0;i<n;i++)
	{
		cout<<g[i].name<<endl;
	}
	digui(0);
	cout<<bestV<<endl;
	for(int i=0;i<n;i++)
	{
		cout<<g[i].name <<":"<< bestS[i]<<endl;
	}
	return 0;
} 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1661258.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Spring添加注解读取和存储对象

5大注解 Controller 控制器 Service 服务 Repository 仓库 Componet 组件 Configuration 配置 五大类注解的使用 //他们都是放在同一个目录下&#xff0c;不同的类中 只不过这里粘贴到一起//控制器 Controller public class UserController {public void SayHello(){System.ou…

在新页面中跳转到指定 div容器位置

要在打开新的页面时跳转到指定 div&#xff0c;我们需要结合 HTML、JavaScript 和后端技术来实现。以下是两种常见的方法&#xff1a; 使用 URL 参数传递目标 div 信息 HTML (新页面): 在新页面的链接中&#xff0c;添加参数来指示目标 div 的 id&#xff0c;例如&#xff1a;…

Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制(2)

Android GPU渲染SurfaceFlinger合成RenderThread的dequeueBuffer/queueBuffer与fence机制&#xff08;2&#xff09; 计算fps帧率 用 adb shell dumpsys SurfaceFlinger --list 查询当前的SurfaceView&#xff0c;然后有好多行&#xff0c;再把要查询的行内容完整的传给 ad…

im8mm 网络卡死 Rx packets:1037578 errors:66 dropped:0 overruns:66 frame:0

1&#xff1a;网络接收数据包异常 2&#xff1a;问题复现 问题在进行网络数据包同吞吐量测试的时候出现的。同时发现&#xff0c;在使用iperf2测试时&#xff0c;是不会出现网络中断卡死的情况&#xff0c;使用 iperf3时才会出现此问题 指令(下面的指令运行在PC2上面&#xff…

Linux 安装JDK和Idea

安装JDK 下载安装包 下载地址&#xff1a; Java Downloads | Oracle (1) 使用xshell 上传JDK到虚拟机 (2) 移动JDK 包到/opt/environment cd ~ cd /opt sudo mkdir environment # 在 /opt下创建一个environment文件夹 ls# 复制JDK包dao /opt/environment下 cd 下载 ls jd…

聊天室项目思路

发起群聊&#xff1a; 从好友表选取人发送到服务器&#xff0c;服务器随机生成不重复的群号&#xff0c;存储在数据库&#xff0c;同时建立中间表&#xff0c;处理用户与群聊的关系 申请入群&#xff1a; 输入群号&#xff0c;发消息给服务器&#xff0c;服务器查询是否存在…

Ftp笑脸漏洞(VSFTPD 2.3.4)复现(后门漏洞)

Ftp笑脸漏洞&#xff08;VSFTPD 2.3.4&#xff09;复现&#xff08;后门漏洞&#xff09; 一、原理二、复现准备三、漏洞复现四、Metasploit利用脚本复现 一、原理 vsftpd 是“ very secure FTP daemon ”的缩写&#xff0c;安全性是它的一个最大的特点。 vsftpd是一个 UNIX 类…

【智能优化算法】矮猫鼬优化算法(Dwarf Mongoose Optimization Algorithm,DMHO)

矮猫鼬优化算法(Dwarf Mongoose Optimization Algorithm,DMHO)是期刊“COMPUTER METHODS IN APPLIED MECHANICS AND ENGINEERING”&#xff08;IF 7.3&#xff09;的2022年智能优化算法 01.引言 矮猫鼬优化算法(Dwarf Mongoose Optimization Algorithm,DMHO)模仿矮猫鼬的觅食行…

【Linux】Linux——Centos7安装Nginx

不需要安装包 1.安装依赖 #查看 C 环境是否安装gcc -v #查看 zlib 是否安装cat /usr/lib64/pkgconfig/zlib.pc #查看 pcre 是否安装pcre-config --version 2.安装C #安装C yum install gcc-c 3.安装pcre yum install -y pcre pcre-devel 4.安装zlib #安装 yum install -y zlib…

C++对象的拷贝构造函数

如果一个构造函数的第一个参数是类本身的引用,且没有其它参数(或者其它的参数都有默认值),则该构造函数为拷贝构造函数。 拷贝(复制)构造函数:利用同类对象构造一个新的对象 ●1.函数名和类同名 (构造函数) ●2.没有返回值 (构造函数) ●3.第一个参数必…

【AIGC】重塑未来的科技巨轮

AIGC&#xff1a;重塑未来的科技巨轮 一、AIGC&#xff1a;从历史走来&#xff0c;向未来进发二、AIGC的三项核心技术三、AIGC的应用与未来 在当今科技飞速发展的时代&#xff0c;AI&#xff08;人工智能&#xff09;已经成为了一个无法忽视的热词。而与其紧密相连的AIGC&#…

配置OpenSSH/stelnet

其他远程连接工具&#xff1a;telent、realVNC、RSH、RCP等&#xff0c;SSH更加安全可靠 一、配置OpenSSH/stelnet 1.配置服务端 # vim /etc/ssh/sshd_config //修改ssh配置文件 Port 22 //监听端口 AddressFamily any //使用哪种地址簇&#xff0c;any包含v4、v6&#xff0c…

运行SpringBoot项目失败?异常显示Can‘t load IA 32-bit .dll on a AMD 64-bit platform,让我来看看~

原因是&#xff0c;我放入jdk的bin文件夹下的tcnative-1.dll文件是32位的&#xff0c;那么肯定是无法在AMD 64位平台上加载IA 32位.dll。但是网站上给出的都是32位呀&#xff0c;没有64位怎么办&#xff1a; 其实当我们把“tomcat-native-1.2.34-openssl-1.1.1o-win32-bin.zip”…

【C++】详细版 RAII技术的应用之智能指针(智能指针发展历程和简单模拟实现介绍)

目录 前言 一、智能指针有什么用&#xff1f; 二、什么是RAII(智能指针的底层思想)&#xff1f; 三、智能指针的发展历程以及模拟实现 1.auto_ptr&#xff08;C98&#xff09; 2.unique_ptr&#xff08;C11&#xff09; 3.shared_ptr&#xff08;C11&#xff09; 前言 C中…

Modown9.1主题无限制使用+Erphpdown17.1插件

Modown9.1主题无限制使用 1、Erphpdown17.1插件Modown9.1主题 2、送Modown主题详细教程。 1、Erphpdown插件和Modown主题无需激活 2、送的插件均无需激活 3、主题插件均不包更新 4、已亲测可以完美使用。 功能强大&#xff0c;适用于绝大多数虚拟资源站&#xff01;物超所值&a…

智慧公厕:让厕所管理变得更智慧、高效、舒适!

公共厕所是城市的重要组成部分&#xff0c;但常常被忽视。它们的管理和养护往往面临着许多问题&#xff0c;例如卫生状况不佳、环境畏畏缩缩、设施老旧等。为了解决这些问题&#xff0c;智慧公厕应运而生。智慧公厕是一种全方位的应用解决方案&#xff0c;将科技与公共厕所管理…

RERCS系统-WDA+BOPF框架实战例子 PART 2-新建Root的子节点Node Element

1、通过事务码 BOBF进入Business Object Browser&#xff08;业务对象浏览&#xff09;页面&#xff1b; 2、输入debug 进入编辑模式&#xff1b; 3、双击对应的业务对象进入Business Object Detail Browser即业务对象数据浏览器 在Node Structure的Root中新建需要的SubNode子…

【C++】学习笔记——优先级队列

文章目录 十、优先级队列1. priority_queue的介绍2. 优先级队列如何使小的数据优先级高3. 仿函数介绍4. priority_queue的模拟实现 补&#xff1a; 反向迭代器未完待续 十、优先级队列 1. priority_queue的介绍 优先级队列 其实也不属于队列&#xff0c;它跟 stack 和 queue …

[Linux_IMX6ULL驱动开发]-GPIO子系统和Pinctrl子系统

目录 Pinctrl子系统的概念 GPIO子系统的概念 定义自己的GPIO节点 GPIO子系统的函数 引脚号的确定 基于GPIO子系统的驱动程序 驱动程序 设备树修改 之前我们进行驱动开发的时候&#xff0c;对于硬件的操作是依赖于ioremap对寄存器的物理地址进行映射&#xff0c;以此来达…

SpringBoot实现统一返回值+全局异常处理

在这里首先感谢的就是程序员老罗&#xff0c;从他的项目里面学到了这些东西。 首先就是去创建一个SpringBoot项目&#xff0c;这里我就不多做赘述了 封装一个统一返回对象 package com.example.demo.vo;public class ResponseVO<T> {private String status;private In…