1001.Alice and Bob

签到题*1,只要x * 2 == n && y * 2 == m就满足条件。

 var
m, n, x, y : int64; begin
while not eof do begin
readln(m, n, x, y);
if (m = * x) and (n = * y) then writeln('YES') else writeln('NO');
end;
end.

1002.Bob and math problem

我真是WA的不行,但是很明显我的算法没有问题啊。。。

(2014/9/28 22:36更新 原来是Pascal的eof做的死,早知道以后不再也用P了><)

我的算法:统计0到9的个数,然后找出最小的奇数放到末尾,接着从9到0输出,最后输出选出的那个奇数。

中间要判断输出-1的情况:没有奇数;找出一个奇数以后只剩下0了。

 var
num : array[..] of longint;
n, ch, i, j, x : longint; function find : boolean;
var
i : longint;
flag : boolean; begin
flag := true;
for i := to do
if num[i] > then flag := false;
find := flag and (n <> );
end; begin
while not eof do begin
readln(n);
if n = then exit;//这句话没加我就会WA,不知道为啥子捏~
fillchar(num, sizeof(num), );
for i := to n do begin
read(x);
inc(num[x]);
end;
ch := ;
for i := to do begin
j := i * - ;
if num[j] > then begin
ch := j;
dec(num[j]);
break;
end;
end;
if (ch = ) or find then begin
writeln(-);
continue;
end;
for i := downto do
while num[i] > do begin
write(i);
dec(num[i]);
end;
writeln(ch);
end;
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即可。

 var
i, x, k, len, left, t1 : longint;
first, next, num, last : array[..] of longint;
s : ansistring;
T : longint;
ans : int64; begin
readln(T);
while T > do begin
dec(T);
ans := ;
readln(s);
readln(k);
len := length(s);
left := ;
fillchar(first, sizeof(first), );
fillchar(last, sizeof(last), );
fillchar(num, sizeof(num), ); for i := to len do begin
x := ord(s[i]);
if first[x] = then first[x] := i;
inc(num[x]);
next[last[x]] := i;
last[x] := i;
if num[x] > k then begin
dec(num[x]);
t1 := first[x];
first[x] := next[first[x]];
if t1 > left then left := t1;
end;
inc(ans, i - left);
end;
writeln(ans);
end;
end.

1004.Argestes and Sequence

看我来直播作死:

2014/9/28 22:17  1004在线BIT交到现在都是MLE,于是我把它删了,发誓明天一定要写出离线算法!

2014/9/28 22:51  1004在我无数的WA之后终于A掉了!

这道题一开始我想到的是线段树,后来发现是求段和于是树状数组(BIT)就可以搞定啦。

但是发现会无限MLE,于是需要一些奇怪的技巧:离线做。

因此我们做10次每次做一位即可。

于是我们现在只考虑某一位上的数如何行统计:

令a[i][j]表示前i个数中j出现的次数。于是操作是单点修改和求前缀和,明显拿BIT维护。

其实还可以分开0到9都做一次,这时候只要700k+(标程)的空间。但是给了3WK的空间就要用满嘛。。。

 var
ch : char;
t : longint;
n, m, i, j, di : longint;
bit : array[.., ..] of longint;
opt, l, r, d, p, x, a, b, c, ans : array[..] of longint; function lowbit(x : longint) : longint;
begin
lowbit := x and (-x);
end; procedure add(x, y, del : longint);
begin
while x <= n do begin
inc(bit[x, y], del);
inc(x, lowbit(x));
end;
end; function query(x, y : longint) : longint;
var
res : longint; begin
res := ;
if x <> then
while x > do begin
inc(res, bit[x, y]);
dec(x, lowbit(x));
end;
query := res;
end; procedure main;
begin
readln(n, m);
for i := to n do
read(a[i]);
readln;
for i := to m do begin
read(ch);
if ch = 'Q' then begin
opt[i] := ;
readln(l[i], r[i], d[i], p[i]);
end else begin
opt[i] := ;
readln(x[i], b[i]);
end;
end; for di := to do begin
fillchar(bit, sizeof(bit), );
c := a;
for i := to n do begin
add(i, a[i] mod , );
a[i] := a[i] div ;
end;
for i := to m do begin
if (opt[i] = ) then begin
add(x[i], c[x[i]] mod , -);
add(x[i], b[i] mod , );
c[x[i]] := b[i];
b[i] := b[i] div ;
end else
if d[i] = di then
ans[i] := query(r[i], p[i]) - query(l[i] - , p[i]);
end;
end;
for i := to m do
if opt[i] = then writeln(ans[i]);
end; begin
readln(t);
while t > do begin
dec(t);
main;
end;
end.

