CodeForces 1060D(思维+贪心)

传送门

题意:

n个人围成一个圈吃饭,每个人都要求自己的左右两边至少有多少座椅,求最少的座椅数量

思路:

第一次做这种题,看了好久没有思路,

仔细想一想,每次挑选左右座椅最大的那个加起来,最后得出的就是最小座椅数量。

因为是一个圈,选择大的那一边,下一次选择就会把另一边给覆盖

#include 
using namespace std;
typedef long long ll;
int a[100005],b[100005];
int main()
{
	int n;cin>>n;
	for(int i=0;i>a[i]>>b[i];
	}
	sort(a,a+n);sort(b,b+n);
	long long ans=0;
	for(int i=0;i

ac代码:

 

你可能感兴趣的:(笔记)