自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(17)
  • 资源 (12)
  • 收藏
  • 关注

原创 poj线段树专题

poj 2528 水题#include #include #include using namespace std;#define N 40500int n;struct node{ int l,r,flag;}tree[N*4];struct Inter{ int l,r;}inter[N];int vis[N];int max(i

2012-10-31 11:47:33 4603

原创 hdu4005 缩点+无向图+重边

奉上数据:6 71 2 12 1 12 3 13 4 14 3 11 6 24 5 35 81 2 12 1 12 3 23 2 23 4 34 3 34 5 45 4 41 07 71 2 12 4 23 4 14 3 13 5 23 6 36 7 3

2012-10-22 11:12:49 1409

原创 hdu 3753 模拟

题目讲输入时可能有leading spaces and trailing spaces ,'@' in a single line是case separated symbol 然后就被坑了,  有些输入是以‘@’开头的,如果直接判断str[0]=='@'就WA了我就是牺牲者,好像挺明显的东西,只有我这种挫人才跳进坑里这几天遇到的还有给你case的数目,case separate

2012-10-20 15:29:54 803

原创 hdu4358 树状数组-非常经典

碰到过类似这题几次都做不出,只因为始终不理解这题值得推荐的理由:离散化,树形转化为数组的线性结构,离线做法,树状数组,排序后边插入边询问等多种处理技巧1.深搜后树上的某点的子树变成数组的一个区间,网上有人估计写挫了,说会爆栈,我不会,最好不用vector,会TLE,这题数据挺强的,后来改了邻接表过了,事实证明,邻接表还是时间空间都有很好效果的做法2.讲询问按右端点排序,每次插入更新

2012-10-19 16:47:37 1349 1

原创 uvalive 5026 树-直径

这个问题挺有趣,所以锲而不舍想要知道怎么做了解之后发现也挺直观和朴素,怎么当时就想不出来呢。。1.求最长路2.要移动的边肯定在最长路上3.枚举最长路上的每条边,对于每条边u->v(权值为w),移动它的策略是把u,v两个端点接在两边子树的最长路的中间位置4.接好后的最长路不一定是 x+w+y,还有可能是两个子树的最长路,要判断下#include #include

2012-10-18 19:56:08 685

原创 234D-cinema 水题被卡

查错的方法难道只有不断试数据了吗10 42 3 4 15aa31 2 0bb21 0cc41 2 3 0dd30 0 0ee21 0特判:只有一个可能超过最坏情况下的最大值,它的答案为0,不是2            可能的数量等于k,必为0#include #include #include #i

2012-10-16 22:11:46 1263

原创 hdu 1003/poj 1050 连续子序列最大和经典基础dp

