• 洛谷 U140956 新漂亮国大选


    洛谷 U140956 新漂亮国大选

    洛谷传送门

    题目背景

    漂亮国是一个“团结”,“民主”的国家。

    题目描述

    现在,漂亮国马上要迎来2020年大选,大选要选出一个党派作为国家的执政党。因为漂亮国很“民主”,所以漂亮国有MM个政党:共和党、民主党、社会党、绿党、红党......现在,你被聘请为漂亮国红党选举总顾问,你事先知道了参与大选的选民的数量为NN ,并且,对于每一位选民,你知道他将要选举哪一个政党。你担忧地发现,如果正常选举,你的党派并不会赢。不过,你又发现:每一位选民都会在接受一定数额的漂亮金之后改变他的主意。如果你给第ii位选民c_ic**i数额的漂亮金,他就会选举你希望他选举的红党。

    那么,如果红党要赢得这场选举,红党就必须拥有比其它政党都多的选票。你向红党中央递交了你的计划:显然,这需要大量的资金。红党对选举势在必得,但是,他们希望花费的漂亮金尽可能少。

    请你再算一下:最少需要多少漂亮金,才能保证红党赢得胜利。

    输入格式

    从文件election.inelectio**n.i**n中读入数据。

    第一行包含两个整数NN和MM。表示选民数量和政党数量。

    接下来NN行,每一行两个整数p_ip**i和c_ic**i,表示这一位选民将会选举政党的编号,和使他改变主意的最少漂亮金数额。

    特别地,红党的编号是11。

    输出格式

    输出到文件election.outelectio**n.out中。

    一个整数ansans,表示使红党赢得选举所需花费的最少漂亮金数额。


    命题背景:

    Biden WINS!

    一直想出一个美国大选之类的背景。

    之前尝试了一道,也就是漂亮国大选1.

    但是没有SPJ就太水,有SPJ我不会。

    所以正好看到了这道,那就改成这个吧。


    题解:

    贪心+二分。

    代码:

    #include<cstdio>
    #include<vector>
    #include<algorithm>
    #define ll long long
    using namespace std;
    const int maxn=1e5+5;
    int n,m;
    vector<int> v[maxn];
    ll check(int x)//买x张选票能否更优
    {
    	ll ret=0;
    	int tot=0;
    	vector<int> tmp;
    	for(int i=1;i<maxn;++i)
    	{
    		int j=0,k=v[i].size();
    		while(k>=x) 
    			ret+=v[i][j++],--k,++tot;
    		while(j<v[i].size()) 
    			tmp.push_back(v[i][j++]);
    	}
    	sort(tmp.begin(),tmp.end());
    	for(int i=0;i<tmp.size();++i)
    	{
    		if(tot>=x) 
    			break;
    		ret+=tmp[i],++tot;
    	}
    	return ret;
    }
    int main()
    {
    	scanf("%d%d",&n,&m);
    	for(int i=1;i<=n;i++)
    	{
    		int p,c;
    		scanf("%d%d",&p,&c);
    		v[p].push_back(c);
    	}
    	for(int i=1;i<maxn;i++)
    		sort(v[i].begin(),v[i].end());
    	for(int i=0;i<v[1].size();i++)
    		v[1][i]=0;
    	int l=1,r=n;
    	while(l<=r)
    	{
    		int mid=(l+r)>>1;
    		if(check(mid)<check(mid+1))
    			r=mid-1;
    		else
    			l=mid+1;
    	}
    	printf("%lld
    ",check(l));
    	return 0;
    }
    
  • 相关阅读:
    element-ui 多张图上传
    js json生取key,value 值
    iview DatePicker 回显验证报错
    iview的Select控制value为数字类型时表单验证无法通过
    iview 自定义树形
    tree 树形递归修改 key
    根据月份选择 生成这个月的每一天
    微信小程序超出隐藏省略号和自动换行
    uni-app picker select 取想要的值
    element-ui 表格fixed 样式修改
  • 原文地址:https://www.cnblogs.com/fusiwei/p/13998502.html
Copyright © 2020-2023  润新知