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;
}
相关推荐
阿珊和她的猫3 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
PAK向日葵5 小时前
【算法导论】PDD 0817笔试题题解
算法·面试
fouryears_234175 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~6 小时前
C#---StopWatch类
开发语言·c#
lifallen7 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研7 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
地平线开发者7 小时前
ReID/OSNet 算法模型量化转换实践
算法·自动驾驶
快乐的划水a8 小时前
组合模式及优化
c++·设计模式·组合模式
地平线开发者8 小时前
开发者说|EmbodiedGen:为具身智能打造可交互3D世界生成引擎
算法·自动驾驶
cui__OaO9 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习