生活随笔
收集整理的這篇文章主要介紹了
蚂蚁--模拟
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
一根長度為L厘米的木棍上有n只螞蟻,每只螞蟻要么朝左爬,要么朝右爬,速度為1厘米/秒。當兩只螞蟻相撞時,二者同時掉頭(掉頭時間忽略不計)。給出每只螞蟻的初始位置和朝向,計算T秒之后每只螞蟻的位置。
輸入格式:
輸入的第一行為數(shù)據(jù)組數(shù)。每組數(shù)據(jù)的第一行為3個正整數(shù)L、T、n(0<=n<=10000);以下n行每行描述一只螞蟻的初始位置,其中,整數(shù)x為螞蟻距離木棍左端的距離(單位:厘米),字母表示初始朝向(L表示朝左,R表示朝右)。
輸出格式:
對于每組數(shù)據(jù),輸出n行,按輸入順序輸出每只螞蟻的位置和朝向(Turing表示正在碰撞)。在第T秒之前已經(jīng)掉下木棍的螞蟻(正好爬到木棍邊緣的不算)輸出Fell off。
樣例輸入:
2
10 1 4
1 R
5 R
3 L
10 R
10 2 3
4 R
5 L
8 R
樣例輸出:
Case #1:
2 Turing
6 R
2 Turing
Fell off
Case #2:
3 L
6 R
10 R
解:
[cpp]?view plaincopyprint?
#include<cstdio>?? #include<algorithm>?? using?namespace?std;?? ?? const?int?maxn?=?10000+5;?? const?char?dirName[][10]?=?{"L",?"Turing",?"R"};?? int?order[maxn];?????????? struct?Ant?? {?? ????int?id;??????? ????int?p;???????? ????int?d;???????? ????bool?operator?<?(const?Ant?&a)?const?? ????{?? ????????return?p?<?a.p;?? ????}?? }before[maxn],?after[maxn];?? ?? int?main()?? {?? ????int?K;?? ????scanf("%d",?&K);?? ????for(int?ki?=?1;?ki?<=?K;?ki++)?? ????{?? ????????int?L,?T,?n;?? ????????scanf("%d%d%d",?&L,?&T,?&n);?? ????????for(int?i?=?0;?i?<?n;?i++)?? ????????{?? ????????????int?p,?d;?? ????????????char?c;?? ????????????scanf("%d?%c",?&p,?&c);?? ????????????d?=?(c=='L')???-1?:?1;?? ????????????before[i].id?=?i;?before[i].p?=?p;?before[i].d?=?d;?? ????????????after[i].id?=?0;?after[i].p?=?p+T*d;?after[i].d?=?d;?????? ????????}?? ?????????? ?????????? ????????sort(before,?before+n);?? ????????for(i?=?0;?i?<?n;?i++)?? ????????????order[before[i].id]?=?i;?? ?? ?????????? ????????sort(after,?after+n);?? ????????for(i?=?0;?i?<?n-1;?i++)?? ????????????if(after[i].p?==?after[i+1].p)?after[i].d?=?after[i+1].d?=?0;?? ?? ?????????? ????????printf("Case?#%d:\n",?ki);?? ????????for(i?=?0;?i?<?n;?i++)?? ????????{?? ????????????int?a?=?order[i];?? ????????????if(after[a].p?<?0?||?after[a].p?>?L)?printf("Fell?off\n");?? ????????????else?printf("%d?%s\n",?after[a].p,?dirName[after[a].d+1]);?? ????????}?? ????????printf("\n");?? ????}?? ????return?0;?? }??
運行結果:
總結
以上是生活随笔為你收集整理的蚂蚁--模拟的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。