GESP4级考试语法知识(贪心算法(二))

排队接水2代码:

cpp 复制代码
#include<iostream>
#include<cstdio>
#include<algorithm>
using namespace std;
struct people
{
	int num;
	int time;
};
people s[1001];
int n,r,a[1001];
double sum,ave;
bool cmp(people x,people y)
{
	return x.time<y.time;
}
int main()
{
	cin>>n>>r;
	int min=0,j=0;
	for(int i=1;i<=n;i++)
	{
		cin>>s[i].time;
		s[i].num=i;
	}
	sort(s+1,s+n+1,cmp);
	
	for(int i=1;i<=n;i++)
	{
		j++;
		if(j==r+1) j=1;
		a[j]+=s[i].time;
		min+=a[j];
	}
    cout<<min<<endl;
 	return 0;
}

均分纸牌代码:

cpp 复制代码
#include<iostream>
using namespace std;
int n,a[110];
int sum,ave,ans;
int main()
{
	cin>>n;
	
	for(int i=1;i<=n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	ave=sum/n;
	for(int i=1;i<=n-1;i++)
	{
		if(a[i]==ave) continue;
		int t=ave-a[i];
		a[i+1]-=t;
		ans++;
	}
	cout<<ans<<endl;
 	return 0;
}

删数问题代码1:

cpp 复制代码
#include<iostream>
using namespace std;
string s;
int n,k,mark=0,temp,flag=0;
int find_min(int l,int r)
{
	char minc=s[l];
	mark=l+1;
	for(int i=mark;i<=r;i++)
	{
		if(s[i]<minc)
		{
			minc=s[i];
			mark=i+1;
		}
	}
	return minc-'0';
}
int main()
{
	cin>>s>>k;
	n=s.length();
	for(int i=0;i<n-k;i++)
	{
		temp=find_min(mark,k+i);
		if(flag==0&&temp==0) continue;
		flag=1;
		cout<<temp;
		
	}
    if(flag==0) cout<<0;
 	return 0;
}

删数问题代码2:

cpp 复制代码
#include<iostream>
using namespace std;
int s,len;
string n;
int main()
{
	cin>>n;
	cin>>s;
	len=n.length();
	for(int i=1;i<=s;i++)   //一共要删除 s个字符
	{
		for(int j=0;j<s+i;j++) //从串首开始找
		if(n[j]>n[j+1])    //找到符合条件的字符
		{
			for(int k=j;k<len-1;k++)
				n[k]=n[k+1];
			break;
		}
		len--;
	}
	int j=0;
	int m=len;
	int flag=0;
	for(int i=0;i<len;i++)
	{
		if(n[i]=='0'&&flag==0) continue;
		flag=1;
		cout<<n[i];
	}
	if(flag==0) cout<<'0'<<endl;
 	return 0;
}
相关推荐
乐观勇敢坚强的老彭几秒前
c++寒假营day01下午
c++·算法
lly2024064 分钟前
jEasyUI 树形菜单添加节点
开发语言
AI职业加油站7 分钟前
Python技术应用工程师:互联网行业技能赋能者
大数据·开发语言·人工智能·python·数据分析
散峰而望11 分钟前
【算法竞赛】树
java·数据结构·c++·算法·leetcode·贪心算法·推荐算法
鱼很腾apoc14 分钟前
【实战篇】 第14期 算法竞赛_数据结构超详解(下)
c语言·开发语言·数据结构·学习·算法·青少年编程
芳草萋萋鹦鹉洲哦15 分钟前
后端C#,最好能跨平台,桌面应用框架如何选择?
开发语言·c#
神奇小梵18 分钟前
c语言易错知识点
c语言·开发语言
人机与认知实验室19 分钟前
<span class=“js_title_inner“>如何看待特斯拉第三代Optimus机器人?</span>
开发语言·javascript·机器人·ecmascript·unix
Coding茶水间25 分钟前
基于深度学习的花朵识别系统演示与介绍(YOLOv12/v11/v8/v5模型+Pyqt5界面+训练代码+数据集)
开发语言·人工智能·深度学习·yolo·目标检测·机器学习
123_不打狼27 分钟前
AE(自编码器)与 VAE(变分自编码器)核心区别:原理、目标与应用
深度学习·算法·机器学习·vae