两秒后,第三个小球碰到墙壁,速度反向,三个小球位置分别为6, 8, 10。 三秒后,第二个小球与第三个小球在位置9发生碰撞,速度反向(注意碰撞位置不一定为偶数),三个小球位置分别为7, 9, 9。 四秒后,第一个小球与第二个小球在位置8发生碰撞,速度反向,第三个小球碰到墙壁,速度反向,三个小球位置分别为8, 8,...
# 碰撞的小球 ''' 本题的主要解题思路如下:①将整个大问题分成几个小问题,分别有三种情况:球与球碰撞、球与墙碰撞、球每秒运动一个单位②球与球碰撞情况:利用两层循环,遍历每颗球与其他球是否碰撞,若碰撞则判断当前球的方向,使其改变运动方向;③球与墙碰撞情况:遍历每颗球,判断当前的单位值是否大于线段长度或...
揣摩一下题意,就会发现,小球自始至终都不会越过其它小球,也就是说n个小球的相对位置(左右顺序)总是不变的(初始位置最小的小球经过 t 秒后依然最小)。 因而我们在求解过程中不必在意小球编号,只需直接求出所有小球末位置即可。 至于小球相遇时反向,由于小球可看做质点,从视觉上就想两个小球相互穿过、速率不变...
首先对一个小球进行分析,小球朝着自己的运动方向进行移动,只有运动方向前方的那个相邻小球和该小球才有可能发生碰撞,碰撞过后,两个小球的运动方向都会改变,只要模拟出小球运动的状态本题就解出来了。 根据样例输入我们发现,给的小球位置信息不是顺序的,所以我们需要先给进行排序,并记录原来那个位置的小球...
201803-2 碰撞的小球 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。 当...
ccf-csp/201803-2 碰撞的小球 ccf.cpp Go to file Copy path Cannot retrieve contributors at this time 34 lines (34 sloc)814 Bytes RawBlame #include<bits/stdc++.h> usingnamespacestd; intmain() { typedefpair<int,int> P; vector<P> balls; ...
简介: 201803-2 碰撞的小球 本题链接:201803-2 碰撞的小球本博客给出本题截图:C++#include <iostream> using namespace std; const int N = 110; int n, L, T; struct Ball { int p, v; }b[N]; int main() { cin >> n >> L >> T; ...
CCF 201803-2 碰撞的小球(100分) 问题描述 数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。 当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然...
CCF CSP 201803-2 碰撞的小球 思路: 1.用二维数组存储当前数轴上的状态,例如五号球在2位置,则 line [0] [2] = 5; 2.如果碰撞,则将其中一球放到数组的另一维同一个位置就好了,但是在分开时记得要将在另一维的球归位回来; 3.每一秒都刷新一遍整个数组;...
201803-2碰撞的小球 // exercise.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。 // #include "pch.h" #include<iostream> using namespace std; struct ball { int pos;//位置 int dir;//方向,1为右 }; ball balls[101]; int main() { int n,L,t; cin >> n >> L >> t...