題目有些難讀懂。
大致意思是:
(1)每行人有n/k個,如果有多則都排在最後一行。
(2)最後一行的人比前行的人都要高
(3)每行中最高的人站在中間。
(4)每行第二高的人站在最高人的左邊,第三高的人站在最高人的右邊,依次類推。
(5)如果有相同身高的人,要以字母表順序排列。
ac**:
#include#include#include#include#include#include#include#include#include#include#include#define ll long long
#define inf 24*60*60
using namespace std;
struct node
;node a[10005];
bool cmp(node x,node y)
}vectorv[15] ;
int main()
for(int i=0;i<15;i++)
sort(a,a+n,cmp);
int len=n/m;
for(int i=0;i=i*len;j--)
else}}
else
else}}
}for(int i=m-1;i>=0;i--)
{cout<
浙大pat甲級 1024
可用3個vector來進行處理,先將輸入的數字都壓入到第1第2個vector中,從i 0到k迴圈判斷是否為對稱數,如果不是對稱數則將其與倒轉數相加,並將得到的每一位數加入到第三個vector的頭部,並將新的第三個vector重新賦值給第一第二,直到該數為對稱數或i k結束迴圈。ac include ...
浙大PAT甲級 1039
一開始想到用map 但是會超時。由於題目中的名字由三個字母和乙個數字組成,因此有26 26 26 10種,因此可以用hash來做。使用setmm max max 26 26 26 10 5 同時輸入名字時也應改為char s 5 scanf來輸入。ac include include include...
浙大PAT甲級 1045
這個題考查dp,最長非遞減序列。dp i 表示以a i 為結尾的最長非遞減序列。初始化dp為1,狀態轉移方程為dp i max 1,dp j 1 j特別注意 沒有出現在最喜愛的序列中的數,其優先順序為0,在考慮最長非遞減序列時,應直接忽略0。ac include include include in...