Codeforces Forethought Future Cup Elimination Round 选做
Posted farway17
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Codeforces Forethought Future Cup Elimination Round 选做相关的知识,希望对你有一定的参考价值。
施工中。。。
1146C Tree Diameter
题意
交互题。有一棵 (n(nle 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
",ans);
fflush(stdout);
}
}
以上是关于Codeforces Forethought Future Cup Elimination Round 选做的主要内容,如果未能解决你的问题,请参考以下文章
Codeforces1238F. The Maximum Subtree(树形dp)