地址:https://codeforces.com/contest/1174/problem/F

思路:思维+分治

官方题解:https://codeforces.com/blog/entry/67388

Code:

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<vector>
using namespace std;
typedef long long LL;
typedef pair<int,int> pr;const int MAX_N=2e5+5;
int n,ans;
vector<int> e[MAX_N];
int sz[MAX_N],dis[MAX_N];
int d[MAX_N],Pre[MAX_N],dx;void DFS(int u,int pre);
void Find(int u);
int get(int u,int pre,int v1,int si);
int main()
{scanf("%d",&n);int u,v;for(int i=1;i<n;++i){scanf("%d%d",&u,&v);e[u].push_back(v);e[v].push_back(u);}DFS(1,0);printf("d 1\n");fflush(stdout);scanf("%d",&dx);Find(1);cout<<"! "<<ans<<endl;return 0;
}void DFS(int u,int pre)
{sz[u]=1;  d[u]=u;    Pre[u]=pre;int Max=0;for(auto v:e[u])if(v!=pre){dis[v]=dis[u]+1;DFS(v,u);sz[u]+=sz[v];if(d[u]==u||Max<sz[v]){Max=sz[v];    d[u]=d[v];}}
}void Find(int u)
{if(dis[u]==dx){ans=u;   return;}int v=d[u],dv,dxv;printf("d %d\n",v);fflush(stdout);scanf("%d",&dxv);int vi,ds=(dx+dis[v]-dxv)/2;vi=get(u,Pre[u],d[u],ds-dis[u]);if(ds==dx){ans=vi;}else{printf("s %d\n",vi);fflush(stdout);scanf("%d",&vi);Find(vi);}
}int get(int u,int pre,int v1,int si)
{if(!si)    return u;int res;for(auto v:e[u])if(v!=pre&&d[v]==v1){res=get(v,u,v1,si-1);break;}return res;
}

Codeforces Round #563 (Div. 2)-F. Ehab and the Big Finale相关推荐

  1. Codeforces Round #563 (Div. 2) F. Ehab and the Big Finale

    后续: 点分治标程 使用father数组 比使用vis数组优秀(不需要对vis初始化) https://codeforces.com/problemset/problem/1174/F https:/ ...

  2. Codeforces Round #628 (Div. 2) F. Ehab‘s Last Theorem dfs树

    传送门 文章目录 题意: 思路: 题意: 给你个nnn个点mmm条边的图,可以选择完成以下两个任务中的一个: (1)(1)(1)找出大小恰好为n\sqrt nn​的一个独立集. (2)(2)(2)找出 ...

  3. Codeforces Round #563 (Div. 2)/CF1174

    Codeforces Round #563 (Div. 2)/CF1174 CF1174A Ehab Fails to Be Thanos 其实就是要\(\sum\limits_{i=1}^n a_i ...

  4. Codeforces Round #699 (Div. 2) F - AB Tree(贪心、树上DP)超级清晰,良心题解,看不懂来打我 ~

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Codeforces Round #699 (Div. 2) F - AB Tree Problem ...

  5. Codeforces Round #644 (Div. 3) F.Spy-string

    Codeforces Round #644 (Div. 3) F.Spy-string 题目链接 You are given n strings a1,a2,-,an: all of them hav ...

  6. Codeforces Round #849 (Div. 4) F. Range Update Point Query

    Codeforces Round #849 (Div. 4) F. Range Update Point Query 题目大意: 给一串数字,有两个操作: 操作1:将 l − r l-r l−r 的数 ...

  7. Codeforces Round #538 (Div. 2) F. Please, another Queries on Array? 线段树 + 欧拉函数

    传送门 文章目录 题意: 思路: 题意: 给你一个序列aaa,你需要实现两种操作: (1)(1)(1) 将[l,r][l,r][l,r]的aia_iai​都乘rrr. (2)(2)(2) 求ϕ(∏i= ...

  8. Codeforces Round #742 (Div. 2) F. One-Four Overload 构造 + 二分图染色

    传送门 文章目录 题意: 思路: 题意: 给你一个n∗mn*mn∗m的矩形,包含...和XXX,你有两种颜色,你需要给...染色使得每个XXX上下左右相邻的...其两种颜色个数相同,输出一种合法方案. ...

  9. Codeforces Round #740 (Div. 2) F. Top-Notch Insertions 线段树 / 平衡树 + 组合数学

    传送门 文章目录 题意: 思路: 题意: 思路: 考虑最终的序列是什么鸭子的,首先序列肯定单调不降,也就是a1≤a2≤a3≤...≤ana_1\le a_2\le a_3\le ...\le a_na ...

最新文章

  1. Qt下使用OpenCV3打开摄像头并把图像显示到QLabel上
  2. leetcode-7-整数翻转
  3. 2.3.6 Federate 远程访问数据库
  4. 求两个不超过200位的非负整数积_必看:初一上册数学考试概念、定义全部公式总结!(两个版本)...
  5. 将list的内容转换成固定个数的分组字符串
  6. java selenium click_按钮单击selenium java
  7. From the overall look and feel
  8. 微信表情图像代表什么意思_电表型号怎么选 型号字母都代表什么意思
  9. STL中的关联式容器——map(映射)
  10. DXperience 7.1.1
  11. react ssr php,从零开始搭建React同构应用(三):配置SSR
  12. 设置自动启动ssh服务
  13. 计算机考研复试_数据库
  14. 12306验证码分割
  15. 如何用ChatGPT做一门课?(包含大纲、脚本、PPT文本)
  16. 华为手机怎么使用读卡器_手机nfc功能怎么打开(华为手机nfc功能使用步骤)
  17. ValueError: cannot reshape array of size xxx into shape (xxx,xxx,xxx)解决方法
  18. 【读书笔记】Python网络爬虫从入门到实践(第2版)-唐松,爬虫基础体系巩固和常见场景练习
  19. 第六周作业 百词斩对比可可英语
  20. 联通云图片上传官方文档

热门文章

  1. 库卡 福尼斯devicenet通信_【供应福尼斯冷弧焊接】价格,厂家,弧焊机-搜了网
  2. Origin | 设置不同的主次刻度标签
  3. kaldi教程_kaldi中特征变换
  4. 解决cocos2d-x pvr.ccz格式的图片有时无法读取的一个bug
  5. dubbo源码实践-protocol层-invoker理解
  6. 不光彩又不得不为之的DD
  7. 假定主存地址位数为32位,按字节编址,主存和cache之间采用直接映射方式,主存块大小为1个字,每字32位,写操作时采用直写(Write Throght)方式,则能存放32K字数据的cache的总容量
  8. 3分钟火速手写一个二叉查找树,搞快点。
  9. 年销售额5亿爆款单品“螺蛳粉“营销策略分享!
  10. html抽奖原理,js实现抽奖功能