社区讨论
WA#4 75pts
P7043「MCOI-03」村国参与者 1已保存回复 0
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @lury1k05
- 此快照首次捕获于
- 2024/04/09 13:31 2 年前
- 此快照最后确认于
- 2024/04/09 18:25 2 年前
CPP
#include<bits/stdc++.h>
using namespace std;
int T;
int n,u,v,a[2000005],mx,li,my,lj;
long long m;
int main(){
cin>>T;
while(T--){
cin>>n>>m;
memset(a,0,sizeof(a));
mx=my=li=lj=0;
for(int i=1;i<=n;i++){
scanf("%d",a+i);
if(a[i]>mx){
mx=a[i];
li=i;
}
}
for(int i=1;i<n;i++){
scanf("%d%d",&u,&v);
if(u==li)
if(a[v]>my){
my=a[u];
lj=v;
}
if(v==li)
if(a[u]>my){
my=a[u];
lj=u;
}
}
if(!lj){
cout<<li<<"\n";
continue;
}
if(a[li]-a[lj]>m)
cout<<li;
else if(a[li]-a[lj]==m)
cout<<min(li,lj);
else
if((m-(a[li]-a[lj]))%2==0)
cout<<min(li,lj);
else
cout<<max(li,lj);
cout<<"\n";
}
return 0;
}
做法:输入后先得出最大与最大附近的最大,然后直接判断
但是莫名其妙WA#4,看题解貌似也没啥问题
不过试过了,不是因为没有 特判1 或是 没有建图
回复
共 0 条回复,欢迎继续交流。
正在加载回复...