6日目貪欲(PAT B1020 B1023)

記事のディレクトリ

1.シンプルな欲張り

現在の状態で局所最適解を考えてみましょう
あなたがもっともらしい戦略を考えるならば、彼らはカウンターではない例として、そして勇敢にそれを達成することができます

ナップザック問題に類似PAT B1020月餅

#include<stdio.h>
#include<algorithm>
using namespace std;
struct mooncake{
	double store;
	double sell;
	double price;
}cake[1010];
bool cmp(mooncake a,mooncake b){
	return a.price > b.price;
}
int main(){
	int n;
	double D;
	scanf("%d%lf",&n,&D);
	for(int i = 0;i<n;i++)
		scanf("%lf",&cake[i].store);
	for(int i = 0;i<n;i++){
		scanf("%lf",&cake[i].sell);
		cake[i].price = cake[i].sell/cake[i].store;
	}	
	sort(cake,cake+n,cmp);
	double ans = 0;
	for(int i = 0;i<n;i++){
		if(cake[i].store<=D){
			D-=cake[i].store;
			ans+=cake[i].sell;
		} else{
			ans+= cake[i].price*D;
			break;
		}
	}
	printf("%.2f",ans);
	return 0;
}

== PAT B1023 ==が最小数に設定
任意の順序で各番号0-9に与えられ、これらの番号を、最終的な目的は、可能な最小数得ることであるように、すべての使用、(0が最初ではない)必要があり
、入力10非負整数、順序は、0が持っている番号、番号1 ...... 9桁、50未満10の総数の数を表すの少なくとも1つの非0番号有する
サンプル入力:220003 0010
サンプル出力:10015558

#include<stdio.h>
int main(){
	int count[10];
	for(int i = 0;i<10;i++)
		scanf("%d",&count[i]);
	for(int i = 1;i<10;i++){
		if(count[i]>0){
			printf("%d",i);
			count[i]--;
			break;
		}		
	} 
	for(int i = 0;i<10;i++)
		for(int j = 0;j<count[i];j++)
			printf("%d",i); 
	return 0;
}

2.貪欲間隔

間隔互いに素問題:開区間(x、y)のN数を考えると、実際にはよりオープンな間隔を選択することができ、このようなオープン間隔二十から二ことは交差点、例えば(1,3)として(2,4)(3,5 3個までは(1,3)(3,5)(6,7)が相互に互いに素で間隔を選択してもよい)、(6,7)、

#include<stdio.h>
#include<algorithm>
using namespace std;
const int maxn = 110;
struct Inteval{
	int x,y;
}I[maxn];
bool cmp(Inteval a,Inteval b){
	if(a.x != b.x) return a.x < b.x;	//左端点从小到大排列 
	else return a.y < b.y; 				//左端点相同则按右端点从小到大 
}
int main(){
	int n;
	while(scanf("%d",&n),n!=0){
		int a[n] = {1,0};
		for(int i = 0;i<n;i++){
			scanf("%d%d",&I[i].x,&I[i].y);
		}
		sort(I,I+n,cmp);
		int ans = 1,lastY = I[0].y;
		for(int i = 1;i<n;i++){
			if(I[i].x>=lastY){
				a[i] += 1;
				lastY = I[i].y;
				ans++;	
			}
		}
		printf("%d\n",ans);
		for(int i = 0;i<n;i++){
			if(a[i]>0)
				printf("(%d,%d)\n",I[i].x,I[i].y); 
		}
	}
	return 0;
}
公開された26元の記事 ウォンの賞賛3 ビュー205

おすすめ

転載: blog.csdn.net/qq_41898248/article/details/103773105