題目鏈結
<==戳這
這題要注意幾個點:
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 行,每行給出乙個人的名字 不包含空格 ...