标签:eth 分组 iam \n code mina fflush cpp 基本
施工中。。。
交互题。有一棵 \(n(n\le 100)\) 个点的树,你可以进行不超过 \(9\) 次询问,每次询问两个点集中两个不在同一点集的点的最大距离。求树的直径。
和 GXOI2019旅行者基本类似,二进制分组,对于每一位,编号当前位为 \(0\) 的分到一组,当前位为 \(1\) 的分到另一组。最大询问次数为 \(\log 100 = 7\)
#include<cstdio>
int v1[105],v2[105];
int main()
{
int T; scanf("%d",&T);
while(T--)
{
int n,ans=0; scanf("%d",&n);
for(int i=0;i<=6;++i)
{
int id1=0,id2=0;
for(int j=1;j<=n;++j) (j&(1<<i))?v1[++id1]=j:v2[++id2]=j;
if(id1&&id2)
{
printf("%d %d ",id1,id2);
for(int i=1;i<=id1;++i) printf("%d ",v1[i]);
for(int i=1;i<=id2;++i) printf("%d ",v2[i]);
puts(""); fflush(stdout);
int x; scanf("%d",&x);
if(x>ans) ans=x;
}
}
printf("-1 %d\n",ans);
fflush(stdout);
}
}
Codeforces Forethought Future Cup Elimination Round 选做
标签:eth 分组 iam \n code mina fflush cpp 基本
原文地址:https://www.cnblogs.com/farway17/p/10752671.html