zoukankan      html  css  js  c++  java
  • 2020ICPC上海 H-Rice Arrangement 贪心

    2020ICPC上海 H-Rice Arrangement

    题意

    给定一个周长为(n)个单位的圆桌,有(k)个人围着桌子坐,位置分别为(a_1,a_2,dots,a_k),桌上有(k)碗手抓饭,位置分别为(b_1,b_2,dots,b_k),服务员每次可以将桌子顺时针或逆时针转一个单位,当一个人面前刚好有一碗饭时,可以拿走这碗饭或等待下一个,问服务员最少转多少单位能使每个人都能拿到一碗饭。

    分析

    (a,b)分别排序,枚举第一碗饭分配给哪个人,剩下的配对关系就确定了,求出两个数组(x,y),表示通过顺时针转动(x[i])个单位或逆时针转(y[i])个单位,可以让第(i)个人拿到属于他的饭,问题就转化成了有(k)个有序对((x_i,y_i)),对于每个有序对,他要么将(x_i)放入集合(mathit A)中,要么将(y_i)放入集合(mathit B)中,问$ min( ext{max(A)2+max(B)}, ext{max(A)+max(B)2})(最小为多少,只需要将)pair(x_i,y_i)(排序,求)min(x_i+max(y_{i+1;k})2,x_i2+max(y_{i+1;k}))$的最小值即可。

    Code

    #include<bits/stdc++.h>
    #define rep(i,x,n) for(int i=x;i<=n;i++)
    #define per(i,n,x) for(int i=n;i>=x;i--)
    #define sz(a) int(a.size())
    #define rson mid+1,r,p<<1|1
    #define pii pair<int,int>
    #define lson l,mid,p<<1
    #define ll long long
    #define pb push_back
    #define mp make_pair
    #define se second
    #define fi first
    using namespace std;
    const double eps=1e-8;
    const int mod=1e9+7;
    const int N=1e5+10;
    const ll inf=1e18;
    int T,n,k;
    int a[2020],b[2020],c[2020],d[2020];
    ll gao(){
    	vector<pii>v;
    	rep(i,0,k-1) v.pb(mp(c[i],d[i]));
    	sort(v.begin(), v.end());
    	ll ans=v[sz(v)-1].fi,mx=0;
    	for(int i=sz(v)-1;i>=0;i--){
    		mx=max(mx,(ll)v[i].se);
    		if(i==0){
    			ans=min(ans,mx);
    		}else{
    			ans=min(ans,v[i-1].fi+mx*2);
    			ans=min(ans,v[i-1].fi*2+mx);
    		}
    	}
    	return ans;
    }
    void solve(){
    	cin>>n>>k;
    	rep(i,0,k-1){
    		cin>>a[i];
    	}
    	rep(i,0,k-1){
    		cin>>b[i];
    	}
    	sort(a,a+k);
    	sort(b,b+k);
    	ll ans=inf;
    	rep(i,0,k-1){
    		rep(j,0,k-1) c[j]=(a[j]-b[(i+j)%k]+n)%n,d[j]=(b[(i+j)%k]-a[j]+n)%n;
    		ans=min(ans,gao());
    	}
    	printf("%lld
    ",ans);
    }
    int main(){
    	ios::sync_with_stdio(false);
    	cin>>T;
    	while(T--){
    		solve();
    	}
    	return 0;
    }
    
  • 相关阅读:
    汉语-词语:养生
    汉语-词语:道家美学
    汉语-词语:审美
    人物-书法家:王羲之
    人物-道家:庄子
    汉语-词语:含蓄
    关于finfo_file函数获取文件mime值验证出错的问题
    第一个Hello,OS World操作系统
    Lead软件项目半年感受
    Cts框架解析(15)-任务运行完
  • 原文地址:https://www.cnblogs.com/xyq0220/p/14133192.html
Copyright © 2011-2022 走看看