首页 > 其他分享 >CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)- Make It Permutation

CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)- Make It Permutation

时间:2023-04-02 19:33:07浏览次数:65  
标签:Rated int ans1 Make vec n1 Div ll

题目链接:Problem - C - Codeforces

 

 

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
#define endl "\n"
int main()
{
    ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    int T = 1;
    cin >> T;
    while (T--)
    {
        ll n1, c, d;
        cin >> n1 >> c >> d;
        ll ans = 0;
        vector<ll>vec;
        map<ll, int>mp;
        for (int i = 1; i <= n1; i++)
        {
            ll x;
            cin >> x;
            if (!mp[x]) {
                vec.push_back(x);
                mp[x] = 1;
            }
            else ans += c;
        }
        sort(vec.begin(), vec.end());
        int n = vec.size();
        ll maxn = vec[n - 1];
        ll ans1 = LLONG_MAX;
        for (int i = 0; i < n; i++)
        {
            ll res = (vec[i] - 1 - i) * d + (n - i - 1) * c;
            ans1 = min(ans1, res);
        }
        ll ans2 = n1 * c + d;
        if (mp[1])ans2 = (n1 - 1) * c;
        cout << min(ans1+ans,ans2) << endl;
    }
    return 0;
}

 

标签:Rated,int,ans1,Make,vec,n1,Div,ll
From: https://www.cnblogs.com/zhujio/p/17281069.html

相关文章

  • CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)
    题目链接C核心思路其实这个操作无非就两种:插入和删除。我们可以把重复的元素都先删除,因为这肯定是每个操作必须要做的。我们可以从最基础的情况出发也就是怎么构造出来\(1\sima[i]\)的序列呢。肯定是吧\(i\simn\)之后的序列都删除吧,然后把前面缺少的再补上去吧。所以我们......
  • qmake学习
    在Qt的.pro文件中,有许多变量可以用于配置和管理项目的构建过程以下是Qt中常用的.pro变量及其说明:SOURCES:指定项目源代码文件的名称和路径,以空格分隔HEADERS:指定项目头文件的名称和路径,以空格分隔FORMS:指定QtDesignerUI文件的名称和路径,以空格分隔RESOURCES:指定Qt资源文件的名称......
  • SP181 SCUBADIV - Scuba diver 题解
    题目传送门题目大意潜水员有\(n\)个气缸,每个气缸能够提供容量为\(o_i\)的氧气和容量为\(d_i\)的氮气,每个气缸的重量为\(w_i\)。给出潜水员所需要的氧气量和氮气量,求所需气缸的总重的最低限度是多少。解题思路对于每个气缸,有两种不同的费用:氧气和氮气,需要满足这两个条......
  • 初见 cmake
    初见cmakecmake是自动生成构建系统的一个工具。cmake本身不是构建系统,它是一个生成构建系统的工具。或者说cmake不是一个构建工具,是一个能根据平台生成对应平台构建系统配置的构建工具。Cmake构建系统Unix平台的最常见的C/C++构建工具make,根据Makefile编译项目。而......
  • CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!) A-E
    从C题开始写好了MakeItPermutation首先我们分析假如我们确定了要选择一个长度为n的序列,该怎么计算代价很明显一个是算保留多少个一个是算要加多少个,然后如果我们算完了选择长度n-1的序列那么更新答案的时候只需要看n这个数字是否存在就可以了,然后更新一下删掉多少个数字......
  • PostgreSQL 13 pacemaker 高可用集群
    环境介绍 操作系统版本CentOSLinuxrelease7.8.2003(Core)  数据库版本psql(13.10)  PCS集群版本[root@hd-clw-select-proxysql01~]# rpm-qa|greppacemakerpacemaker-libs-1.1.23-1.el7_9.1.x86_64pacemaker-cli-1.1.23-1.el7_9.1.x86_64pacemaker-1.1.2......
  • Codeforces Round 861 (Div. 2)
    题目链接C核心思路这个思路说实话有点玄学,也就是我们前面的数位按照l或者r的相同数位来填补,后面就填相同的数字也就是比如l是2345我们可以是2999,2888,23111,23777.这样构造好像肯定是最小的。但是好好巩固下数位dp来做这道题还是更好的。#include<iostream>#include<cstr......
  • makefile使用总结(一)
    本文参考《跟我一起写Makefile》编写,并做了一些适合个人习惯的修改,稍加总结而成。 首先提出的问题是:什么是makefile?为什么要用makefile?如何使用makefile?为了回答这三个问题,下面就围绕这些问题做一些记录。什么是makefile?简单点说makefile是一个描述了整个工程的编译规......
  • CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!)(CF1810)A~D题题解
    今天采用的是新格式。CF1810ABeautifulSequence点击查看原题点击查看思路如果一个数字的值\(v\),不大于当前的位置\(p\),那我们可以通过删除\(p-v\)个数字,使它们两个对应上。比如\([1,7,2,5,3]\)中的\(3\),其数值为\(3\),位置为\(5\),数值\(3\)小于等于\(......
  • CodeTON Round 4 (Div. 1 + Div. 2, Rated, Prizes!) A-D题解
    题目地址A-BeautifulSequence题意:给出一个数组,问是否存在任意一个子区间,存在i,使得ai=iSolution直接比较当前的数和i的大小就行了,当前为x,如果要求答案存在,必须有i>=xvoidsolve(){ intn;cin>>n; intflag=0; for(inti=1;i<=n;i++) { intx;cin>>x; if(i>=x) {......