5 14特長生模擬 門票

2021-08-01 06:16:04 字數 1800 閱讀 9920

mxy 正要經過新世界的大門。

現在有很多人在門口排隊,每個人將會被發到乙個有效的通行密碼作為門票。乙個有

效的密碼由l(3 <= l <= 15)個小寫字母(『a』…『z』)組成,至少有乙個母音(『a』, 『e』, 『i』,

『o』 或 『u』)和兩個子音(除去母音以外的音節),並且是按字母表順序出現的(例如,『abc』

是有效的,而』bac』不是) 。

mxy 想要知道今天的有效密碼是什麼。

現在給定乙個期望長度l 和c(1 <= c <= 26)個小寫字母,寫乙個程式,輸出所有的

長度為l、能由這給定的c 個字母組成的有效密碼。密碼必須按字母表順序列印出來,一行

乙個。【輸入】

輸入資料共2 行。

第1 行: 兩個由空格分開的整數,l 和c。(3 <= l <= 15,1 <= c <= 26)

第2 行: c 個由1 個空格隔開的小寫字母,密碼是由這個字母集中的字母來構建的。

【輸出】

若干行,每行輸出乙個長度為l 個字元的密碼(沒有空格)。輸出行必須按照字母順序

排列。你的程式只需輸出前25000 個有效密碼,即使後面還存在有效密碼。

var

a:array[0..27]of char;

y,f:array[0..26]of longint;

l,c,i,j,m:longint;

s:string;

function yuan(a:char):boolean;

begin

if (a='a')or(a='e')or(a='i')or(a='o')or(a='u') then exit(true);

exit(false);

end;

procedure dfs(e,t,k,j:longint;s:string);

var i:longint;

begin

if (k=l)and(e>0)and(t>1) then

begin if m>=25000 then halt;writeln(s);inc(m);exit;end;

if (e=0)and(y[j]=0) then exit;

if 2-t>f[j] then exit;

for i:=j to c do

if yuan(a[i]) then dfs(e+1,t,k+1,i+1,s+a[i])

else dfs(e,t+1,k+1,i+1,s+a[i]);

end;

begin

assign(input,'ticket.in');

assign(output,'ticket.out');

reset(input);rewrite(output);

readln(l,c);

for i:=1 to c do

read(a[i],a[0]);

for i:=1 to c-1 do

for j:=i+1 to c do

if a[i]>a[j] then

begin

a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];

end;

for i:=c downto 1 do

begin

y[i]:=y[i+1];f[i]:=f[i+1];

if yuan(a[i]) then inc(y[i]) else inc(f[i]);

end;

dfs(0,0,0,1,s);

close(input);close(output);

end.

5 14特長生模擬 朋友

mxy 即將前往新世界。在前往新世界的過程中,ta 遇見了兩種人。一種是只和lowb 做朋友,即當且僅當自己 的能力值大於對方時他們會成為朋友,另一種是大神我們做朋友,即當且僅當自己的能力 值小於對方時他們會成為朋友。現在告訴你兩種人的能力值。請你計算一共有多少對友好關係。排序 二分,因為排好序了,...

特長生模擬 採藥

題目大意 凡凡要去採藥,他採的藥不僅要求揹包的總空間v能放得下所採的藥,還要求藥草的總質量不能超過凡凡所能承受的範圍m。現在給出n種珍惜的藥材,對於每個藥材凡凡都會精準地目測出其質量a i 體積b i 和價值c i 求凡凡所能採到的藥材的最大價值。注意 每種藥材只有乙個。30 資料,所有藥草質量a ...

特長生模擬 BIOtech(模擬)

2.1 題目描述 bob 發現了一群有趣的細胞。這群細胞排列成乙個n m 的矩陣。每個細胞有兩個狀態 放電狀態和平靜 狀態。它們每秒鐘都會按以下的規則轉換狀態 首先我們定義,乙個細胞的鄰居為它周圍的8 個細胞。同時設k 為某乙個細 胞的處於放電狀態的鄰居的個數。若k 2,則這個細胞在下一秒因電量不足...