社区讨论
不知道为什么过不了
B3675[语言月赛 202210] 军训参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lv0s44cv
- 此快照首次捕获于
- 2024/04/15 17:55 2 年前
- 此快照最后确认于
- 2024/04/15 20:19 2 年前
用能过的代码和我的测了一些数据发现一模一样;但是到你咕就不行了
CPP#include <iostream>
#include <vector>
#include <cmath>
#include <utility>
using namespace std;
double distidy(vector<int> ut,int m){
double sum;
for (int j=1;j<=m;j++){
sum+=ut[j-1];
}
sum=sum/m;
double sum1;
for (int k=1;k<=m;k++){
sum1+=pow((ut[k-1]-sum),2);
}
sum1=sum1/m;
return sum1;
}
int main(){
int m,n;
vector<int> leg,arm;
cin>>m>>n;
arm.resize(n*m+1,0);
leg.resize(n*m+1,0);
for (int i=0;i<n*m;i++){
//cout<<i;
cin>>arm[i];
//cout<<i;
//if(i==n*m){break;}
}
for (int i=0;i<n*m;i++){
cin>>leg[i];
//cout<<i;
//for(auto j:leg){cout<<j;}
//cout<<endl;
}
//cout<<"p";
vector<double> sz(n+1);
for (int i=0;i<n;i++){
vector<int> za,zl;
za.assign(arm.begin()+i*m,arm.begin()+m+i*m);
zl.assign(leg.begin()+i*m,leg.begin()+m+i*m);
sz[i]=distidy(za,m)+distidy(zl,m);
cout<<sz[i]<<" "<<endl;
}
int bol=0;
int red=0;
vector<pair<int,int>> redd;
for(int j=0;j<n;j++){//冒泡
for(int i=0;i<n;i++){
if(sz[i]>sz[i+1]&&i+1<n){
bol=1;
//cout<<"6";
//cout<<sz[i]<<" "<<sz[i+1]<<endl;
double tmp=sz[i];
sz[i]=sz[i+1];
sz[i+1]=tmp;
red++;
//cout<<i<<" "<<i+1<<endl;
redd.push_back({i+1,i+2});
}
}
}
//for(auto i:sz){cout<<i<<" ";}
if(red){cout<<red<<endl;}
for(auto i:redd){cout<<i.first<<" "<<i.second<<endl;}
if(!bol){cout<<0;}
}
回复
共 0 条回复,欢迎继续交流。
正在加载回复...