博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.31T3 其他算法思想
阅读量:6914 次
发布时间:2019-06-27

本文共 1249 字,大约阅读时间需要 4 分钟。

T1 蚂蚁移动

(move.cpp/c)

【问题描述】

   有一根尺子,长度L<=200000,在上面有N(N <= 70000,N < L)只蚂蚁,且没有两只蚂蚁初始位置相同。每只蚂蚁有一个初始方向(左或者右),且它们会爬行,速度都是每秒一个长度单位。当它们碰到另外一个蚂蚁或者尺子的边缘时,它们会立即改变移动的方向(即反向)。 

  给定尺子的长度,蚂蚁的只数,以及所有蚂蚁初始的位置和方向。要你求第T秒时每只蚂蚁的位置(1<=T<=1000000)。

【输入格式】

    第一行两个整数L和T。 

 第二行一个整数N,表示蚂蚁的只数。 
 接下来的每行由两部分组成。第一部分是一个整数,表示该蚂蚁的初始位置。第二部分是一个字母,表示初始方向:D表示向右,L表示向左。两部分中间空格。

【输出格式】

    N个整数,表示每只蚂蚁的最终位置。无需按照蚂蚁的原先编号输出,只要按照最终位置坐标递增(非降)的顺序输出坐标即可。

【样例输入】

 5 5 

 2 
 2 D 
 4 L
【样例输出】

1 3

 

 

 

 

两只蚂蚁相碰等于穿过,就完了

code:

1 #include
2 #include
3 #include
4 #include
5 using namespace std; 6 int a[80000],tot; 7 int main() { 8 int L,T; 9 cin>>L>>T;10 int n;11 cin>>n; 12 T%=2*L;13 for(int i=1; i<=n; i++) {14 int pos;15 char d;16 cin>>pos>>d;17 if(d=='L') {18 a[++tot]=abs(pos-T);19 if(a[tot]>L)a[tot]-=2*(a[tot]-L);20 } else {21 a[++tot]=pos+T;22 if(a[tot]>L)a[tot]-=2*(a[tot]-L);23 if(a[tot]<0)a[tot]=-a[tot];24 }25 }26 sort(a+1,a+tot+1);27 for(int i=1;i<=tot;i++)cout<
<<" ";28 return 0;29 }

over

转载于:https://www.cnblogs.com/saionjisekai/p/9884072.html

你可能感兴趣的文章
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG
查看>>
根据背景颜色的亮度调整字体的颜色
查看>>
python requests socks代理
查看>>
PHP socket初探 --- 含着泪也要磕完libevent(三)
查看>>
白鹭引擎王泽:重度H5游戏性能优化技巧
查看>>
PHP编译参数configure配置详解(持续更新中)
查看>>
ios 服务器端php推送证书生成
查看>>
多列布局(column)
查看>>
用Python写算法 | 蓄水池算法实现随机抽样
查看>>
canvas核心技术-如何绘制线段
查看>>
数组去重方法总结
查看>>
React 事件系统
查看>>
Android Architecture Components Part4:ViewModel
查看>>
weex开发问题记录
查看>>
【跃迁之路】【484天】程序员高效学习方法论探索系列(实验阶段241-2018.06.04)...
查看>>
站在巨人肩膀上看源码-LinkedList
查看>>
Jquery 以及AngularJS 中 Get/Post 传参笔记
查看>>
Android入门篇(二)布局文件 容器②
查看>>
如何在Kubernetes中管理有状态应用
查看>>
一个基于react的图片裁剪组件
查看>>