题目链接:https://codeforces.com/contest/1137/problem/D

题意:

交互题。

给定如下一个有向图:

现在十个人各有一枚棋子(编号 $0 \sim 9$),在不知道 $t,c$ 的值的情况下,他们同时从home出发,要最终到达flag处。

你只能选择移动哪几个人的棋子,但棋子移动到哪里由程序确定并给出。

题解:

看网上大佬一个神仙解法……看得我一愣一愣的……

选定两颗棋子,第一颗每次都移动,第二颗隔一次移动一次。所以,进行了 $2t$ 次之后第二颗棋子刚好到达终点,

这个时候,第一颗棋子相当于以flag点为起点,移动了 $t$ 次,那么它此时的位置就相当于从flag出发走了 $t \bmod c$ 次,也就是说取flag处为 $0$ 位置,那么它现在在 $t \bmod c$ 位置。

那么,此时第一颗棋子想要追第二颗棋子的话,他们之间的距离是 $c - (t \bmod c)$,因此还要在移动 $2 \times [c - (t \bmod c)]$ 次才能让两颗棋子处于同一个位置。

那么这个位置在哪里呢?我们可以这么算,第一颗棋子从flag出发先走了 $t \bmod c$ 次,又走了 $2 \times [c - (t \bmod c)]$ 次,即总的走了 $2c - (t \bmod c)$ 次,即在 $2c - (t \bmod c)$ 位置,对 $c$ 取模即相当于在 $c - (t \bmod c)$ 位置。

此时,对于全部的棋子,只需要同时每个都再走 $t$ 步,就能全部到达flag点。

这样一来,只需做 $2t + 2 [c - (t \bmod c)] + t \le 3t + 2c < 3(t+c)$ 次就能完成了。

AC代码:

#include<bits/stdc++.h>
using namespace std;
inline int input()
{
int k; cin>>k;
string s;
for(int i=;i<=k;i++) cin>>s;
return k;
}
int main()
{
ios::sync_with_stdio();
cin.tie(), cout.tie(); while()
{
cout<<"next 0"<<endl;
input();
cout<<"next 0 1"<<endl;
if(input()==) break;
}
while()
{
cout<<"next 0 1 2 3 4 5 6 7 8 9"<<endl;
if(input()==) break;
}
cout<<"done"<<endl;
}

Codeforces 1137D - Cooperative Game - [交互题+思维题]的更多相关文章

  1. 【交互 细节题 思维题】cf1064E. Dwarves, Hats and Extrasensory Abilities

    第一次做交互真有趣……:挺好的细节思维题 This is an interactive problem. In good old times dwarves tried to develop extr ...

  2. Codeforces 718E - Matvey's Birthday(思维题)

    Codeforces 题面传送门 & 洛谷题面传送门 首先注意到这个图的特殊性:我们对于所有 \(s_i=s_j\)​ 的 \((i,j)\)​ 之间都连了条边,而字符集大小顶多只有 \(8\ ...

  3. Codeforces 643F - Bears and Juice(思维题)

    Codeforces 题目传送门 & 洛谷题目传送门 首先直接暴力枚举显然是不现实的,我们不妨换个角度来处理这个问题,考虑这 \(R_i\) 个瓶子中每一瓶被哪些熊在哪一天喝过. 我们考虑对这 ...

  4. Codeforces 627E - Orchestra(双向链表,思维题)

    Codeforces 题目传送门 & 洛谷题目传送门 下设 \(n,m\) 同阶. 首先有一个傻子都会的暴力做法,枚举矩形的上.下边界 \(l,r\),考虑集合多重集 \(S=\{y|x\in ...

  5. Codeforces Round #416 (Div. 2)(A,思维题,暴力,B,思维题,暴力)

    A. Vladik and Courtesy time limit per test:2 seconds memory limit per test:256 megabytes input:stand ...

  6. CodeForces 719A Vitya in the Countryside 思维题

    题目大意:月亮从0到15,15下面是0.循环往复.给出n个数字,如果下一个数字大于第n个数字输出UP,小于输出DOWN,无法确定输出-1. 题目思路:给出0则一定是UP,给出15一定是DOWN,给出其 ...

  7. Codeforces 671 A——Recycling Bottles——————【思维题】

     Recycling Bottles time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  8. codeforces 675 C ——Money Transfers——————【思维题】

    Money Transfers time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...

  9. CodeForces 492E Vanya and Field (思维题)

    E. Vanya and Field time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

随机推荐

  1. Rplidar学习(四)—— ROS下进行rplidar雷达数据采集源码分析

    一.子函数分析 1.发布数据子函数 (1)雷达数据数据类型 Header header # timestamp in the header is the acquisition time of # t ...

  2. mysql常用的一些修改命令

    修改表字段名称: alter table  table_name change column column_name_old  column_name_new column_type; mysql注释 ...

  3. TestNG源代码分析:依赖管理的实现

    TestNG源代码分析:依赖管理的实现 2018-03-19 1 背景 当case之间有依赖关系,有依赖关系的case,它们的执行顺序是有限制的.TestNG提供了依赖管理功能 2 基础理论 这个执行 ...

  4. 【iCore4 双核心板_ARM】例程四:USART实验——通过命令控制LED

    实验原理: 开发板上自带一片CH340芯片,完成本实验电脑需要安装CH340驱动, CH340的TXD连接STM32的GPIO(PXC7),CH340的RXD连接STM32的 GPIO(PC6),通过 ...

  5. 【WPF】自定义形状的按钮Button

    需求:做一个如下图所示的多边形按钮. <!-- 特殊形状的按钮 --> <Grid> <Polygon Points="0,0 140,0 190,42 140 ...

  6. Java编程的逻辑 (78) - 线程池

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

  7. ASP.NET IIS Registration Tool (Aspnet_regiis.exe)

    IIS Version Special cases for 32-bit versions of Aspnet_regiis.exe 6.0 You can run the 32-bit versio ...

  8. Matlab如何循环读取文件

    循环读取图片第一种方法①List =dir('*.jpg'); %如需其它图片格式支持,可以自己[重载dir()]函数,实现查找所有图片文件的功能,%如果图片是其它路径,可以用 ["路径&q ...

  9. 将本地代码上传github

    建立本地仓库 1.首先进入text文件夹 cd d:text 首先进入text文件夹 2.执行指令:git init 执行git init 初始化成功后你会发现项目里多了一个隐藏文件夹.git 隐藏的 ...

  10. Java使用SFTP协议上传、下载文件

    http://blog.csdn.net/haidage/article/details/6859716 在自己尝试之后发现以上内容里有坑. 1.关闭连接的时候,必须要sftp.getSession( ...