题目描述

给兔兔们染完颜色后,Hzy把n只颜色不同的兔兔放在了一根长度为L=10n的木棍的不同位置(每只兔兔的位置在[0,L]之间)上,让她们做做运动。

在最开始的时候,Hzy会给每只兔兔指定一个方向,所有的兔兔都会乖乖地按照Hzy给她们指定的方向走(速度为每秒一个单位长度)。而当两只兔兔相遇(到达相同的位置)时,它们会同时掉头(掉头的时间忽略不计),下一秒她们会朝着相反的方向走。如果某只兔兔走到了木棍的边缘(位置0或者位置L),则她也会掉头,下一秒她会朝着相反的方向走。

现在,兔兔们想知道,T秒后她们分别在什么位置。

输入

第一行两个整数n、T,分别表示兔兔的数量和运动的秒数。
之后的n行,每行两个整数,依次表示从左到右每只兔兔的位置和朝向(−1表示向左,1表示向右)。

输出

输出n行,依次表示每只兔兔(与输入中的顺序对应)的位置。

样例输入

3 2
1 -1
5 1
9 -1

样例输出

1
7
7

提示

对于100%的数据,1≤n≤105,0≤T≤1018,兔兔的起始位置均为奇数。


【小结】:

看完题目,我第一感觉就认为这个题目好像在哪里做过一样。

没错,我想到的就是poj 1852

这个题目有点神似,因为问题都是相遇之后折返走,然后poj 1852 .

这题的做法,直接就是把两只蚂蚁折返走,看作两只蚂蚁互相穿过去。

这题的答案就浮现出来了。

这是第一个想法,然后麻烦的问题又来了,它说要输出小兔子最后所在的位置。

是按输入的顺序来输出。

问题是:蚂蚁这个题目,只能是看作穿过去罢了,但是两只蚂蚁的身份明显就交换了,

而且t给的很大,无法枚举跟踪每只蚂蚁的行踪。

所以,这时候引入第二个概念。

我初中做到一个期末考试的数学题。

我已经找不到原题给大家了,

然后这个题目的意思是,两球相遇,然后一个球以匀速前进,然后另外一个球相遇后折返。

问:另外一个球移动的距离。

当时我真的不会做这个题,后来想想,也就那么简单,

大家思考一下,其实即使两只蚂蚁身份改变了,但是相对来说,其实每一只蚂蚁都在自己所在的区域下运动。

所以肯定答案只要把所有位置求出,最后排序即可。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=1e6+10;
typedef struct Node{int No,x,flag;/*bool operator < (const Node &p)const {return x<p.x;}*/
}Node;
Node a[N];
bool cmp(Node a,Node b){return a.x<b.x;
}
int main()
{int n,L,t;ll tt;//freopen("stick.in", "r", stdin); freopen("stick.out", "w", stdout);scanf("%d%lld",&n,&tt);L=10*n;t=(int)(tt%((ll)(2*L)));for(int i=0;i<n;i++){scanf("%d%d",&a[i].x,&a[i].flag);a[i].No=i;}for(int i=0;i<n;i++){if(a[i].flag==-1){if(a[i].x>=t){a[i].x=a[i].x-t;}else if(a[i].x<t&&t<a[i].x+L){a[i].x=t-a[i].x;}else{a[i].x=2*L-t+a[i].x;}}else if(a[i].flag==1){if(t+a[i].x<=L){a[i].x=t+a[i].x;}else if(L<t+a[i].x&&t+a[i].x<=2*L){a[i].x=2*L-t-a[i].x;}else if(t+a[i].x>2*L){a[i].x=(t+a[i].x)%(2*L);}}}sort(a,a+n,cmp);for(int i=0;i<n;i++){printf("%lld\n",a[i].x);}return 0;
}

