首页 > 其他分享 >Codeforces Round 760 (Div. 3) D. Array and Operations(贪心)

Codeforces Round 760 (Div. 3) D. Array and Operations(贪心)

时间:2023-03-23 16:11:53浏览次数:56  
标签:Operations 10 const int 760 Codeforces cin LL 贪心

https://codeforces.com/contest/1618/problem/D

题目大意:

给定一个长度为n的数组a,我们可以进行m次操作:

每次操作可以任意选择两个不同的下标的数字x和y,并把它两删除,替换成x/y(但是x/y不可以再被选择进行除数运算了)。

问我们这样剩下来的数列的最小值是多少?
input
5
7 3
1 1 1 2 1 3 1
5 1
5 5 5 5 5
4 2
1 3 3 7
2 0
4 2
9 2
1 10 10 1 10 2 7 10 3
output
2
16
0
6
16

详解见代码内部注释

#include<bits/stdc++.h>
using namespace std;
typedef long long LL;
typedef pair<LL,LL> PII;
const LL MAXN=1e18,MINN=-MAXN;
const LL N=2e6+10,M=4004;
const LL mod=100000007;
const double PI=3.1415926535;
#define endl '\n'
LL a[N];
int main()
{
    cin.tie(0); cout.tie(0); ios::sync_with_stdio(false);
    int T=1;
    cin>>T;
    while(T--)
    {
        LL n,m;
        cin>>n>>m;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i];
        }
        sort(a+1,a+1+n);
        LL res=0;
        //前面的数字从贪心的角度来说一定都是最小的,如果操作了是一定会亏损的
        for(int i=1;i<=n-2*m;i++)
        {
            res+=a[i];
        }
        map<int,int> mp;
        for(int i=n-2*m+1;i<=n;i++)
        {
            mp[a[i]]++;
        }
        int maxn=0;
        for(auto i:mp)
        {
            maxn=max(maxn,i.second);//找到相同数字的最大数量
            //其它的数量可以彼此互相抵消
        }
        if(maxn>m) res+=maxn-m;//如果数量会超过m个,说明这m个可以全部抵消,其它的数量相除==1
        cout<<res<<endl;
    }
    return 0;
}

标签:Operations,10,const,int,760,Codeforces,cin,LL,贪心
From: https://www.cnblogs.com/Vivian-0918/p/17247844.html

相关文章

  • Codeforces 70D. Professor's task
    题目链接:D-Professor'stask题目大意:初始给三个点,之后要求实现两种操作:加点;判断给定点是否在凸包内部。动态凸包板子题,留档怕忘了,参考https://www.cnblogs.com/enzymi......
  • Codeforces Round 644 (Div. 3) D. Buying Shovels(数论)
    https://codeforces.com/contest/1360/problem/DD.BuyingShovels题目大意:一个人想买正好n把铲子。店内有k种包装的铲子:第i种包装正好由i把铲子组成(1≤i≤k)。这家......
  • Codeforces Round 859 (Div
    F.BouncyBall给定\(n×m\)矩形,起点\(st\),终点\(ed\),有一小球从起点出发,每次可以选择4个方向,如果碰到边界就反弹,询问最后能否到达终点题解:\(DFS\)+\(map\)记录状......
  • Edu Round 板刷计划 1. Educational Codeforces Round 1 题解
    ChangeLog:2023.03.21开坑。A-TrickySum简单题。注意到\(n\)以内\(2\)的幂次只有\(O(\logn)\)个,因此只要先算出\(1\)~\(n\)里所有数的和再减去\(2\)......
  • Codeforces Round 368 (Div. 2) D. Persistent Bookcase 主席树维护bitset
    在学主席树时找到了这道题本来yyyy了一个二维的主席树这种东西,然后发现很多信息好像维护不了观察到n和m都很小,考虑把一整行看成一个节点,开一个bitset然后区间取反、单点......
  • Codeforces Round 857 (Div. 2) C-The Very Beautiful Blanket
    题目地址题意:构造一个二维数组,使得任意一个4*4的子矩阵满足:A11⊕A12⊕A21⊕A22=A33⊕A34⊕A43⊕A44A13⊕A14⊕A23⊕A24=A31⊕A32⊕A41⊕A42Solution(思路来源:知乎xioac......
  • Codeforces Round 859 (Div. 4)
    A.PlusorMinus#include<bits/stdc++.h>usingnamespacestd;int32_tmain(){ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr);i......
  • vRealize Operations Manager 安全补丁修复
    vRealizeOperationsManager安全补丁修复背景:记录一次安全同事在检测中发现vRealizeOperationsManager存在安全漏洞,需要整改修复,于是到VMware官网找到对应版本vReal......
  • CF 1368B Codeforces Subsequences
    题目地址题意:给你一个数n,构造一个字符串,使得至少有n个子串为codeforcesSolution用贪心的思想肯定是只在codeforces基础上修改对于每个字符,对答案的贡献都是乘以字符的......
  • Codeforces Round 858 (Div. 2)
    Preface这场CF打的好难受啊,A刚开始忘记切换语言了CE了两发,B漏了一种情况挂了一发,C纯靠暴力找性质,D比赛时没人写我题目都没仔细看然后E本来秒出了解法,结果就是因为unorder......