farmer john給穀倉安裝了乙個新的安全系統,並且要給牛群中的每乙個奶牛分配乙個有效的密碼。乙個有效的密碼由l(3 <= l <= 15)個小寫字母(來自傳統的拉丁字母集』a』…『z』)組成,至少有乙個母音(『a』, 『e』, 『i』, 『o』, 或 『u』)和兩個子音(除去母音以外的音節),並且是按字母表順序出現的(例如,'abc』是有效的,而』bac』不是) 。給定乙個期望長度l和c個小寫字母,寫乙個程式,列印出所有的長度為l、能由這給定的c個字母組成的有效密碼。密碼必須按字母表順序列印出來,一行乙個。你的程式只需輸出前25,000個有效密碼,即使後面還存在有效密碼。
第一行: 兩個由空格分開的整數,l和c;
第二行: c個空格分開的小寫字母,密碼是由這個字母集中的字母來構建的。
第一至?行: 每乙個輸出行包括乙個長度為l個字元的密碼(沒有空格)。輸出行必須按照字母順序排列。如果存在多於25,000個有效密碼,你的程式必須在輸出25,000個有效密碼後停止。
4 6a t c i s w
acis
acit
aciw
acst
acsw
actw
aist
aisw
aitw
astw
cist
cisw
citw
istw
這道題可以根據我之前的一篇部落格排列的生成來修改,題中有兩個要求:乙個是一母音二子音,另乙個是如果有多,只輸出25000個,這兩個要求必須要注意。
#include
#include
#include
using
namespace std;
int a[16]
,n,m,ok[27]
,o1,o2,s=0;
char b;
void
init()
}void
dfs(
int dep,
int sum)
if(o1==
0||o2<=1)
return
;//要求一
for(
int i=
1;i<=n;i++
)cout<<
char
(a[i]+96
);cout
(s==
25000
)exit(0
);//要求二
return;}
for(
int i=sum+
1;i<=
26;i++)}
}int
main()
SDUT 2893 B(DP 記憶化搜尋)
time limit 1000ms memory limit 65536k 有疑問?點這裡 有n塊地板排成一條直線,從左到右編號為1,2,3.n 1,n,每塊地板上有乙個權值w。如今要小b用這n塊地板玩乙個遊戲。小b能夠選擇隨意一塊地板作為起點,然後向右跳k次,每次最多能夠跳5個格仔 設起跳點地板編...
bzoj2893 集合計數
乙個有n個元素的集合有2 n 個不同子集 包含空集 現在要在這2 n個集合中取出若干集合 至少乙個 使得 它們的交集的元素個數為k,求取法的方案數,答案模1000000007。是質數喔 一行兩個整數n,k 一行為答案。3 2 樣例說明 假設原集合為 則滿足條件的方案為 資料說明 對於100 的資料,...
免費 SSL 和 便宜 SSL 介紹
startssl.com startcom公司提供免費startssl class 1 證書,有效期1年,證書到期後可以免費續期,根證書除 ie6 之外幾乎全部支援,申請具有一定難度,對 有一定的核審。不過昔日有使用其證書無論伺服器做國內國外都被 q 的事情。cloudflare.com 國際知名的...