CF 1138F 超级有意思的一道交互题QVQ
题意
有一张有向图,由一条长度为 T 的链和一个长度为 C 环组成,但是你并不知道 T 和 C 是多少
图的出发点在链的一段,终点在链的另一端,同时终点与一个环相连,大概有点内向树感觉

现在有 10 个人,你可以每次操作让一些人沿着路径前进一步,然后交互库会返回你多少个点上有人以及上面的人分别是谁(其实是谁可能不重要?)
你的目标就是在 \(3*(T+C)\) 次操作内让所有人同时到达终点,然后输出 done
分析
其实很好做?
我们只要首先 重复让 0 号走一步,然后 0 号 1 号一起走一步,直到 0 1 相遇(也就是返回有 2 个点上有人)
不难看出此时 0 1 一定在环上,然后我们让 10 个人一起走,等他们所有人相遇,就是走到终点了
什么?为什么这么做是对的?
我们设 1 走了 \(T + x\) 步后和 0 相遇 ,那么 0 就走了 \(2*(T + x)\) (T 就是链长)
那么 \(T+x\) 必然是 \(C\) 的倍数,因为 0 1 相遇, 0 肯定在环上多走了几圈
于是 1 号点再走 T 步就能到终点了, 0 和 1 一起走的,看做一个点就好了
而其他所有的点走了 T 步之后也到终点了
虽然我们不知道 T 是多少,但是让他们走着就对了(反正相遇了就是到终点了)
关于交互的问题
首先就是不知道能不能用文件读入...(好像不行,亲测出锅了)
然后就是记得 fflush
当然用 cout + endl 的好像连 fflush 都可以省掉不用了QVQ
//by Judge
#include<bits/stdc++.h>
using namespace std;
inline int read(){ int x=0; char c=getchar();
for(;!isdigit(c);c=getchar());
for(;isdigit(c);c=getchar()) x=x*10+c-'0'; return x;
} char s[15];
inline int get(){ int x=read();
for(int i=1,t;i<=x;++i) scanf("%s",s); return x;
}
int main(){
while(1){
puts("next 0"),fflush(stdout),get();
puts("next 0 1"),fflush(stdout);
if(get()==2) break;
}
while(1){
puts("next 0 1 2 3 4 5 6 7 8 9"),fflush(stdout);
if(get()==1) break;
} return puts("done"),fflush(stdout),0;
}
CF 1138F 超级有意思的一道交互题QVQ的更多相关文章
- CF1153E Serval and Snake(交互题)
题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数 根据这个性质查询每一行每一列,我们大体能知道两端的位 ...
- CF1114E Arithmetic Progression(交互题,二分,随机算法)
既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...
- B. Lost Number【CF交互题 暴力】
B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...
- codeforces1088D_Ehab and another another xor problem交互题
传送门 一道考验思维的交互题 大致思路就是从最高的二进制位向下询问 代入例子比如: 5 6 6 5 7 4 6 4 讨论一下 交互题的重点学会推理和归纳 #include <bits/stdc+ ...
- 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)
前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...
- 又一道简单题&&Ladygod(两道思维水题)
Ladygod Time Limit: 3000/1000MS (Java/Others) Memory Limit: 65535/65535KB (Java/Others) Submit S ...
- 一道js题
<script> var a = 5; function test(){ this.a = 10; a = 15 this.func = function(){ var a = 20 ; ...
- 每天一道Java题[3]
问题 为什么在重写equals()方法的同时,必须重写hashCode()方法? 解答 在<每天一道Java题[2]>中,已经对hashCode()能否判断两个对象是否相等做出了解释.eq ...
- 每天一道Java题[11]
题目 synchronized怎么实现线程同步?请修改<每天一道Java题[10]>中的MyRunnableThread类以解决三个线程都获取到10的问题. 解答 方法一: 采用synch ...
随机推荐
- sqlserver修改计算机名称。
SELECT @@SERVERNAME As [@@SERVERNAME], CAST(SERVERPROPERTY('MACHINENAME') AS VARCHAR(128)) + COALESC ...
- BBS总结
表设计 from django.db import models from django.contrib.auth.models import AbstractUser # Create your m ...
- python之所以强大很大一部分原因在于他众多的取之不尽的库
GUI 的 自动任务用这个pyautogui库,web 页面的用 selenium + webdriver 同类型的还有 sikuli ,低配版 按键精灵 本教程译自大神Al Sweigart的PyA ...
- flask 文件转为pdf并添加二维码
背景: 宝安区需求,企业会下载表格,打印后填报.填报后收上表格,统一录入PDA.因为某台PDA只能录某个地方的表格,所以他们希望纸质表上有个二维码,扫描出现填报公司的一些信息,以及统计(好像是这样,没 ...
- Linux 查看系统版本和内核
查看系统内核版本 [root@11e71db4a00e /]# cat /proc/version Linux version -.el7.x86_64 (builder@kbuilder.dev.c ...
- Python之进程 1 - 基本概念
一 背景知识 顾名思义,进程即正在执行的一个过程.进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一.操作系统的其他所 ...
- vue学习之template标签
HTML5提供的新标签,具有以下特性: 1.该元素天生display:none,同时模板元素内部内容也是隐藏的 2.位置任意,可以在<head>中,也可以在<body>或者&l ...
- linux scanf函数%d后加空白
参考链接: https://bbs.csdn.net/topics/390389059 关键点: scanf()中空白字符(包括/n,space)会使scanf()函数在读操作中略去输入中的零个或者一 ...
- JAVA进阶3
间歇性混吃等死,持续性踌躇满志系列-------------第3天 1.局部内部类 局部内部类是指在类的方法中定义的内部类,它的作用范围也是在这个方法体内. class SellOutClass{ p ...
- 基于【磁盘】操作的IO接口:File
基本操作Api import org.apache.commons.lang3.time.DateFormatUtils; import java.io.*; import java.util.Dat ...