【思维】Hzy's Rabbit Stick相关推荐

  1. 【拓扑排序+dp】Hzy's Rabbit Candy

    Hzy's Rabbit Candy 题目描述 Hzy和她的m只兔兔在一个n个点m条边的有向无环图上玩. 为了让兔兔们开心,Hzy带了一些糖.Hzy可以从任何一个点开始,走到任何一个点结束.在这途中, ...

  2. 【规律】Hzy's Rabbit Play

    题目描述 Hzy在和她的n只兔兔玩. 兔兔们站成一行,每次,Hzy可以选择一个区间[l,r],然后抱抱区间里的所有兔兔,并获得等同于区间长度r−l+1的愉悦度.每个区间Hzy只能选择一次,请问Hzy一 ...

  3. c语言从键盘输入一个百分制成绩score,C语言 基础练习40题

    一.题目 1.输入2个整数,求两数的平方和并输出. 2. 输入一个圆半径(r)当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息. 3.函数y=f(x)可表示为: 4.编写一个程序,从4 ...

  4. Codeforces Round #716 (Div. 2) D. Cut and Stick 主席树 + 思维

    传送门 文章目录 题意: 思路: 题意: 给你个长为nnn的数组aaa,定义好的区间为这个区间中每个数出现的次数≤⌈n2⌉\le \left \lceil \frac{n}{2} \right \rc ...

  5. 2019广工ACM校赛决赛A题:思维题 HDU 6461 zsl 和hzy的生存挑战

    2019广工校赛决赛A题.HDU 6461 http://acm.hdu.edu.cn/showproblem.php?pid=6461 题目描述 zsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的 ...

  6. 13幅逻辑图,领略杜克大学的经典思维

    借杜克大学的 13 幅逻辑图与您一块探讨关于生活的哲学,这 13 幅图将帮助您更清晰地了解自己的行为.目标及思考问题的方式,让你选择正确的方式去实现心中所想与所需. No.1.什么是生活 生活中我们往 ...

  7. 设计师思维 工程师思维_从设计思维到设计行为

    设计师思维 工程师思维 By Marco Ossani & Gianluca Gambatesa Marco Ossani和Gianluca Gambatesa 为什么尽管进行了诚实的努力和对 ...

  8. 思维的误区:自利归因、光晕效应、随机谬误、赌徒谬误、二元谬误 (转)

    学习学习心理学...转自:http://dpinglee.blog.163.com/blog/static/1440977532012124115330197/ 现实生活中,当我们做决策时,如果停下来 ...

  9. 独立思考者模型:避开思维误区的沼泽

    作为一名优秀的数字侦探,你被邀请到一座豪宅调查主人被刺杀的案件.你已经知道了死者的死因,案件的凶器和罪犯杀人的大致过程,并通过明察暗访搜集到了重要的证据,最后经过高度逻辑化的推理找到了最有可能的嫌疑犯 ...

最新文章

  1. Ubuntu14.04安装JDK
  2. asp.net夜话之九:验证控件(上)
  3. ECsoop 商品列表页属性筛选区品牌以LOGO形式显示
  4. 忘却的旋律java2_mc忘却的旋律启动器下载
  5. 汉中计算机培训班学费是多少,汉中远程教育培训班收费多少
  6. hiho一下第128周 后缀自动机二·重复旋律5
  7. “拼木头”算法挑战赛:禁忌搜索算法,用Javascript 跑
  8. 一致性hash算法虚拟节点_一致性Hash算法原理详解
  9. 单链表的合并算法_图解算法:单链表两两反转 | 眼睛会了手就会系列
  10. ajax请求,返回值为304 Not Modified 错误原因与解决办法
  11. Go基础:产生随机数
  12. python手写识别系统gui_求大神帮助,怎么用wxpython编写一个数字手写体识别系统!...
  13. STEP 7-Micro/WIN SMART 界面介绍
  14. 苹果计算机格式化磁盘,苹果电脑怎么格式化
  15. 电商行业短信平台选择,电商行业短信通道选择考虑的问题
  16. 计算机网络图片大全,心情图片大全
  17. 【ML】 第四章 训练模型
  18. 【系统分析师之路】2008年上系统分析师上午综合知识真题
  19. Leetcode LCP 17. 速算机器人
  20. java pdf加水印 性能_利用java批量给pdf加水印的方法示例

热门文章

  1. Centos7 用户和组管理
  2. Hibernate查询语句拼接乱码问题
  3. 人工智能要学习哪些数学知识?
  4. 重要性采样(Importance Sampling)详细学习笔记
  5. 嵌入式linux启动时间优化
  6. 集成讯飞离线语音合成SDK报:“ 未经授权的语音应用.(错误码:11210)“ 问题解决
  7. 【安全硬件】Chap.6 IC和半导体产业的全球化;芯片生产猜疑链与SoC设计流程;可能会存在的安全威胁: 硬件木马、IP盗版、逆向工程、侧信道攻击、伪造
  8. Python地理地图可视化:folium把百度地图中国城市中心经纬度解析出来并在地图上展示(三)
  9. Docker部署免安装版tomcat+mysql+其它乱七八糟软件(包含解释为什么这样安装及同理安装的其他方式)
  10. 快速复制粘贴小工具txmouse