C++贪心算法2

发布于:2024-05-17 ⋅ 阅读:(128) ⋅ 点赞:(0)

拼点游戏

#include<bits/stdc++.h>
using namespace std;
bool cmp(int,int);
int n;
int c[1100],s[1100];
int main()
{
	system("color 1");
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>c[i];
	}
	for(int i=0;i<n;i++){
		cin>>s[i];
	}
	sort(c+0,c+n,cmp);
	sort(s+0,s+n,cmp);
	int i=0,j=0,cnt=0;
	while(i<n&&j>n){
		if(s[j]>c[j]){
			cnt=cnt+3;
			i++;
			j++;
		}
		else if(s[j]==c[i]){
			cnt=cnt+2;
			i++;
			j++;
		}
		else if(s[j]<c[i]){
			i++;
		}
	}
	while(j<n){
		cnt=cnt+1;
		j++;
	}
	cout<<cnt;
	return 0;
}
bool cmp(int a,int b){
	return a>b;
}

均分纸牌

#include<bits/stdc++.h>
using namespace std;
void f(int);
int n;
int main()
{
	system("color 1");
	cin>>n;
	int a[100],x=0;
	for(int i=0;i<n;i++){
		cin>>a[i];
		x=x+a[i];
	}
	x=x/n;
	int sum=0;
	for(int i=0;true;i++){
		for(int j=i;true;j++){
			if(a[i]<x){
				a[i+1]=a[i+1]-(x-a[i]);
				a[i]=x;
				sum++;
			}
			else if(a[i]>x){
				a[i+1]=a[i+1]+(a[i]-x);
				a[i]=x;
				sum++;
			}
		}
	}
    cout<<sum;
	return 0;
}
void f(int n){
	
	return;
}

最大子矩阵

#include<bits/stdc++.h>
using namespace std;
void f(int);
int n;
int main()
{
	system("color 1");
	cin>>n;
	int a[100][100];
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			cin>>a[i][j];
		}
	}
	int m=n,ma=-1;
	for(int i=0;i<n;i++){
		for(int j=i;j<n;j++){
			a[j][i]=a[j-1][i];
		}
	}

	for(int i=0;i<n;i++){
		for(int j=0;j<m;j++){
			ma=max(ma,a[i][j]);
		}
	}
	return 0;
}
void f(int n){
	
	return;
}


网站公告

今日签到

点亮在社区的每一天
去签到