NOIP模拟 门票(dfs)
来源:互联网 发布:简单的视频制作软件 编辑:程序博客网 时间:2024/04/27 17:33
3 .门票
【问题描述】
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 个有效密码,即使后面还存在有效密码。
分析:先把字母从小到大排序,然后直接dfs,判断一下元音辅音什么的就好了。
代码
var
l,c,i,j,sum:longint;
ch:char;
a,b:array[0..26] of char;
f:array[0..26] of boolean;
function check:boolean;
var
i,p:longint;
begin
p:=0;
for i:=1 to l do
if b[i] in [‘a’,’e’,’i’,’o’,’u’] then inc(p);
if (p>=1) and (l-p>=2) then exit(true);
exit(false);
end;
procedure dfs(dep,x:longint);
var
i:longint;
begin
if (dep>l) and (check) then
begin
inc(sum);
if sum>25000 then
begin
halt;
close(input);close(output);
end;
for i:=1 to l do
write(b[i]);
writeln;
exit;
end;
for i:=x+1 to c do
begin
b[dep]:=a[i];
dfs(dep+1,i);
end;
end;
begin
// assign(input,’ticket.in’);reset(input);
// assign(output,’ticket.out’);rewrite(output);
readln(l,c);
read(a[1]);
for i:=2 to c do
read(ch,a[i]);
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;
dfs(1,0);
close(input);close(output);
end.
- NOIP模拟 门票(dfs)
- [NOIP模拟][dfs]流
- [NOIP模拟题][DFS][DP]
- NOIP模拟题[dfs][DP]
- [NOIP模拟题][DFS][DP][乱搞]
- 10.5NOIP模拟考 dfs序+贪心
- 5.14特长生模拟 门票
- NOIP模拟题 [暴力][贪心][栈][dfs][找规律]
- [NOIP模拟题][杂题][状压DP][DFS序][线段树]
- 【DFS序】【线段树】【选派士兵】【noip模拟题】
- [NOIP模拟][状压dp][dfs序列][线段树]
- 特长生模拟——门票
- 【NOIP2016复赛模拟赛】门票
- NOIP模拟:Subset(分块)
- 【NOIP 模拟题】[T1]return(模拟)
- (noip 模拟 化简)<惊天大模拟>
- 【JZOJ5343】【NOIP模拟】健美猫(模拟)
- noip模拟2016——1 取数游戏 dfs 或 状压 noip练习
- react学习
- OkHttp工具类
- Spring系列之谈谈对Spring IOC的理解
- nyoj-19 擅长排列的小明
- ::before和::after伪元素的用法
- NOIP模拟 门票(dfs)
- 在线云评测系统日志(二):数据库逻辑的确定
- 高效制作PPT
- 批处理bat文件总结
- leetcode 21. Merge Two Sorted Lists Add to List
- Quartz简介
- Response.Write和ClientScript.RegisterStartupScript区别
- the source attachment does not contain the source for the file xxx.class无法关联到某个类
- BZOJ 1011: [HNOI2008]遥远的行星