5.14特长生模拟 门票
来源:互联网 发布:sql server 2017 收费 编辑:程序博客网 时间:2024/04/27 15:04
- 题目
- 题解
- 代码
题目
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 个有效密码,即使后面还存在有效密码。
题解
暴搜,暴搜,要剪枝
1.剩下的元音不够了
2.剩下的辅音不够了
3.已经有25000个密码了
可以预处理剩下元音和辅音的数量
时间复杂度O(25000*26)
代码
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.
阅读全文
1 0
- 5.14特长生模拟 门票
- 特长生模拟——门票
- 5.14特长生模拟 朋友
- 门票(特长生准备)
- 5.14特长生模拟题 楼层
- 特长生模拟 BIOtech(模拟)
- 特长生模拟——楼层
- 特长生模拟——朋友
- 特长生模拟——侦察兵
- 特长生模拟——遭遇战
- 特长生模拟 Array(水)
- 特长生模拟 Distinct (二分)
- 特长生模拟——Array
- 5.16特长生模拟题 侦察兵
- 5.16特长生模拟题 遭遇战
- 特长生模拟——Biotech
- 特长生模拟——采药
- 特长生模拟——立体图
- Tensorflow函数——tf.variable_scope()
- socket.io (nodejs+express)
- swift中的沙盒路径(包含自定义文件路径)
- 关于Gif播放的实现
- opencv2.4.9移植到arm
- 5.14特长生模拟 门票
- HashMap集合和TreeMap集合
- Java实例-Swing简易计算器(加,减,乘,数)
- 登录oracle数据库时常用的操作命令整理
- java中map里面的key按我们插入进去的顺序输出
- Maven学习总结(4)——Maven核心概念
- 专家预测,未来将是大数据可视化当道
- Spring MVC 单元测试
- docker 初接触