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,則這個細胞在下一秒因電量不足...