题解: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;
}
作者相信诚实的你不会抄题解的~~