Noip2012-国王游戏

“使赏赐最多的大臣获得的赏赐尽可能少”

这类题目要么是二分,要么是贪心。emmmmm这题看上去比较像贪心(不要问我为啥就是玄学orz)

考虑两个大臣x,y,(对于i来说,左手的数字是a[i].l,右手的数字是a[i].r)

如果x排在y前面,

则有:total*a[x].l/a[y].r

所以:a[x].l*a[x].r

然后排个序就没了啊……

上代码!!!

#include 
#include 
#include 

using namespace std;
const int maxn=1005;
typedef long long ll;
struct node
{
	int l,r;
}a[maxn]; 
int cmp(node x,node y)
{
	return x.l*x.r

emmmm这题是要高精的然而我懒得写emmmmm

总结一下:

对于这种简单贪心来说,考虑2个元素满足什么条件才能保证x排在y前面

然后总结出公式sort一下就好啦。

嘿嘿嘿超快乐。

 

 

 

 

你可能感兴趣的:(奇技淫巧)