【交互】【随机】Lost Root(CF1061F)
正题
luogu
CF1061F
题目大意
给出n和k,现在有一颗n个点的满k叉树,每次查询可以问一个点是否在另外两个点的路径上,让你在 60×n60\times n60×n 次询问内得到根节点
解题思路
因为是满k叉数,可以先得到深度dep
每次随机找两个点,用 n 次查询判断这两个点路径之间的点数,如果为 dep×2−1dep\times 2-1dep×2−1 就是根节点两个不同子树中的叶子结点,那么根节点一定在该路径上,然后暴力判断那个点是根节点即可(到叶子结点路径长度为dep)
因为叶子结点的数量大于 n2\frac{n}{2}2n,所以随机到两个叶子结点的概率是 14\frac{1}{4}41,随机到不同子树的概率为 k−1k\frac{k-1}{k}kk−1,所以找到符合条件的两个叶子结点的概率为 k−14k\frac{k-1}{4k}4kk−1,当k=2时,概率最小,为18\frac{1}{8}81
期望可以在规定次数内找到答案
code
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
#define ll long long
#define N 1510
using namespace std;
int n,k,x,y,dep,p[N][2],d[N][N];
char s[10];
int get(int x,int y,int g)//判断路径长度
{int sum=2;p[x][g]=p[y][g]=0;for(int i=1;i<=n;++i){if(i==x||i==y)continue;printf("? %d %d %d\n",x,i,y);fflush(stdout);scanf("%s",s);if(s[0]=='Y')sum++,p[i][g]=1;else p[i][g]=0;}return sum;
}
int main()
{srand(2018729);scanf("%d%d",&n,&k);x=n;y=1;while(x){x-=y;y*=k;dep++;}while(1){x=rand()%n+1;y=rand()%n+1;while(x==y||d[x][y]){x=rand()%n+1;y=rand()%n+1;}d[x][y]=1;d[y][x]=1;if(get(x,y,1)==dep*2-1){//找到了for(int i=1;i<=n;++i)//暴力判断那个点是根节点if(p[i][1]&&get(x,i,0)==dep){printf("! %d\n",i);return 0;}}}return 0;
}
【交互】【随机】Lost Root(CF1061F)相关推荐
- SSL/TLS协议交互流程分析
本文参考 SSL/TLS协议运行机制的概述 tls运行机制,这里不细说,建议细看 HTTPS与TLS The Transport Layer Security (TLS) Protocol v1.2 ...
- mongodb 百万_1亿条记录的MongoDB数据库随机查询性能测试
mongdb性能压力测试,随机查询,数据量1亿条记录 操作系统centos6.4x64位 从测试结果看,当mongodb将数据全部载入到内存后,查询速度根据文档的大小,性能瓶颈通常会是在网络流量和CP ...
- 生成随机字符串的几种常用方式
写在前面 今天在学习数据库的时候想随机生成一些数据来插入到数据表中,但是一时想不起来如何生成随机内容,就整理了之前学过的一些生成随机字符串的命令,以备不时之需,希望对各位有所帮助. 生成随机字符串的几 ...
- 通过读取学生txt,进而实现随机选人(包含对应人物照片)并用GUI实现
首先附上源代码 import tkinter as tk import random import threading import time from PIL import Image,ImageT ...
- python tkinter 随机抽奖程序
1. 界面 import tkinter as tk import randoma = ["荀彧","荀攸","贾诩","郭嘉&q ...
- 为了更有效率地偷钱,Android root木马开始试水短信扣费诈骗
本文讲的是 为了更有效率地偷钱,Android root木马开始试水短信扣费诈骗, 自2006年9月以来,我们就一直在监控Google Play商店有关Ztorg木马的各种新变异版本 ,到目前为止,我 ...
- Linux-打包压缩-date-rpm-yum-磁盘管理(分区fdisk/gdisk)-systemd-修改root密码
打包压缩 压缩包工具.zip #zip压缩工具 .bz2 #bzip2压缩工具,只能压缩文件,会删除源文件.gz #gzip压缩工具,只能压缩文件,会删除源文件tar.gz #gzip压缩,使用tar ...
- [k8s] 第六章 Pod控制器详解(Controller-manager)
本章节主要介绍各种Pod控制器的详细使用. Pod控制器介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kuberne ...
- kubernetes学习笔记之七: Ingress-nginx 部署使用
一.Ingress 简介 在Kubernetes中,服务和Pod的IP地址仅可以在集群网络内部使用,对于集群外的应用是不可见的.为了使外部的应用能够访问集群内的服务,在Kubernetes 目前 提供 ...
- Docker容器学习梳理--日常操作总结
使用Docker已有一段时间了,今天正好有空梳理下自己平时操作Docker时的一些命令和注意细节: Docker 命令帮助 $ sudo docker Commands:attach Attach t ...
最新文章
- XamarinEssentials教程清空键值
- AdonisUI - 用于 WPF 应用程序的轻量级 UI 工具包,提供经典但增强的 Windows 视觉效果...
- VS2017创建ASP.NET Core Web程序
- 【Servlet】过滤器技术
- UI实用|素材APP启动图标设计模板
- .NET Core中Quartz.NET的依赖注入
- 美国重金投资3D芯片项目!MIT+美独资公司攻关,旨在继续领先中国
- Android Lint 检查规则的定制(基本篇)
- CTR 预估模型简介--深度学习篇
- linux 添加udp端口映射,iptables下udp端口转发
- zuc算法代码详解_ZUC算法原理及实现过程.doc
- 通过子网掩码和ip地址计算网络地址和广播地址
- python 设置输入法为英文_python 怎么转化输入法
- 注塑缺陷浮纤的原因及解决对策
- mysql 将年月日转换成年_SQL数据库中怎么将时间格式转换到年和月?
- PS如何用制作BMP 256位色非压缩图片,供Easyboot作为背景
- 數據驅動的到底是什麼
- 【小游戏】2D游戏黄金矿工GoldMiner(关卡模式)
- nvidia 3d vision kit + opengl + 立体视觉程序开发
- 委托实现信用卡用户定时还款功能
热门文章
- re管理器Java_自定义布局管理器-FormLayout
- 汉字为什么能流传至今_汉字能流传至今,比毛不易还不易,它的同龄字统统都死掉了...
- 苏泊尔搭载华为鸿蒙系统,华为鸿蒙打算在一年内跨过生死线,拿下16%的市场份额...
- 高度平衡的二叉搜索树基础概念与经典题目(Leetcode题解-Python语言)
- [JavaWeb-MySQL]DQL_查询表中记录,语句
- 写出TREE-PREDECESSOR的伪代码(算法导论第三版12.2-3)
- linux常用命令 java,Java工程在Linux常用命令
- java8 stream案例分析
- python爬虫百度贴吧代码大全_零基础写python爬虫之抓取百度贴吧代码分享
- word List29