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

本文共 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

你可能感兴趣的文章
iOS 根据字符串来定位地址
查看>>
Centos清理内存 内存回收释放及内存使用查看的相关命令
查看>>
ASP.NET Core MVC之ViewComponents(视图组件)知多少?
查看>>
Wlms进程导致Windows2008R2操作系统关机的解决办法
查看>>
第一周 从C走进C++ 005 const
查看>>
cmake生成Makefile时指定c/c++编译器
查看>>
R语言进行广州租房可视化
查看>>
Asp.net WebApi 项目示例(增删改查)
查看>>
数据库系统原理第一章数据库系统的基本概念
查看>>
pyrhon SQLite数据库
查看>>
C#开源框架(转载)
查看>>
fatal error C1083: 无法打开包括文件:“stddef.h”: No such file or directory
查看>>
流于形式的沟通
查看>>
电梯问题
查看>>
python错误处理之try...except...finally...错误处理机制。
查看>>
bootstrap复选框和单选按钮
查看>>
FP并行算法的几个相关方向
查看>>
python字典操作2
查看>>
redis+keeplived分布式缓存
查看>>
E信通项目总结[转]
查看>>