网站参数错误怎么解决方法,WordPress推送至QQ,博采网络股吧,学生做的网站*这种题好像不用写题解... 题意: 一个人要改动别人的实验记录,实验记录记录是一个集合 实验记录本身满足:$max(X)-min(X)2$ 改动结果要求: 1.新的集合平均值和之前的一样 2.新的集合,$max(Y)max(X),min(Y)min(X)$ 求新一个和之前相同数值最少的新记录 题解: 首先考…*这种题好像不用写题解... 题意: 一个人要改动别人的实验记录,实验记录记录是一个集合 实验记录本身满足:$max(X)-min(X)2$ 改动结果要求: 1.新的集合平均值和之前的一样 2.新的集合,$max(Y)max(X),min(Y)min(X)$ 求新一个和之前相同数值最少的新记录 题解: 首先考虑不同情况, 如果$max-min1$ :因为要保证平均值且值域受限制不变,无法改变值(增加一个值之后,要相应的把另外一值减小,而数值只有2/1种,改动没有意义) 如果$max-min2$ 我们把所有值分为 $max,mid,min$ 三类那么就有了2种选择: 1.把所有的$mid$两两分组 变成$max,min$ 2.把所有的$max,min$两两组合,变成$mid$ 我们比较一下谁比较就行了... 1A #include bits/stdc.h
#define ll long long
#define rep(ii,a,b) for(int iia;iib;ii)
using namespace std;
const int maxn1e510;
int casn,n,m,k;
int num[maxn];
int cnt[3];
int main(){rep(i,1,n) cinnum[i];sort(num1,num1n);rep(i,1,n)cnt[num[i]-num[1]];ll ans1cnt[2]cnt[0]cnt[1]%2;ll ans2max(cnt[2],cnt[0])-min(cnt[2],cnt[0])cnt[1];ll ansmin(ans1,ans2);if(num[n]-num[1]1) ansn;else if(ans1ans2){cnt[0]cnt[1]/2;cnt[2]cnt[1]/2;cnt[1]%2;}else {cnt[1]2*min(cnt[0],cnt[2]);if(cnt[2]cnt[0]) {cnt[2]-cnt[0];cnt[0]0;}else{cnt[0]-cnt[2];cnt[2]0;}}coutansendl;while(cnt[0]--) coutnum[1] ;while(cnt[1]--) coutnum[1]1 ;while(cnt[2]--) coutnum[1]2 ;return 0;
} 转载于:https://www.cnblogs.com/nervendnig/p/9236681.html