Odd-Even Subsequence T17 D57
Odd-Even Subsequence T17 D57
Problem - D - Codeforces (Unofficial mirror site, accelerated for Chinese users)
思路
交互题
将每条边按dfs序保存起来。
每次询问一半的边,若询问的值不等于最大值,递归另一半。
参考代码
#include
#define ll long long
#define pii pair
#define fi first
#define se second
#define pb push_back
#define si size()
#define ls (p<<1)
#define rs ((p<<1)|1)
#define mid (t[p].l+t[p].r)/2
using namespace std;
ll read(){ll x=0,f=1;char ch=getchar();while(ch<'0'||ch>'9'){if(ch=='-') f=-1;ch=getchar();}while(ch>='0'&&ch<='9'){x=(x<<1)+(x<<3)+(ch^48);ch=getchar();}return x*f;}
inline void Prin(ll x){if(x < 0){putchar('-');x = -x;}if(x > 9) Prin(x / 10);putchar(x % 10 + '0');}
const int inf=0x3f3f3f3f;
const ll mod=1000000007;
const int qs=2e3+7;
int T,n,k,a[qs],cnt=0;
int u[qs];
vector< int > v[qs];
vector< pii > ans;
void dfs(int x,int fa){
for(int i=0;i>ft;
if(ft==Max){
Max=ft;
solve(l,md);
}
else{
solve(md+1,r);
}
}
int main(){
cin>>n;
int x,y;
for(int i=1;i>x>>y;
v[x].pb(y);
v[y].pb(x);
}
dfs(1,0);
cout<<"?";
cout<<" "<>Max;
solve(0,ans.size()-1);
return 0;
}