之前不太理解,只记得和为负的就记为0,然后不断扫下去,更新ans实际上用了 sum[i]-sum[j] ,令ans最小,即找出最大的sun[j](jhdu1003  还要求出起始点和终点#include #include #include #include #include using namespace std;int dp[100500],n;

2012-10-15 13:22:55 1377

原创 UVAlive 5027 card game KM

以为思路错、模板错WA了好久原来是看错题,吸取教训了!#include #include #include #include #include using namespace std;#define N 300#define INF 20000000int cal(char *a,char *b){ int lena=strlen(a); int

2012-10-14 15:16:43 544

原创 poj 2104 归并树

每次查找二分出某个数,logn时间在树中找到它的区间,二分找比它小的数的个数,三次二分= (log n)^3解决的问题:查询某个区间内第k大的数值得注意的是:1.归并树,划分树都只能解决元素不重复的情况2.多个x有相同rank的时候取最大的x这些相同rank的数组成一个序列A1,A2,……An,之间两两不同,因为没有重复元素若答案不是An而是Ai(1

2012-10-14 00:59:16 898 2

原创 UVA Live 5029 Encoded Barcodes 字典树-水题

轻松1A无压力#include #include #include #include #include using namespace std;const int bk=26;struct node{ int val; node* nxt[bk]; node() { val=0;memset(nxt,0,sizeof(nxt)); }}*root;int n,

2012-10-13 16:49:11 619

原创 BNUOJ 14407 friends or not 水题写得bug很多

期间犯的错误:1.没看清题意,02.char a[]="aa";char b[]="aa"; if(a==b){} 这个循环跳不进去的,  即直接通过比较字符串指针来比较两个字符串是否相等3.pair 与   pair 是不同的4.用map的类型是map,int> 再调用find函数即犯了第二个错误5.之后改了string类型的,struct里面忘记改了,长期使用prin

2012-10-13 00:07:19 519

原创 CF232A-cycles 构造,贪心

k=C(n,3)+C(K1,2)+C(K2,2)+C(K3,2)+C(K4,2)........尽力表达成上式就能花费最小的点构造出尽量多的三元环#include #include #include #include #include using namespace std;#define ll long long#define INF (1000000000)i

2012-10-12 07:45:25 989

原创 poj 1258 最小生成树 prim+优先队列

想手打个堆优化,搞半天一直WA,悲剧……#include #include #include #include #include #include #include using namespace std;#define M 550000#define N 5500#define INF (1<<30)struct Edge{ int v,w; Edge(int

2012-10-10 09:23:52 1351

原创 UVA LIVE 5053 World Cup Nominations--有向图强连通

1.强连通里面的点可以到达彼此,即存在a->b 和 b->a,通过某些途径可以打败彼此,果断缩点,如果块里面某一点能赢,那么其他点也能赢,反之也是2.缩点后各块之间,对于某两个块,只可能块a的边全部指向块b,不会有a->b又有b->a,能赢的那些点一定是没有块指向它的,否则它还是不可能打败所有#include #include #include #include #

2012-10-05 21:06:04 841

原创 树的同构--poj 1635(有根树)ustc 1117 (无根树)

只有一个点入度为0的树是外向树,只有一个点出度为0的树是内向树,这两种是典型的有根树平时见到的无向图中的树是无根树1.判断树同构本质是哈希,每个点的权值是这个点的子树的权值和,这里所谓的权值是随机数产生的由于随机性,树上某一组合不同都会导致最终的结果不一样,所以只要判断根的权值是否相等就可以确定同构2.随机性决定了不确定性,但正确率还是很高3.可以不用哈希,用“最小表示”表示出

2012-10-04 21:37:34 3926

原创 hdu 4081 最小生成树

先求出最小生成树,然后枚举树上的边,对于每条边“分别”找出这条割边形成的两个块中点权最大的两个1.由于结果是A/B,A的变化会引起B的变化,两个制约,无法直接贪心出最大的A/B,故要通过枚举2.不管magic road要加在哪里,加的边是否是最小生成树上的边,都会产生环,我们都要选择一条边删掉注意删掉的边必须是树的环上的边,为了使结果最大,即找出最大的边3.可以枚举两点,找出边,也

2012-10-03 23:23:01 2806

原创 poj 3411 搜索+剪枝

记忆化搜索:s[status][cur] 记录在当前状态下,此刻位于cur点,到目的地所要的花费,由于一旦状态和位置确定,这个值是一定的二进制状态表示:注意到n,m都比较小,由此启发有一个剪枝:防止impossible时与目的地不连通而产生无限循环,有m条边,对于每条边,最多存放在m个环中,故为m*m  #include #include #include #i

2012-10-03 23:09:56 608

暗时间-电子书

教你运用方法时间管理时间管理时间管理时间管理时间管理运用运用运用运用运用运用

2014-03-31

机器学习 andrew 讲义

andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义 andrew 网易公开课 机器学习 讲义

2013-08-01

C++ 学习路线

C++ 学习路线

2013-08-01

acm入门题目集合

acm入门题目集合

2013-05-04

题表ACM-poj

acm的好资料

2013-05-04

优秀网页设计素材

很好的设计素材,来自设计群。

2013-04-30

RMQ与LCA问题

算法学习

2013-03-08

C++标准程式库

C++标准程式库

2012-05-18

数据结构 C++

数据结构 C++

2012-05-18

Visual C++面向对象编程

Visual C++面向对象编程

2012-05-12

深入浅出MFC

讲的非常深入,看的懂你就程度很好了 FJDLKSJFKLDSAFDSA FDSFDSA

2012-05-12

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除