社区讨论
蒟蒻求助大佬,报错
P1309[NOIP 2011 普及组] 瑞士轮参与者 3已保存回复 9
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 9 条
- 当前快照
- 1 份
- 快照标识符
- @lo88e3dj
- 此快照首次捕获于
- 2023/10/27 14:27 2 年前
- 此快照最后确认于
- 2023/10/27 14:27 2 年前
CPP
#include <iostream>
#include <cstdio>
#include <bits/stdc++.h>
using namespace std;
int mn=200010;
struct node{
int num,power,score;
}d[200010],b[200010],c[200010];
int n,r,q;
int cmp(node a,node b){
if(a.score>b.score) return true;
if(a.score<b.score) return false;
if(a.num>b.num) return false;
return true;
}
void solve(){
int i=0,j=0,l=-1,k;
while(1){
if(i==n/2){
for(k=j;k<i;k++)
l++,d[l]=c[k];
break;
}
else{
if(j==n/2){
for(k=i;k<j;k++)
l++,d[l]=b[k];
break;
}
else{
if(b[i].score<c[j].score || (b[i].score==c[j].score && b[i].num>c[j].num))
l++;
d[l]=c[j];
j++;
}
else{
l++;
d[l]=b[i];
i++;
}
}
}
}
int main(){
cin>>n>>r>>q;
n*=2;
for(int i=0;i<n;i++){
d[i].num=i;
cin>>d[i].score;
}
for(int i=0;i<n;i++) cin>>d[i].power;
sort(d,d+n,cmp);
for(int j=1;j<=r;j++){
for(int i=0;i<n;i+=2){
int t1=d[i].power,t2=d[i+1].power,t3=i/2;
if(t1>t2){
b[t3]=d[i];
c[t3]=d[i+1];
b[t3].score++;
}
else{
c[t3]=d[i];
b[t3]=d[i+1];
b[t3].score++;
}
}
solve();
}
cout<<d[q-1].num+1;
return 0;
}
老是报错
回复
共 9 条回复,欢迎继续交流。
正在加载回复...