1. 程式人生 > >CCF 20180302小球碰撞

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單位長度每秒。   當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。   當兩個小