试题编号: 201803-2
试题名称: 碰撞的小球
时间限制: 1.0s
内存限制: 256.0MB
问题描述
 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。
  当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。
  当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。
  现在,告诉你线段的长度L,小球数量n,以及n个小球的初始位置,请你计算t秒之后,各个小球的位置。

提示

因为所有小球的初始位置都为偶数,而且线段的长度为偶数,可以证明,不会有三个小球同时相撞,小球到达线段端点以及小球之间的碰撞时刻均为整数。
  同时也可以证明两个小球发生碰撞的位置一定是整数(但不一定是偶数)。

输入格式

输入的第一行包含三个整数n, L, t,用空格分隔,分别表示小球的个数、线段长度和你需要计算t秒之后小球的位置。
  第二行包含n个整数a1, a2, …, an,用空格分隔,表示初始时刻n个小球的位置。

输出格式

输出一行包含n个整数,用空格分隔,第i个整数代表初始时刻位于ai的小球,在t秒之后的位置。

样例输入

3 10 5
4 6 8

样例输出

7 9 9

样例说明

样例输入

10 22 30
14 12 16 6 10 2 8 20 18 4

样例输出

6 6 8 2 4 0 4 12 10 2

数据规模和约定

对于所有评测用例,1 ≤ n ≤ 100,1 ≤ t ≤ 100,2 ≤ L ≤ 1000,0 < ai < L。L为偶数。
  保证所有小球的初始位置互不相同且均为偶数。

解题思路:用一组数组记录每个小球的位置,再用一组数组记录每个小球下一步要向前走还是向后走,每次只需要相加即可。下面是通过的满分代码:

#include <iostream>
using namespace std;
const int L=1000;
int P[L+1];
int next[L+1];int main() {int n,l,t;cin>>n>>l>>t;for(int i=0;i<n;i++){cin>>P[i];next[i]=1;}while(t--){//判断下一步会不会撞墙 for(int i=0;i<n;i++){P[i]=P[i]+next[i];if(P[i]==0||P[i]==l)next[i]=-next[i];      }//判断下一步会不会撞球//要判断所有的球的碰撞情况 for(int j=0;j<n;j++){for(int k=j+1;k<n;k++)if(P[k]==P[j]){next[k]=-next[k]; next[j]=-next[j];    }} }for(int i=0;i<n;i++)cout<<P[i]<<" ";    return 0;
}

【CCF】201803-2 碰撞的小球相关推荐

  1. CCF认证 2018-3 碰撞的小球

    问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒. 当小球到达线 ...

  2. CCF 201803 跳一跳 碰撞的小球 url映射 棋局评估

    试题编号: 201803-1 试题名称: 跳一跳 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 近来,跳一跳这款小游戏风靡全国,受到不少玩家的喜爱. 简化后的跳一跳规则如下: ...

  3. CCF计算机软件能力认证试题练习:201803-2 碰撞的小球

    碰撞的小球 来源:CCF 标签: 参考资料: 相似题目: 题目 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上, ...

  4. 碰撞的小球 ccf (模拟)

    问题描述 试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐 ...

  5. CCF CSP 碰撞的小球 C++

    碰撞的小球 代码比较长是因为看错题意,题目要求最后按序号输出位置,因此既要存序号,也要存位置.先将小球按照初始位置排序,定义另一个数组mov来记录小球移动的距离,每过一个单位时间判断是否发生碰撞,并修 ...

  6. CCF201803-2 碰撞的小球

    试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有n个不计体 ...

  7. CCF2018-3-2 碰撞的小球

    试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有 ...

  8. CCF201803-2 碰撞的小球(100分)【模拟】

    试题编号: 201803-2 试题名称: 碰撞的小球 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处.有 ...

  9. 2018-3 碰撞的小球(C++)

    考察: 这题主要考察了struct的使用,以及边界的判断 思路: 我一开始想用bool isVisit[]来简化最后的碰撞判断,但总是错,经过调试发现这就是问题,虽然没明白,如果哪位朋友知道为什么错了 ...

最新文章

  1. TensorRT IRNNv2Layer
  2. pandas使用groupby函数计算dataframe数据中每个分组的N个数值的滚动加和(rolling sum)、例如,计算某公司的多个店铺每N天(5天)的滚动销售额加和
  3. 让用户用最短的时间接受 Confluence
  4. 解决vmbox配置设置好自定义网桥后无法ping通问题
  5. 王者权志龙回归!支持爱豆壁纸少不了
  6. 使用 MIDP 底层用户接口 API
  7. 为什么C++构造函数不能是虚函数
  8. python3-基础8
  9. es6 将字符串转换为json_ES6中Json、String、Map、Object之间的转换
  10. 程序员代码面试指南:IT名企算法与数据结构题目最优解(第2版) 左程云
  11. 国家开放大学人文英语4
  12. 为什么宁愿工资低点,也不建议去外包公司?
  13. 【资损】系统迭代过程中的兼容性设计
  14. 永磁同步电机的矢量控制策略(八)一一一仿真模型搭建与源代码
  15. 乐千业:税务筹划对企业的经营到底有多重要呢
  16. Java---设计【运动会成绩管理系统】
  17. 用nexus搭建maven私服(整合网上文章而成的)
  18. 怎么把用vue写的前后台项目打包上传到服务器让其能访问
  19. iOS开发中MD5加密算法的实现
  20. IQD晶振AT切割方式及流程

热门文章

  1. 深入浅出MyBatis:「映射器」全了解
  2. 利用iTextSharp填写中文(中日韩)PDF表单(完整解决方案)
  3. 森源电气持续押注光伏 加强市场竞争力
  4. Listview条目删除完,显示默认的图片的数据
  5. centos6/7 yum安装mysql客户端和rpm包方式安装方式
  6. 【LeetCode】12. Integer to Roman 整型数转罗马数
  7. 如何用sbt新建akka项目
  8. 公共语言运行库中的程序集-04强命名的程序集
  9. Serverless 实战 —— 前端也可以快速开发一个 Puppeteer 网页截图服务
  10. GitHub 标星 1.6w+,我发现了一个宝藏项目,推荐大家学习