c++ learn fourth day

news2024/9/21 2:34:22

2.LOL Lovers

 

我们可以从 1 遍历到 len−1,以第 𝑖i 个位置为分割线,统计 [0,i−1] 与 [i,len−1] 的 l 和 o 的个数,判断是否不相等,如果不相等,输出 i,然后退出即可。

如果到最后一直没有输出,就输出 −1。


//暴力枚举 
#include<bits/stdc++.h> 
using namespace std;
int main()
{
	int len;
	cin>>len;
	string s;
	cin>>s;
	for(int i=1;i<len;i++)
	{
		int l=0,o=0;
		for(int j=i-1;j>=0;j--)
		{
			if(s[j]=='L') 	l++;//统计左边 
			else 			o++;
		}
		int ll=0,oo=0;
		for(int j=i;j<len;j++)
		{
			if(s[j]=='L')	ll++;//统计右边 
			else			oo++;
		}
		if(l!=ll&&o!=oo)	//不相等输出 
		{
			printf("%d",i);
			return 0;
		}
	}
	printf("-1");
	return 0;
}

3.质因数分解

learn:


#include<bits/stdc++.h> 
using namespace std;
int main()
{
	int n;
	int num1,num2,i;
	cin>>n;
	for(i=2;i<=sqrt(n);i++)
	{
		if(n%i==0)
			num1=i;
	}
	num2=n/num1;
	cout<<num2;
	return 0;
}

4.寻宝

参考:http://t.csdnimg.cn/S3ZEJ

6.排队接水

等待时间的话,从小到大排序,注意等待时间


#include<bits/stdc++.h>
using namespace std;
struct water
{
	int num,time;
 } people[1010],t;
int main()
{
	int n;
	cin>>n;
	int i,j;
	for(i=0;i<n;i++)
	{
		cin>>people[i].time;
		people[i].num=i+1;
	}
	//选择法排序 
	for(i=0;i<n;i++)
	{
		for(j=i+1;j<n;j++)
		{
			if(people[i].time>people[j].time)
			{
				t=people[i];
				people[i]=people[j];
				people[j]=t;
			}
		}
	}
	double sum=0;
		for(i=0;i<n;i++)
		{
			sum=sum+people[i].time*(n-i-1);//剩余人 
			cout<<people[i].num<<" "; 
		}
		cout<<endl;
		sum=sum/n;
		printf("%.2f\n",sum);
	return 0;
}

7.凌乱的yyy / 线段覆盖

贪心算法

学习:http://t.csdnimg.cn/8FpWC

#include<bits/stdc++.h>
using namespace std;
struct game {
	int start;
	int end;
}a[1000008];

bool cmp(game x,game y)
{
	return x.end<y.end;
}

int main()
{
	int n,i,count=1,flag=1;
	cin>>n;
	for(i=0;i<n;i++)
		cin>>a[i].start>>a[i].end;
	sort(a,a+n,cmp);//按照结束时间排序
	int early=0;//当前最早结束时间
	当是最后一个或者没有符合条件的时候退出
	while(early!=n&&flag!=0)
	{
		flag=0;
		for(i=early;i<n;i++)
		{
			if(a[i].start>=a[early].end)
			{
				early=i;//更新
				count++;//计数加1
				flag=1;//说明有符合条件的
			}
		}
	} 
	cout<<count;
	return 0; 
	
	
}

8.小A的糖果

两堆两堆看,先看左边在看右边那堆

#include<bits/stdc++.h>
using namespace std;
int a[1000005];
long long n,m,ans;
int main()
{
	int i;
	cin>>n>>m;
	for(i=1;i<=n;i++)	cin>>a[i];
	for(i=1;i<n;i++)
	{
		if(a[i]+a[i+1]>m)
		{
			if(a[i]>m)	//先吃第一堆剩余m 
			{
				ans=ans+a[i]-m;
				a[i]=m;
			}
			if(a[i]+a[i+1]>m)//再吃第二堆,使两堆和小于m 
			{
				ans=ans+a[i]+a[i+1]-m;
				a[i+1]=m-a[i];
			}
		}
	}
	cout<<ans<<endl;
	return 0;
}

9.最大子段和

动态规划

思路可以总结为,找以第i个数为结尾的子段的最大和,可以把前i-1的子段和看成一个整体,小于0就不要,大于0就加上。

状态表示:dp[i]表示以第i个数结尾的最大子段和

状态转移方程:dp[i]=max(a[i],dp[i-1]+a[i]) 

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n;
	int a[999999],dp[999999];
	int i;
	int ans=-99999;
	cin>>n;
	for(i=1;i<=n;i++)	cin>>a[i];
	for(i=1;i<=n;i++)
	{
		dp[i]=max(a[i],dp[i-1]+a[i]);
		ans=max(ans,dp[i]);
	 } 
	cout<<ans<<endl;
	return 0;
}

10.Function

记忆化搜索

