jzoj 1389. 【2012.02.25普及组】单词 结题报告
2016-07-13 19:31
537 查看
1389. 【2012.02.25普及组】单词 (Standard IO)
时间限制: 1000 ms 空间限制: 131072 KB题目描述
FJ想计算他的N(1<=N<=1000)只奶牛的名字的好听度,每个名字是一个长度不超过1000的英文字母组成。他创建了一个好名字的集合,数量为M(1<=M<=100),每个好名字的长度不超过30,奶牛的名字中每包含一个好名字(“包含”不一定要求连续),那么它的好听度就加1.
所有的名字都不区分大小写,如名字“Bessie”包含“Be”、“sI”、“EE”、“Es”,但是不包含“eB”。
现在请你帮FJ计算每个奶牛名字的好听度。
输入
第1行: 2个用空格隔开的整数:N 和 M;第2..N+1行: 第i+1为第i个奶牛的名字;
第N+2..N+M+1行:第N+i+1行为第i个好名字。
输出
第1..N行:第i个数为第i头奶牛名字的好听度。样例输入
5 3 Bessie Jonathan Montgomery Alicia Angola se nGo Ont
样例输出
1 1 2 0 1
代码如下:
直接枚举即可 这道题其实超级水!!!不要被那个极限的(1000*1000*30*100)的循环吓到了,事实上这个4重循环是可以卡过的(jzoj上是AC哒)
var n,m,i,j,k,l,d:longint; s:boolean; a:array[0..300]of ansistring; b:array[0..10000]of ansistring; c:array[-1..10000]of longint; procedure init; var i:longint; begin readln(n,m); for i:=1 to n do begin readln(b[i]); b[i]:=upcase(b[i]); end; for i:=1 to m do begin readln(a[i]); a[i]:=upcase(a[i]); end; end; begin init; for i:=1 to n do begin for j:=1 to m do begin d:=0; for l:=1 to length(a[j]) do begin s:=false; for k:=d+1 to length(b[i]) do if a[j][l]=b[i][k] then begin d:=k; s:=true; break; end; if not s then break; end; if s then inc(c[i]); end; end; for i:=1 to n do writeln(c[i]); end.
相关文章推荐
- jzoj 1388 【2012.02.25普及组】探索的奶牛 结题报告
- URAL 1389 Roadworks
- January 24th 模拟赛A T3【NOI2014模拟】数列 Solution
- January 22nd 模拟赛A&B T3 【2014东莞市选】分组 Solution
- December 10th 模拟赛C T4 二叉树 Solution
- December 10th 模拟赛C T3 X-因子链 Solution
- December 10th 模拟赛C T2 下棋 Solution
- December 10th 模拟赛C T1 分发糖果 Solution
- I Love Matrix Forever
- September 24th 模拟赛C T2 序列和 Solution
- September 24th 模拟赛C T1 电费结算 Solution
- September 17th 模拟赛PJ T4 稀有逛超市 Solution
- September 17th 模拟赛C T3 石子游戏 Solution
- September 17th 模拟赛C T2 独立集 Solution
- September 17th 模拟赛C T1 铁轨 Solution
- September 10th 模拟赛C T3 雕塑 Solution
- September 10th 模拟赛C T2 火炬手 Solution
- September 10th 模拟赛C T1 电影票 Solution
- September 3rd 模拟赛C T3 数字 Solution
- September 3rd 模拟赛C T2 比赛 Solution