CCF 20180302小球碰撞
#include<bits/stdc++.h>
using namespace std;
/*
1.首先進行排序 (結構體陣列的排序)
2.結果的輸出:不是根據change[i].id 的1-n的輸出,而是根據其下邊的1-n來輸出
*/
struct node{
int id;//排序後的下標
int no;//1標記正方向,0標記負方向
int num;
}change[102];
int main()
{
int n,L,t,arr[102],flag=0,temp=-1;
cin>>n>>L>>t;
//資料輸入
for(int i=1;i<=n;i++)
{
cin>>arr[i];
change[i].id=i;
change[i].num=arr[i];
if(arr[i]==L) //這3行程式碼可以不要(保萬全)
change[i].no=0;//
else //
change[i].no=1;
}
//結構體陣列排序
for(int i=1;i<n;i++)
{
node t1;
for (int j=i;j<=n;j++)
{
if(change[i].num>change[j].num)
{
t1=change[i];//這3行等價於swap(change[i],change[j]);
change[i]=change[j];//
change[j]=t1;//
}
}
}
//操作
for (int i=1;i<=t;i++)
{
for(int j=1;j<=n;j++)
{
if(arr[j]==L)
{
change[j].no=0;
change[j].num-=1;
}
else if(arr[j]==0)
{
change[j].no=1;
change[j].num+=1;
}
else
{
for(int k=1;k<=n;k++)
{
if(arr[j]!=arr[k]&&j!=k) flag=1;
else if(arr[j]==arr[k]&&j!=k)
{
flag=0;
temp=k;
change[j].no=0;
break;
}
}
if(flag==1)
{
if(change[j].no==1) change[j].num+=1;
else if(change[j].no==0) change[j].num-=1;
}
else if(temp>j)
{
change[j].no=0;
change[j].num-=1;
}
else
{
change[j].no=1;
change[j].num+=1;
}
}
}
for(int p=1;p<=n;p++)
arr[p]=change[p].num;
}
//輸出
int p=1;
while(p<=n)
{
for(int re=1;re<=n;re++)
{
if(change[re].id==p)
{
cout<<change[re].num<<" ";
break;
}
}
p++;
}
}
程式碼可能有些繁瑣,後期會不斷改進。
相關推薦
CCF 20180302小球碰撞
#include<bits/stdc++.h> using namespace std; /* 1.首先進行排序 (結構體陣列的排序) 2.結果的輸出:不是根據change[i].id 的1-n的輸出,而是根據其下邊的1-n來輸出 */ stru
CCF 201803-2 碰撞的小球-Python版
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小
CCF-CSP 練習題 碰撞的小球
題目 分析 設定一個二維陣列,a[i][j],i存放第i個小球,j為小球運動的方向,1為右移,0為左移,初始化為1。執行時間為t,遍歷t次,記錄每一次小球的位置和運動方向。當小球在終點,則改變方向為0,然後左移;當小球在0點時,改變方向為1,然後右移。不
CCF 201803-2 碰撞的小球
剛開始挺沒有思路的,後來在網上看了別人的程式碼,學習了,原作者看到了聯絡我,侵刪。 思路:小球的位置和方向分別用兩個陣列表示,方向向右為正,向左為負,每秒小球位置的變化可用 a[i]+=b[i](陣列a表示小球的位置,陣列b表示小球運動的方向),到達兩端後
CCF 201803-2碰撞的小球【模擬題】
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小
CCF第二天————碰撞的小球
碰撞的小球題目 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,
CCF認證2018年3月份 第2道 小球碰撞-C語言程式設計解析
兩面牆之間有n個小球,初始以每單位時間1單位長度向右運動,當小球撞到牆或者兩個小球相撞時,小球向反方向運動,速度不變。(各小球初始位置和牆距均為偶數,不存在三個小球同時碰撞的情況) 要求: 1.第一行輸入三個正整數:小球個數n,牆之間的距離L;時間t; 2.第二行
JS (canvas) 兩個小球碰撞
隨機數 ack parseint ++ arc req dia doc all <style media="screen"> * { margin: 0; padding: 0;
js實現小球碰撞遊戲
效果圖: 效果圖消失只是截的gif圖的問題 原始碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>小球碰撞遊戲
JavaScript面向物件的小球碰撞實現基本原理
主要記錄一下重點和難點 <!doctype html> <html> <head> <meta charset="utf-8"> <title>碰撞反彈</title> <style> *
案例-多個小球碰撞
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style> div{ position: absolute; t
CCF2018-3-18第二題 小球碰撞(假設小球之間無碰撞實現)
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然
js 小球碰壁反彈and小球碰撞
好像好幾天沒有更博了呢,最近有點變懶了,這樣不好,不好~~我們要做熱愛學習的好孩子,嘻嘻,今天下午補上。。。 我們在學習js的時候,一個很經典的案例就是小球的碰壁反彈效果啦~簡單的小球碰壁效果可以慢慢延伸,讓我們做出的效果更漂亮。如圖~ 這個樣子放上好像
javaScript實現小球碰撞
<!DOCTYPE html> <html> <head> <meta charset="utf-8"><title></title><style type="text/css">.room
html5使用canvas實現小球碰撞反彈例項
使用 html5 中的 canvas, 實現小球相互碰撞並反彈,反彈演算法比較簡單. index.html <!DOCTYPE html> <html lang="en"> <head> <meta ch
Java版小球碰撞
import java.awt.*; import java.awt.geom.*; import java.awt.event.*; import javax.swing.*; import javax.swing.plaf.ComponentUI; import jav
adams兩小球碰撞試驗
1.新建兩個小球 2.兩個小球modify,給定初始力大小 3.新建接觸力約束,選擇兩個物體I J;定義剛度係數等引數 4.如下顯示 5.build->measure->function->new,新建接觸力函式 6.設定模擬引數,模擬 7.
JavaScript實現兩個小球碰撞簡單模型【未完】
var xPos,xpos1;// var timer,timer1; var xSpeed;//黑球移動速度 var interval=50;//間隔時間 var countNum,co
CCF|碰撞的小球
int() oid str system static all util ring i++ import java.util.Scanner; public class Main { public static void main (String[] args) { Sca
CCF認證201803-2 碰撞的小球 java程式碼實現。
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。 當兩個小