题目


分析

考虑询问所有点可以知道两个标记点路径上的一个点,

以该点为根建树,可以二分出离该点较远的一个标记点,

再用这个标记点一次询问推出另一个,最多11次询问


代码

#include <cstdio>
#include <cctype>
#include <cstring>
#include <algorithm>
#include <vector>
#define rr register
using namespace std;
const int N=1011; struct node{int y,next;}e[N<<1]; char S[11];
vector<int>K[N]; int t,n,et,Top,as[N],dep[N],ans1,ans2,len;
inline signed iut(){
rr int ans=0; rr char c=getchar();
while (!isdigit(c)) c=getchar();
while (isdigit(c)) ans=(ans<<3)+(ans<<1)+(c^48),c=getchar();
return ans;
}
inline void dfs(int x,int fa,int Dep){
t=max(t,Dep),K[Dep].push_back(x);
for (rr int i=as[x];i;i=e[i].next)
if (e[i].y!=fa) dfs(e[i].y,x,Dep+1);
}
signed main(){
for (rr int T=iut();T;--T){
n=iut(),et=1,Top=0;
memset(as,0,sizeof(as));
for (rr int i=1;i<n;++i){
rr int x=iut(),y=iut();
e[++et]=(node){y,as[x]},as[x]=et;
e[++et]=(node){x,as[y]},as[y]=et;
}
printf("? %d",n);
for (rr int i=1;i<=n;++i) printf(" %d",i);
putchar(10),fflush(stdout);
ans1=iut(),len=iut(),dfs(ans1,0,0);
rr int l=(len-1)/2+1,r=min(len,t);
while (l<=r){
rr int mid=(l+r)>>1,LEN,SIZ=K[mid].size();
printf("? %d",SIZ);
for (rr int i=0;i<SIZ;++i) printf(" %d",K[mid][i]);
putchar(10),fflush(stdout);
ans2=iut(),LEN=iut();
if (LEN==len) ans1=ans2,l=mid+1;
else r=mid-1;
}
for (rr int i=0;i<=t;++i) K[i].clear(); t=0;
dfs(ans1,0,0);
rr int SIZ=K[len].size();
printf("? %d",SIZ);
for (rr int i=0;i<SIZ;++i) printf(" %d",K[len][i]);
putchar(10),fflush(stdout),ans2=iut(),iut();
for (rr int i=0;i<=t;++i) K[i].clear(); t=0;
printf("! %d %d\n",ans1,ans2);
fflush(stdout),scanf("%s",S+1);
}
return 0;
}

#交互#CF1370F2 The Hidden Pair (Hard Version)的更多相关文章

  1. CF1370F2-The Hidden Pair(Hard Version)【交互题,二分】

    正题 题目链接:https://www.luogu.com.cn/problem/CF1370F2 题目大意 \(T\)组数据,给出\(n\)个点的一棵树,有两个隐藏的关键点.你每次可以询问一个点集, ...

  2. Solution -「CF 1370F2」The Hidden Pair (Hard Version)

    \(\mathcal{Description}\)   Link (hard) & Link (easy).   这是一道交互题.   给定一棵 \(n\) 个结点的树,其中有两个是特殊结点. ...

  3. layui 父子弹窗数据交互(包含子弹窗自己关闭并给父弹窗数据填充)

    //父级弹窗 function showAlertOrg() { layui.use('layer', function () { var body; var index = layer.open({ ...

  4. 利用Netty构建自定义协议的通信

    在复杂的网络世界中,各种应用之间通信需要依赖各种各样的协议,比如:HTTP,Telnet,FTP,SMTP等等. 在开发过程中,有时候我们需要构建一些适应自己业务的应用层协议,Netty作为一个非常优 ...

  5. Python开发入门与实战1-开发环境

    1.搭建Python Django开发环境 1.1.Python运行环境安装 Python官网:http://www.python.org/ Python最新源码,二进制文档,新闻资讯等可以在Pyth ...

  6. 跨平台移动框架iMAG开发入门

    iMAG是一个非常简洁高效的移动跨平台开发框架,开发一次能够同一时候兼容Android和iOS平台,有点儿Web开发基础就能非常快上手.当前移动端跨平台开发的框架有非常多,但用iMAG另一个优点,就是 ...

  7. 可扩展标记语言XML

    XML简述 XML用于描述数据,是当前处理结构化文档信息的有力工具.与操作系统编程语言的开发平台无关,可以实现不同系统之间的数据交互. 结构 <?xml version="1.0&qu ...

  8. Quartz简单实现定时任务管理(SSM+Quartz)

    首先你得有一个用Maven搭好的SSM框架,数据库用的Mysql,这里只有关于Quartz的部分.其实有大神总结的很好了,但做完后总有些地方不一样,所以写这篇作为笔记.这里先把大神的写的分享给大家:h ...

  9. [python] python django web 开发 —— 15分钟送到会用(只能送你到这了)

    1.安装python环境 1.1 安装python包管理器: wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py   1. ...

  10. scrapy 基础

    安装略过 创建一个项目 scrapy startproject MySpider #或者创建时存储日志scrapy startproject --logfile='../logf.log' MySpi ...