记忆化搜索:算法上依然是搜索的流程,但是搜索到的一些解用动态规划的那种思想和模式作一些保存。
一般说来,动态规划总要遍历所有的状态,而搜索可以排除一些无效状态。搜索还可以剪枝,可能剪去大量不必要的状态,因此在空间开销上往往比动态规划要低很多。
记忆化算法在求解的时候还是按着自顶向下的顺序,但是每求解一个状态,就将它的解保存下来,
以后再次遇到这个状态的时候,就不必重新求解了。

学习:http://t.csdnimg.cn/hbwBA

学习:http://t.csdnimg.cn/g7m0D

#include<bits/stdc++.h>
using namespace std;

long long q[25][25][25];
long long w(long long a,long long b,long long c);
int main()
{
	long long a,b,c;
	while(1)
	{
		cin>>a>>b>>c;
		if(a==-1&&b==-1&&c==-1)		break;
		printf("w(%lld, %lld, %lld) = %lld\n",a,b,c,w(a,b,c));
	}
	return 0;
}
long long w(long long a,long long b,long long c)
{
	if(a<=0||b<=0||c<=0)	return 1;
	else if(a>20||b>20||c>20)
	{
		q[20][20][20]=w(20,20,20);
		return q[20][20][20];
	}
	if(q[a][b][c]==0)
	{
		if(a<b&&b<c)
		{
			q[a][b][c]=w(a,b,c-1)+w(a,b-1,c-1)-w(a,b-1,c);
			return q[a][b][c];
		}
		else 
		{
			q[a][b][c]=w(a-1,b,c)+w(a-1,b-1,c)+w(a-1,b,c-1)-w(a-1,b-1,c-1); 
			return q[a][b][c];
		}
	}
	else return q[a][b][c];
}

题目参考:http://t.csdnimg.cn/WKhcB

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

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

相关文章

【Mac】Charles for Mac(HTTP协议抓包工具)及同类型软件介绍

软件介绍 Charles for Mac 是一款功能强大的网络调试工具&#xff0c;主要用于HTTP代理/HTTP监视器。以下是它的一些主要特点和功能&#xff1a; 1.HTTP代理&#xff1a;Charles 可以作为HTTP代理服务器&#xff0c;允许你查看客户端和服务器之间的所有HTTP和SSL/TLS通信。 …

2970.力扣每日一题7/10 Java(暴力枚举)

博客主页&#xff1a;音符犹如代码系列专栏&#xff1a;算法练习关注博主&#xff0c;后期持续更新系列文章如果有错误感谢请大家批评指出&#xff0c;及时修改感谢大家点赞&#x1f44d;收藏⭐评论✍ 目录 解题思路 解题方法 时间复杂度 空间复杂度 Code 解题思路 incre…

SDF矩形(附圆角)公式推导

SDF矩形(附圆角)公式推导 矩形 一般情况下&#xff0c;我们会使用(top_left, top_bottom), (width, height)来定义一个矩形&#xff0c;但是对于SDF而言&#xff0c;使用(centerX, centerY)&#xff0c; (HalfSizeX, HalfSizeY)会更方便一些。 假设一个矩形&#xff0c;我们先定…

利用【Python】【线性规划】优化工厂生产:实现智能资源配置与利润最大化的现代解决方案

目录 1. 问题背景和描述 1.1 问题背景 1.2 问题描述 2. 数学模型的建立 2.1决策变量 2.2 目标函数 2.3 约束条件 2.4 数学模型总结 3. 使用Python解决线性规划问题 3.1 导入必要的库 3.2 定义目标函数系数 3.3 定义不等式约束矩阵和向量 3.4 定义变量的边界 非负…

MAVLink代码生成-C#

一. 准备Windows下安装环境 Python 3.3 – 官网链接下载Python future模块 –pip3 install future TkInter (GUI 工具). – python for Windows自带&#xff0c;无需下载环境变量PYTHONPATH必须包含mavlink存储库的目录路径。 –set PYTHONPATH你的mavlink源码路径 源码下载在…

【Linux】Windows环境下配置虚拟机静态IP

当前我们虚拟机的Linux操作系统&#xff0c;其IP地址是通过DHCP服务获取的。 DHCP:动态获取IP地址&#xff0c;即每闪重启设备后都会获取一次&#xff0c;可能导致IP地址频繁变更 原因1&#xff1a;办公电脑IP地址变化无所谓&#xff0c;但是我们要远程连接到Linux系统&#x…

IDEA之Debug的使用

自定义功能图表 功能说明 光标回到Debug行 执行到光标所在行 Force Step into Trace Current Stream Chain Reset Frame 重置方法入栈

ESP32网络开发:1.创建一个基于TCP网络协议的网站

一、TCP协议的介绍 TCP&#xff08;传输控制协议&#xff0c;Transmission Control Protocol&#xff09;是互联网协议套件中的一种核心协议&#xff0c;主要用于在网络中的计算机之间可靠地传输数据。TCP协议位于OSI模型&#xff08;开放系统互联模型&#xff09;的传输层&…

