Visitors hit counter dreamweaver

02 2012 档案

摘要:POJ 2528 关键在于插入数据的顺序------从上往下依次插入每张海报,这样后插入的海报不可能覆盖先插入的海报,因此插入一张海报时,如果发现海报对应区间有一部分露出来,就说明该海报部分可见。#include <iostream>#include <algorithm>using namespace std;struct Cpost{ int L,R;};Cpost posters[10100]; //存储海报int x[20200]; //存储端点编号int Hash[10000010]; //存储离散后的端点的编号,端点的大小为1QW,所以要大。struct C 阅读全文
posted @ 2012-02-27 18:54 Jason Damon 阅读(347) 评论(0) 推荐(0) 编辑
摘要:POJ1151 一开始做的时候,我还用以前做的离散化的方法来离散化这题中的数据,但是后来才发现,它里面包含了浮点数。不能直接的离散化!必须转化为整数后,再来影射.又学习了一种离散化的方法。还有就是扫描线的方法,第一次听说,开始看这题的正确代码的时候,看半天没看懂。。。耽误了好久时间。后来终于明白了什么是扫描线的方法了。呵呵,又学习了! 具体的分析可以看下图: 在Y轴进行离散化。n个矩形的2n个横边纵坐标共构成最多2n-1个区间的边界,对这些区间编号,建立起线段树。//以Y轴来离散化数据#include <iostream>#include <algorithm>usin 阅读全文
posted @ 2012-02-27 16:26 Jason Damon 阅读(1455) 评论(0) 推荐(0) 编辑
摘要:通过这道题还是又进一步对线段树有了更深的认识,加油加油! 借郭老师的分析: 本题树节点要存哪些信息?只存该区间的数的和,行不行?只存和,会导致每次加数的时候都要更新到叶子节点,速度太慢,这是必须要避免的。本题树节点结构:struct node { intl ,r; //区间起点和终点 node * pLeft, * pRight;long long sum; //原来的和 long long inc;//增量n的累加 }; //本节点区间的和实际上是sum+inc*(r-l+1) 在增加时,如果要加的区间正好覆盖一个节点,则增加其节点的inc值,不再往下走,否则要更新sum,再将增量往下传.. 阅读全文
posted @ 2012-02-23 21:51 Jason Damon 阅读(297) 评论(0) 推荐(0) 编辑
摘要:昨天去找大四的一个学姐买了两本书,回来后看她书上写的东西,就知道她保研了。然后我又在QQ上和她聊了好久,主要是问她一些关于保研的事情。她说她大一的时候的成绩才76分,靠大二大三的努力,她最后把平均分拉到了85.4分。哇哇!激励人啊!竟然可以有那么大的提升,膜拜ing。当谈到大三下学期的时候,她说这学期也很重要的哦~因为这学期的学分挺多的,必修限选总共有18个学分,不可忽视。而且最后老师都会划重点的,只要好好努力,这学期还是可以拉好多分的!幸亏啊。。。不跟学姐交流之前,我自己认为这学期已经很轻松了,随随便便学学就行了。这可是打错特错啊!想我现在的成绩是84.9,虽说保研没什么大问题了,但要想报. 阅读全文
posted @ 2012-02-23 00:07 Jason Damon 阅读(924) 评论(2) 推荐(0) 编辑
摘要:再次理解线段树。比第一次又有了更深刻的认识,虽然还不能完全靠自己写出来,但自己慢慢的去摸索,一定能慢慢理解那个套路了。加油,拿下线段树。同时,推荐北大郭炜讲的线段树。poj3264#include <iostream>#include <algorithm>#include <numeric>using namespace std;#define MY_MIN 99999999#define MY_MAX -99999999struct CNode{ int L,R; int nMin,nMax; CNode *pLeft,*pRight;};int min 阅读全文
posted @ 2012-02-21 21:11 Jason Damon 阅读(1406) 评论(1) 推荐(0) 编辑
摘要:http://apps.hi.baidu.com/share/detail/15064014http://www.jb51.net/article/22773.htm 阅读全文
posted @ 2012-02-21 09:58 Jason Damon 阅读(135) 评论(0) 推荐(0) 编辑
摘要:#include <iostream>#define MAXN 30000using namespace std;struct node{ int l,r,m,c;}tree[3*MAXN];void create(int l,int r,int num){ tree[num].l=l;tree[num].r=r; tree[num].m=(l+r)>>1;tree[num]=r-l; if(l+1!=r){ create(l,tree[num].m,2*num); create(tree[num].m,r,2*num+1); }}int u... 阅读全文
posted @ 2012-02-08 16:06 Jason Damon 阅读(183) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示