PAT 1055 集體照 25 分

2021-10-19 17:48:31 字數 999 閱讀 3144

題目鏈結

<==戳這

這題要注意幾個點:

1.我們應該從左往右交替站入

2.如何實現左右交替站入:把 i++ 改為 i+=2 即每次加2

3.利用vector的時候,如果要直接對其中的元素賦值,或者直接輸入該元素,不能定義成類似於 vector < int > v ;

而應該是:vector < int > v (n+1) ;(n也可以);

4.用結構體儲存每個人的身高和名字

5.從我們的角度看,最後一排應該是輸出的第一行,即多餘的全部輸出在第一行

上**理解:

#include

#include

#include

#include

#include

using

namespace std;

struct node

;bool

cmp(node a,node b)

intmain()

sort

(v.begin()

,v.end()

,cmp)

;//從高到矮排序

int per=n/k,last=n-n/k*

(k-1);

//per代表輸出中: 2-k 行每行的人數,last代表輸出中:第一行的人數

int t=

0,row=k,m;

// t 代表每一行的最高的人在 v 中的下標,初始化為0

// row 為行數,初始化為 k

// m 為臨時變數儲存當前行的人數

while

(row)

pos=m/2;

for(

int i=t+

2;i<=t+m-

1;i+=2

)for

(int i=

0;i) t+

=m;//更新 t 和 row 的值

row--;}

}

1055 集體照 (25 分)

拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 長度不超過 8 個英...

1055 集體照 25 分

拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 長度不超過 8 個英...

1055 集體照 25 分

題意描述 拍集體照時隊形很重要,這裡對給定的 n 個人 k 排的隊形設計排隊規則如下 現給定一組拍照人,請編寫程式輸出他們的隊形。輸入格式 每個輸入包含 1 個測試用例。每個測試用例第 1 行給出兩個正整數 n 10 4 總人數 和 k 10,總排數 隨後 n 行,每行給出乙個人的名字 不包含空格 ...