系统架构设计师教程(清华第2版)<第2章 计算机系统基础知识>解读

系统架构设计师教程 第二章 计算机系统基础知识-2.1计算机系统概述 2.2 计算机硬件 2.1 计算机系统概述2.2 计算机硬件2.2.1 计算机硬件组成2.2.2 处理器2.2.2.1 控制单元(CU)2.2.2.2 算术逻辑单元(ALU)2.2.2.3 指令集2.2.2.3.1 CISC的特点2.2.2.3.2 RISC的特点2.2.3 存储器2.2…

大白话讲解AI大模型

大白话讲解大模型 大模型的发展重要大模型发展时间线 大模型的简单原理-训练⼤模型是如何训练并应⽤到场景中的&#xff1f;如果训练私有化模型 模型&#xff1a;model 语料库&#xff1a;用于训练模型的数据 大模型的发展 详细信息来源&#xff1a;DataLearner 2022年11月底…

【STM32学习】stm32cubemx基础配置,点亮/闪烁一个LED灯

1、cubemx开始 打开cubemx&#xff0c;在help栏中&#xff0c;点击&#xff0c;选择安装你所需要的stm32芯片版本&#xff0c; 打开后&#xff0c;选择你所配置的芯片型号&#xff0c;如我配置的是stm32f4系列&#xff0c;勾选&#xff0c;点击Install。 安装好后&#xff0c;…

防火墙配置安全策略以及用户认证综合实验

一、拓扑图&#xff1a; 二、实验需求&#xff1a; 1、DMz区内的服务器&#xff0c;办公区仅能在办公时间内(9:00-18&#xff1a;00)可以访问&#xff0c;生产区的设备全天可以访问&#xff1b; 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3、办公…

如何挑选适合的需求池管理系统?10款优质工具分享

本文将分享10款优质需求池管理工具&#xff1a;PingCode、Worktile、Teambition、Epicor Kinetic、TAPD、SAP IBP、Logility、RELEX Solutions、JIRA、明道云。 在管理项目和产品需求时&#xff0c;正确的工具能够大幅提高效率与透明度。如何从众多需求池工具中选择最适合团队的…

昇思25天学习打卡营第17天|基于MobileNetv2的垃圾分类

今天学习的内容是利用视觉图像技术&#xff0c;来实现垃圾分类代码开发的方法。通过读取本地图像数据作为输入&#xff0c;对图像中的垃圾物体进行检测&#xff0c;并且将检测结果图片保存到文件中。 本章节主要包括8部分内容&#xff1a; 1、实验目的 1、了解熟悉垃圾分类应用…

基于Python的哔哩哔哩数据分析系统设计实现过程,技术使用flask、MySQL、echarts,前端使用Layui

背景和意义 随着互联网和数字媒体行业的快速发展&#xff0c;视频网站作为重要的内容传播平台之一&#xff0c;用户量和内容丰富度呈现爆发式增长。本研究旨在设计并实现一种基于Python的哔哩哔哩数据分析系统&#xff0c;采用Flask框架、MySQL数据库以及echarts数据可视化技术…

前端--第一个前端程序

第一个前端程序 第一步&#xff1a; 使用记事本&#xff0c;编写代码 在你的一个磁盘里面创建一个文件夹&#xff0c;名为前端&#xff0c;然后在里面新建一个记事本&#xff0c;在里面写如下代码&#xff0c;注意一定要使用英文&#xff0c;然后把后缀名称改为.html。 第二…

MGRE环境下的OSPF实验

1、IP进行分配&#xff0c;并配置 配置各个路由器上的换回地址 配置接口地址 将缺省路由配出来 2、R1/4/5全连的MGRE以R1为中心 R1配置 进入隧道接口并配置ip 将协议配置为MGRE 并配置源接口IP 配置nhrp的id R3配置 R4配置

隔离计数器卡 脉冲编码器模块USB2392 采集48V电压 北京阿尔泰科技

1、简介&#xff1a; 2、主要系统框图&#xff1a; 2.3、规格参数&#xff1a; 3、板卡外形图&#xff1a;

Qt+MySQL实现社团管理系统

开发环境 ● Qt 5.14.1 ● Win10 ● Mysql 5.7.28 系统介绍 系统主要实现的功能如下图所示 社团管理系统主要包含了以下几个亮点功能 轮播图显示社团信息支持excel形式的导入导出学生信息权限控制&#xff08;管理员、超级管理员、用户&#xff09; 系统效果展示 登录界面…

Python-找客户软件

软件功能 请求代码&#xff1a; 填充表格&#xff1a; 可以search全国各个区县的所有企业信息&#xff0c;过滤手机号、查看是否续存/在业状态。方便找客户。 支持定-制-其他引-留-阮*件&#xff08;XHSS&#xff0c;DYY&#xff0c;KS&#xff0c;Bi-li*Bi-li&#xff09; V*…