c++&oi

培训作业-第一周(树状数组)

由于程序很多所以就不放在上面了。
只是写了一下总结。

树状数组题目列表

POJ 3378  Crazy Thairs      (WA)        
POJ 2481 Cows                AC
POJ 2352 Stars                AC
POJ 3321 Apple Tree        AC
POJ 3067 Japan               AC
POJ 1195 Mobile phones  AC
POJ 2155  Matrix             AC
POJ 1990  MooFest          AC

二中培训题3        【这显然是线段树吧。。。】

总结

第一周写作业就没写完。。。对不起大家。
留下了三道题目继续思考。那个培训题3就当做下一周的线段树吧。

poj2352(3次AC)
根据题意用树状数组模拟。
这道题我竟想了好久,写完之后数组上向下溢出。。。
(可能是英语水平退步的缘故,读完题各种条件印象不深)

poj1195(2次AC)
二维树状数组
一开始没有注意循环的处理,由于样例不过,检查出来了。
改后提交WA,
原来是不小心打错了y1->y2。。。
(没有检查!)

poj3067(AC)
排序+树状数组
貌似是以前做过的。。。但还是花了不少时间。(还研究了一下sort和qsort)
这里排序是双关键字,用了cstdlib的快排。
关于cstdlib的快排用法的文章已经转到了我的cppblog
数据比较大,要用long long
【固定思维是:升序排序+树状数组倒着用。何必呢?树桩数组才是主题,降序排序不就行了吗。。。】

poj3378 (WA)
简单DP
实现时用树状数组+离散化
数据规模大得惊人!!
写了高精度后莫名地挂掉。

poj2155(AC)
模式二的水题,而且还可以化简为 ^ 运算。。。
快速地学习了一下模式二就AC了

poj2481(5次AC)
看似只是简单的sort+树状数组。
其实细节比较多,sort是双关键字。
然后由
Given two cows: cowi and cowj, their favourite clover range is [Si, Ei] and [Sj, Ej].
 If Si <= Sj and Ej <= Ei and Ei - Si > Ej - Sj, we say that cowi is stronger than cowj.
知边界可以相同,又不能完全相同。
加上poj.org和我家的时间不一致,导致我以为没有提交成功。。。提交了几次错误的代码。。。。。

poj3321(2次AC)
利用树的欧拉序列,记录每个节点的起始时间和它的子树的结束时间。
化点为线,且a是b的子节点<==>区间a属于区间b
怎么WA的一次忘记了。。

poj1990(AC)
这题是最难最难的。
按V排序,利用树状数组计算
sigma|xj-xi|=xi*sigma(1)[xj<xi]-sigma(xj)[xj<xi]
             +sigma(xj)[xj>xi]-xi*sigma(1)[xj>xi]

 

posted on 2012-02-26 12:47 zyn.cpp 阅读(294) 评论(0)  编辑 收藏 引用


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


<2012年2月>
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910

导航

统计

常用链接

留言簿

随笔档案(57)

文章档案(13)

搜索

最新评论

阅读排行榜

评论排行榜