题意

有一张有向图,由一条长度为 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的更多相关文章

  1. CF1153E Serval and Snake(交互题)

    题目 CF1153E Serval and Snake 很有意思的一道交互题 做法 我们观察到,每次查询一行,当这一行仅包含一端是返回的答案是奇数 根据这个性质查询每一行每一列,我们大体能知道两端的位 ...

  2. CF1114E Arithmetic Progression(交互题,二分,随机算法)

    既然是在CF上AC的第一道交互题,而且正是这场比赛让我升紫了,所以十分值得纪念. 题目链接:CF原网 题目大意:交互题. 有一个长度为 $n$ 的序列 $a$,保证它从小到大排序后是个等差数列.你不知 ...

  3. B. Lost Number【CF交互题 暴力】

    B. Lost Number[CF交互题 暴力] This is an interactive problem. Remember to flush your output while communi ...

  4. codeforces1088D_Ehab and another another xor problem交互题

    传送门 一道考验思维的交互题 大致思路就是从最高的二进制位向下询问 代入例子比如: 5 6 6 5 7 4 6 4 讨论一下 交互题的重点学会推理和归纳 #include <bits/stdc+ ...

  5. 玉伯的一道课后题题解(关于 IEEE 754 双精度浮点型精度损失)

    前文 的最后给出了玉伯的一道课后题,今天我们来讲讲这题的思路. 题目是这样的: Number.MAX_VALUE + 1 == Number.MAX_VALUE; Number.MAX_VALUE + ...

  6. 又一道简单题&&Ladygod(两道思维水题)

    Ladygod Time Limit: 3000/1000MS (Java/Others)     Memory Limit: 65535/65535KB (Java/Others) Submit S ...

  7. 一道js题

    <script> var a = 5; function test(){ this.a = 10; a = 15 this.func = function(){ var a = 20 ; ...

  8. 每天一道Java题[3]

    问题 为什么在重写equals()方法的同时,必须重写hashCode()方法? 解答 在<每天一道Java题[2]>中,已经对hashCode()能否判断两个对象是否相等做出了解释.eq ...

  9. 每天一道Java题[11]

    题目 synchronized怎么实现线程同步?请修改<每天一道Java题[10]>中的MyRunnableThread类以解决三个线程都获取到10的问题. 解答 方法一: 采用synch ...

随机推荐

  1. java-Array数组常用操作例子(基础必备)

    package com.net.xinfang.reflect; import java.util.ArrayList; import java.util.Arrays; import java.ut ...

  2. NPOI使用教程附Helper

    1 NPOI简介 1.1 NPOI是什么 NPOI是POI的.NET版本,POI是一套用Java写成的库,我们在开发中经常用到导入导出表格.文档的情况,NPOI能够帮助我们在没有安装微软Office的 ...

  3. laravel 5.4 fopen(): Filename cannot be empty

    1.出错的报错信息(我在用laravel5.4文件上传时候出错的) laravel 5.4 fopen(): Filename cannot be empty 2.解决的方法 在php.ini中修改临 ...

  4. redis的一些修改

    redis修改的文件目录:redis.conf 1.bind:127.0.0.1 默认是本地访问,但是redis是支持集群的,改成0.0.0.0 可以使任意服务器访问 2.daemonize:yes ...

  5. jenkins笔记

    java -jar jenkins.war -httpPort=9090 以9090端口启动jekins的web应用(内置jetty)

  6. DirectX11 With Windows SDK--03 索引缓冲区、常量缓冲区

    前言 一个立方体有8个顶点,然而绘制一个立方体需要画12个三角形,如果按照前面的方法绘制的话,则需要提供36个顶点,而且这里面的顶点数据会重复4次甚至5次.这样的绘制方法会占用大量的内存空间. 接下来 ...

  7. bzoj千题计划311:bzoj5017: [Snoi2017]炸弹(线段树优化tarjan构图)

    https://www.lydsy.com/JudgeOnline/problem.php?id=5017 暴力: 对于每一个炸弹,枚举所有的炸弹,看它爆炸能不能引爆那个炸弹 如果能,由这个炸弹向引爆 ...

  8. node中glob模块

    glob glob允许使用规则,从而获取对应规则匹配的文件 node的glob模块允许你使用 * 等符号,来写一个glob规则,像在shell里一样,获取匹配对应规则文件 安装 npm install ...

  9. ssh 跳板机部署

    1.首先创建存放日志的文件夹并开放读写权限       mkdir /var/log/jump/       chmod -R 777 /var/log/jump/   2.将原有ssh程序修改为另外 ...

  10. C# Math.Round实现中国式四舍五入

    decimal sum = 11111.334; sum = , MidpointRounding.AwayFromZero);  sum:11111.33decimal sum = 11111.34 ...