BestCoder Round #11 题解集合的更多相关文章

  1. BestCoder Round #11 (Div. 2) 题解

    HDOJ5054 Alice and Bob Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  2. BestCoder Round #11 (Div. 2) 前三题题解

    题目链接: huangjing hdu5054 Alice and Bob 思路: 就是(x,y)在两个參考系中的表示演全然一样.那么仅仅可能在这个矩形的中点.. 题目: Alice and Bob ...

  3. BestCoder Round #60 题解链接

    题解  题目 1001 GT and sequence 注意先特判000的情况:如果读入的数据有000,那么去掉所有的000且最后答案和000取一个max. 剩下的正数显然全部乘起来比较优. 对于负数 ...

  4. BestCoder Round #11 (Div. 2)

    太菜,仅仅能去Div2.(都做不完 ORZ... 各自是 HDU: 5054pid=5054"> Alice and Bob 5055Bob and math problem 5056 ...

  5. bestcoder Round #7 前三题题解

    BestCoder Round #7 Start Time : 2014-08-31 19:00:00    End Time : 2014-08-31 21:00:00Contest Type : ...

  6. BestCoder Round #90 A+B题解!

    BestCoder Round #90 A  Kblack loves flag 题意有点迷不造思路很简单但不造怎么求随机数,纠结了一会后直接粘上题目所给的代码稍加修改A了. const int _K ...

  7. Codeforces Global Round 11 个人题解(B题)

    Codeforces Global Round 11 1427A. Avoiding Zero 题目链接:click here 待补 1427B. Chess Cheater 题目链接:click h ...

  8. BestCoder Round #68 (div.2) tree(hdu 5606)

    tree Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Submis ...

  9. BestCoder Round #90 //div all 大混战 一题滚粗 阶梯博弈,树状数组,高斯消元

    BestCoder Round #90 本次至少暴露出三个知识点爆炸.... A. zz题 按题意copy  Init函数 然后统计就ok B. 博弈 题  不懂  推了半天的SG.....  结果这 ...

随机推荐

  1. python_way day12 sqlalchemy,原生mysql命令

    python_way day12  sqlalchemy,mysql原生命令 1.sqlalchemy 2.mysql 原生命令 一,sqlalchemy SQLAlchemy本身无法操作数据库,其必 ...

  2. 关于HTML5与移动开发

    OSChina API列表: android api:http://tool.oschina.net/apidocs AppCan移动开发平台:http://doc.appcan.cn/#!/guid ...

  3. shell script创建库

    先创建名称为 myfuns # my script functions function addem { + $ ] } function multem { * $ ] } function dive ...

  4. 关于Java控制台输入输出乱码问题

    产生原因:因为这个开源项目的默认字符编码为UTF-8,所以我的控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误( ...

  5. [转载]bigtable 中文版

    转载厦门大学林子雨老师的译文 原文: http://dblab.xmu.edu.cn/post/google-bigtable/ Google Bigtable (中文版) 林子雨2012-05-08 ...

  6. Oracle 11g安装步骤详谈

    又是十月南京阴雨天气 图书馆花了一个多小左右把11g安装折腾好了.其中折腾SQL Developer 花了好长时间,总算搞定了.好了,先总结下安装步骤,希望给后面的童鞋提高安装效率. 相互方便  共同 ...

  7. 【Todo】Mybatis学习-偏理论

    之前写过好几篇Mybatis相关的文章: http://www.cnblogs.com/charlesblc/p/5906431.html  <SSM(SpringMVC+Spring+Myba ...

  8. hiho1092_have lunch together

    题目 两个人从同一个点出发,在一个餐厅中寻找两个相邻的座位,需要是的从出发点到达座位的距离总和最短.题目链接: Have Lunch Together     最短路程,一开始以为要用dijkstra ...

  9. 利用ITextSharp导出PDF文件

    最近项目中需要到处PDF文件,最后上网搜索了一下,发现ITextSharp比较好用,所以做了一个例子: public string ExportPDF() { //ITextSharp Usage / ...

  10. C# 中的弱引用 WeakReference

    C#中的弱引用(WeakReference)   我们平常用的都是对象的强引用,如果有强引用存在,GC是不会回收对象的.我们能不能同时保持对对象的引用,而又可以让GC需要的时候回收这个对象呢?.NET ...