题解:P15063 [UOI 2024 II Stage] Creating an Array

· · 题解

不是,这道题还可以发题解?!

看到这句话:“ 即其所有元素对的连接之和,在由这些相同数字组成的所有可能数组中,是最大的。”

蒟蒻我便灵机一动:不就是贪心吗??

要使连接和最大,就要使最大的数在前面,最小的数在后面。

下面献上宝贵的代码

#include<bits/stdc++.h>
using namespace std;
inline int read(){
   register int s=0,w=1;
   char ch=getchar();
   while(ch<'0'||ch>'9'){if(ch=='-')w=-1;ch=getchar();}
   while(ch>='0'&&ch<='9')s=s*10+ch-'0',ch=getchar();
   return s*w;
}
vector<int> v; 
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    for(int i=1;i<=10;i++)v.push_back(read());
    for(int i=9;i>=0;i--)while(v[i]--)cout<<i<<' ';
    return 0;
}

作者相信诚实的你不会抄题解的~~