码迷,mamicode.com
首页 > 其他好文 > 详细

cf 1060d 思维贪心

时间:2018-10-20 17:24:48      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:pre   思路   for   限制   mes   思维   inf   detail   ons   

题意:有N个人,你要让他们坐成若干个圆环。

  他们每个人需要坐一把椅子,左手边至少要有l个空椅子,右手边至少要有r个空椅子

  ,问最少需要多少个椅子。

参考:https://blog.csdn.net/zxyoi_dreamer/article/details/82941006

思路 :贪心

左走最大的那个人,他左边不可能有小于限制那么多的凳子,那么我们选择右走最大的那个人,使得他们左右重叠。这样的答案显然是最优的,如果这样贪心,我们总能够找出一个方案,交换两个位置,使它更优

 

#include<bits/stdc++.h>
using namespace std;

#define ll long long
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define all(v) v.begin(),v.end()

const int N = 1e5+4;
const int INF =1E9+4;
const ll mod =1e9+7;

ll powmod(ll x,ll n){
    ll res=1;while(n){if(n&1) res = res*x%mod; x=x*x%mod;n/=2;}return res;
}
ll gcd(ll a,ll b){return b==0?a:gcd(b,a%b);}

ll l[N],r[N];


int main(){
    int n;

    cin>>n;

    for(int i=1;i<=n;++i){
        scanf("%lld %lld",&l[i],&r[i]);
    }
    sort(l+1,l+1+n);
    sort(r+1,r+1+n);

        ll ans = n;

    for(int i=1;i<=n;++i)
        ans+=max(l[i],r[i]);

    cout<<ans<<endl;

    return 0;
}

 

cf 1060d 思维贪心

标签:pre   思路   for   限制   mes   思维   inf   detail   ons   

原文地址:https://www.cnblogs.com/wjhstudy/p/9822248.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!