随机推荐

  1. 5分钟教你从爬虫到数据处理到图形化一个界面实现山西理科分数查学校-Python

    5分钟教你从爬虫到数据处理到图形化一个界面实现山西理科分数查学校-Python 引言 在高考结束后,学生们面临的一大挑战是如何根据自己的分数找到合适的大学.这是一个挑战性的任务,因为它涉及大量的数据和 ...

  2. Sliver C2通关渗透攻击红队内网域靶场2.0

    准备 2012 server 第一台机器开机后,要在C:\Oracle\Middleware\Oracle_Home\user_projects\domains\base_domain​手动运行下 s ...

  3. Mysql使用limit深度分页优化

    1.背景: mysql使用select * limit offset, rows分页在深度分页的情况下.性能急剧下降. 例如:select * 的情况下直接⽤limit 600000,10 扫描的是约 ...

  4. springboot,简要记录,方便复习,

    boot 笔记第一步新建工程,导包,由于boot的数据库框架是用mybtis -paus,所以关于数据库系统那儿不用色选mybatis ,需要重新maven导包完整导包以下人容: <?xml v ...

  5. AMD Intel CPU 对比图

  6. C++追根究底(持续更新)

    目录 头文件 " " 与 <>的区别 带 .h 和不带 .h 的区别 带 c前缀 和不带 c前缀 的区别 宏定义 特殊符号:#,##,#@ 防止一个头文件被重复包含 d ...

  7. gcc makefile 模板

    一 基本概况 在做基本的c代码测试的时候,经常会遇到gcc做编译,作为一个工程师,不存点模板,每次都是自己写的话,那不是非常的浪费体力,程序员本来就累了.在这上面浪费不少时间,吃力不讨好啊. 保存一些 ...

  8. 逆向通达信Level-2 续八 (BackTrace, Trace任意TdxW.exe内部函数, Breakin)

    TdxW kun anti-debugging, i debug you without a debugger. 添加bt命令,BackTrace 下图是hack某一个函数后使用bt命令进行Trace ...

  9. undefined reference to vtable for "xxx::xxx" in QT(已解决)

    PS:要转载请注明出处,本人版权所有. PS: 这个只是基于<我自己>的理解, 如果和你的原则及想法相冲突,请谅解,勿喷. 前置说明   本文发布于 2015-02-09 15:37:25 ...

  10. 不使用microlib实现STM32串口printf重定向:

    不使用microlib实现STM32串口printf重定向: 突然发现有一篇markdown忘记上传了,补一下 注:使用的是CubeMX生成的工程文件 生成后,在usart.c中添加如下代码: //u ...