201803-2 試題名稱: 碰撞的小球
#include <stdio.h> int main() { int n, L, t; scanf("%d %d %d",&n, &L, &t); struct ball { int number;//小球位置 int pre;//前一秒的位置 int flag;//0向右移動, 1 向左移動 }ball[n]; int i; for(i = 0; i < n; i++) { scanf("%d",&ball[i].number);//輸入小球的位置 } int j, k, m; //第一次移動小球 for(j = 0; j < n; j++) { if(ball[j].number == L)//判斷小球是否到達端點 { ball[j].flag = 1; } else { ball[j].flag = 0; } ball[j].pre = ball[j].number; if(ball[j].flag == 1) { ball[j].number -= 1; } else { ball[j].number += 1; } } // for(i = 0; i < n; i++) // { // printf("%d ",ball[i].number); // } int q; for(i = 1; i < t; i++)//每秒過去 { for(k = 0; k < n-1; k++)//判斷小球是否相撞 { for(m = k+1; m < n; m++) { if(ball[k].number == ball[m].number) { if (ball[k].pre > ball[m].pre)//判斷碰撞後移動的方向 { ball[k].flag = 0; ball[m].flag = 1; } else { ball[k].flag = 1; ball[m].flag = 0; } } } } for(q = 0; q < n; q++) { if(ball[q].number == 0)//判斷小球是否到達端點 { ball[q].flag = 0; } else if(ball[q].number == L) { ball[q].flag = 1; } } for(j = 0; j < n; j++)//移動小球 { ball[j].pre = ball[j].number; if(ball[j].flag == 1) { ball[j].number -= 1; } else { ball[j].number += 1; } } // for(q = 0; q < n; q++) // { // printf("%d ",ball[q].number); // printf("\n"); // } } for(i = 0; i < n; i++) { printf("%d ",ball[i].number); } return 0; }
相關推薦
201803-2 試題名稱: 碰撞的小球 java實現
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。
201803-2 試題名稱: 碰撞的小球
#include <stdio.h> int main() { int n, L, t; scanf("%d %d %d",&n, &L, &t); struct ball { int number;//小球
201803-1 試題名稱: 跳一跳
#include <stdio.h> int main() { int i, sum, j; sum = 0; scanf("%d",&i); if( i == 1) sum++; else if ( i == 2) sum +=
201604-2 試題名稱: 俄羅斯方塊
#include <stdio.h> int main() { int matrix[15][10]; int graphic[4][4]; int i, j, k; for(i=0; i<15; i++) { for(j=0; j<1
201809-2 試題名稱: 買菜 java實現
問題描述 小H和小W來到了一條街上,兩人分開買菜,他們買菜的過程可以描述為,去店裡買一些菜然後去旁邊的一個廣場把菜裝上車,兩人都要買n種菜,所以也都要裝n次車。具體的,對於小H來說有n個不相交的時間段[a1,b1],[a2,b2]…[an,bn]在裝車,對於小W
試題編號: 201809-2 試題名稱: 買菜
今天學校組織CCF培訓,因為學校畢業需要什麼分,要150分以上才行,雖然我200分過了,不過誰不想在高一些呢?反正學校給兩次免費認證的機會。 以下程式碼為海賊科技——胡船長培訓所給程式碼(我認證時寫的太麻煩了·····真的對演算法好的人好生羨慕,我的程式碼就不拿
201503-2 試題名稱: 數字排序
#include <stdio.h> int main() { int n; scanf("%d",&n); int a[1001]; int k; int i, j; for(i=0; i<1001; i++) { a[i
CCF CSP 程式設計題目和解答-----試題名稱:Z字形掃描-------201412-2
問題描述 試題編號: 201412-2 試題名稱: Z字形掃描 時間限制: 2.0s 記憶體限制: 256.0MB 問題描述: 問題描述 在影象編碼的演算法中,需要將一個給
CCF CSP 程式設計題目和解答-----試題名稱:畫圖-------201409-2
問題描述 試題編號: 201409-2 試題名稱: 畫圖 時間限制: 1.0s 記憶體限制: 256.0MB 問題描述: 問題描述 在一個定義了直角座標系的紙上,畫一個(x
201809-1 試題名稱: 賣菜 java實現
問題描述 在一條街上有n個賣菜的商店,按1至n的順序排成一排,這些商店都賣一種蔬菜。 第一天,每個商店都自己定了一個價格。店主們希望自己的菜價和其他商店的一致,第二天,每一家商店都會根據他自己和相鄰商店的價格調整自己的價格。具體的,每家商店都會將第二天的菜價
201712-1 試題名稱: 最小差值 java實現
問題描述 給定n個數,請找出其中相差(差的絕對值)最小的兩個數,輸出它們的差值的絕對值。 輸入格式 輸入第一行包含一個整數n。 第二行包含n個正整數,相鄰整數之間使用一個空格分隔。 輸出格式 輸出一個整數,表示答案。 樣例輸入 5 1 5 4 8 20 樣例
CCF CSP 程式設計題目和解答-----試題名稱:路徑解析 -------201604-3
在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄(或者資料夾)和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同一個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。 為了指定檔案系統中的某
試題編號: 201809-1 試題名稱: 賣菜
就是這樣····第一題沒啥說的 #include<stdio.h> int a[1001]; int main() { int n; scanf("%d",&n); for(int i=1;i<=n;i++) s
CCF CSP 程式設計題目和解答-----試題名稱:爐石傳說 -------201609-3
#include<iostream> #include<algorithm> #include<vector> #include<string> using namespace std; bool endgame = false;//遊戲是否結束的標誌位
201803-2 CCF-CSP模擬試題 碰撞的小球
import java.util.Scanner; public class Main { public static void main(String[] args){ int[] pos = new int[100]; int i
CCF模擬試題 201803-2 碰撞的小球
試題編號:201803-2試題名稱:碰撞的小球時間限制:1.0s記憶體限制:256.0MB問題描述:問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單
CCF認證201803-2 碰撞的小球 java程式碼實現。
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小仍然為原來大小。 當兩個小
CCF Python題解(100分)201803-2 碰撞的小球
CCF Python題解(100分)201803-2 碰撞的小球 from collections import defaultdict n, L, t = map(int,input().split()) positions = map(int,input().split()) li
CCF 201803-2 碰撞的小球-Python版
問題描述 數軸上有一條長度為L(L為偶數)的線段,左端點在原點,右端點在座標L處。有n個不計體積的小球線上段上,開始時所有的小球都處在偶數座標上,速度方向向右,速度大小為1單位長度每秒。 當小球到達線段的端點(左端點或右端點)的時候,會立即向相反的方向移動,速度大小
CCF 201803-2 碰撞的小球
剛開始挺沒有思路的,後來在網上看了別人的程式碼,學習了,原作者看到了聯絡我,侵刪。 思路:小球的位置和方向分別用兩個陣列表示,方向向右為正,向左為負,每秒小球位置的變化可用 a[i]+=b[i](陣列a表示小球的位置,陣列b表示小球運動的方向),到達兩端後