算法学社
記錄難忘的征途
posts - 141,comments - 220,trackbacks - 0
A
   一个有序数组A交换两个数之后, 变成数组B, 现在给出数组B, 问它是否可能由一个A变化而来.

算法分析:
   
   送分题, 将B排序之后比较错误的位置, 我这个NC居然YY了一个奇葩方法然后WA掉了.
代码: http://codeforces.com/contest/220/submission/2085314

B
   给一个长度为n(n<100,000)的序列, m(m<100,000)次询问, 每次询问区间[l,r]内有多少个数X出现了X次.

算法分析:
   
   这样的数不超过sqrt(n)个, 所以离线求出所有这样的数, 然后去更新所有的询问.

代码: http://codeforces.com/contest/220/submission/2076753
C
   有两个n-排列(n<100,000){a},{b}, 定义f(a,b) = min(abs(i,j)) when ai == bj. 求{b}所有的循环与a的距离.

算法分析:
   
   维护两个优先级队列A,B, A中存放的是所有(ai == bj && j >= i)的abs(i,j)值, B反之.
   所以A是不断变大的, B是不断变小的, 有两种情况需要改变优先级队列的结构:
      B中元素减少到0 , 小case ~~
      循环的时候, 末尾的元素更新
   这样涉及到元素的删除, 我们肯定不能真的删除, 而是选择弹出"废物"节点.
   于是维护一个数组, 存放每个元素的当前位置就可以了.

代码: http://codeforces.com/contest/220/submission/2085278

D
   询问在4000*4000的网格中, 面积是整数的三角形有多少个?

算法分析:
   不妨判断面积乘以2等于偶数的三角形有的多少, 根据叉积推导面积, 发现至于三个顶点坐标的奇偶性有关.
   我们可以想像一个1*1的格子的四个点一定代表了四个种类的格子, 那么三个不同种类的格子肯定是不能构成三角形了.
   然后暴力找规律发现有两个奇偶性相同的格子一定能构成面积是整数的三角形.

   于是组合数求出一个数, 减去退化的情况.
   我们可以对共线的三点的最外两点进行统计, 枚举底和高, 4000*4000.
   然后乘以起点和中间点, 中间点的数量就是底和高的gcd了.

代码: http://codeforces.com/contest/220/submission/2100456

E
   给一个长度为n的序列,(n<100,000). 问存在多少对l,r使得a1...l cons ar ...n-1的逆序数不超过k(k<long long)

算法分析:
   维护l和r两个值, 随着l的增加, r单调不上升. 在这个过程中维护三个值:
      pl 1...l 的逆序数
      pr r...n-1的逆序数   
      pz 1...l中比r大的数
   随着r的不断增加我们可以用线段树维护这三个值.

代码: http://codeforces.com/contest/220/submission/2087403
posted on 2012-09-01 12:57 西月弦 阅读(590) 评论(7)  编辑 收藏 引用 所属分类: 解题报告

FeedBack:
# re: codeforces #136 div1
2012-09-02 13:52 | wu
为什么可以这样子看代码,怎么弄的  回复  更多评论
  
# re: codeforces #136 div1
2012-09-02 14:20 | 西月弦
@wu
看自己代码的时候单击右上角的#  回复  更多评论
  
# re: codeforces #136 div1[未登录]
2012-09-06 17:44 | 李翔
B题的代码已经不能AC,和我出现了相同的错误,似乎是之后又增加了数据例  回复  更多评论
  
# re: codeforces #136 div1
2012-09-06 19:38 | 西月弦
@李翔
可以啊... 我又交了一次, AC了....  回复  更多评论
  
# re: codeforces #136 div1[未登录]
2012-09-06 21:01 | 李翔
@西月弦
额。。。。。这就有点奇怪了,我也交了,wa在第33个,然后看了下其他人的博客,有评论说已经错了  回复  更多评论
  
# re: codeforces #136 div1
2012-09-06 21:55 | 西月弦
@李翔
你可以把提交的link发给我么,谢谢  回复  更多评论
  
# re: codeforces #136 div1[未登录]

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理