首页 > 代码库 > BestCoder Round #11 题解集合
BestCoder Round #11 题解集合
1001.Alice and Bob
签到题*1,只要x * 2 == n && y * 2 == m就满足条件。
1 var2 m, n, x, y : int64;3 4 begin5 while not eof do begin6 readln(m, n, x, y);7 if (m = 2 * x) and (n = 2 * y) then writeln(‘YES‘) else writeln(‘NO‘);8 end;9 end.
1002.Bob and math problem
我真是WA的不行,但是很明显我的算法没有问题啊。。。
我的算法:统计0到9的个数,然后找出最小的奇数放到末尾,接着从9到0输出,最后输出选出的那个奇数。
中间要判断输出-1的情况:没有奇数;找出一个奇数以后只剩下0了。
1 var 2 num : array[0..9] of longint; 3 n, ch, i, j, x : longint; 4 5 function find : boolean; 6 var 7 i : longint; 8 flag : boolean; 9 10 begin11 flag := true;12 for i := 1 to 9 do13 if num[i] > 0 then flag := false;14 find := flag and (n <> 1);15 end;16 17 begin18 while not eof do begin19 readln(n);20 fillchar(num, sizeof(num), 0);21 for i := 1 to n do begin22 read(x);23 inc(num[x]);24 end;25 ch := 0;26 for i := 1 to 5 do begin27 j := i * 2 - 1;28 if num[j] > 0 then begin29 ch := j;30 dec(num[j]);31 break;32 end;33 end;34 if (ch = 0) or find then begin35 writeln(-1);36 continue;37 end;38 for i := 9 downto 0 do39 while num[i] > 0 do begin40 write(i);41 dec(num[i]);42 end;43 writeln(ch);44 end;45 end.
1003.Boring count
这道题看了数据范围就知道要O(n)的算法,因为O(nlogn)的算法有点不大科学。。。
于是我来统计以每个字符s[j]为结尾的满足要求的字符串的个数,不妨设suff[i, j]表示s[i]到s[j]的子串。
又很明显如果suff[i, j]不满足条件了,则suff[i - 1, j]也不满足条件,若令f[j]表示以字符s[j]结尾的最左边满足条件的位置,则f[j]关于j是单调增的。
于是每次枚举j然后查找f[j], ans += j - f[j] +1即可。
1 var 2 i, x, k, len, left, t1 : longint; 3 first, next, num, last : array[0..150000] of longint; 4 s : ansistring; 5 T : longint; 6 ans : int64; 7 8 begin 9 readln(T);10 while T > 0 do begin11 dec(T);12 ans := 0;13 readln(s);14 readln(k);15 len := length(s);16 left := 0;17 fillchar(first, sizeof(first), 0);18 fillchar(last, sizeof(last), 0);19 fillchar(num, sizeof(num), 0);20 21 for i := 1 to len do begin22 x := ord(s[i]);23 if first[x] = 0 then first[x] := i;24 inc(num[x]);25 next[last[x]] := i;26 last[x] := i;27 if num[x] > k then begin28 dec(num[x]);29 t1 := first[x];30 first[x] := next[first[x]];31 if t1 > left then left := t1;32 end;33 inc(ans, i - left);34 end;35 writeln(ans);36 end;37 end.
1004.Argestes and Sequence
还没搞定啊。。
BestCoder Round #11 题解集合
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。