自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 POJ 3322 Bloxorz I 三维BFS

本来只是打算为今晚的CF热热手的,结果选了道坑爹的BFS。写了350多行的代码还WA了一次。。。。。对于普通的方格有五种情况,如下图所示,对于方格5来说,与1,与2,与3,与4组成的矩形为四种不同的情况,还有一种为竖直站立的情况。对于Easily Broken Grid只存在前四种情况。很显然第三维标记这几种情况即可。思路还算简单,代码写的比较麻烦了。。。。话说今年大年三十哇,

2014-01-30 18:05:18 1862

原创 CodeForces 385C Bear and Prime Numbers 线段树+素数筛

题意:首先给你N个数。然后有M次询问,每次询问给出一段区间,首先找出这段区间内的所有素数,然后计算对于这段区间内第 i 的素数Pi,这N个数中有多少个数能被Pi整除,设有Si个数能被Pi整除,然后输出Si的和。思路:因为这个N个数的范围为 [ 2 , 1000W]memset(mark,0,sizeof(mark)); for(i = 2;i <= 10000000; ++i)

2014-01-25 11:43:16 1292

原创 POJ 3694 Network

求桥,缩点,LCA,还有重边,之后还要加Q条边,每次加完后询问一次桥的个数。。。个人感觉算是比较麻烦的题了。。。给出N个点,M条边,保证所有点连通,数据中有重边,之后加入Q条边,每次加完后,输出一个整数代表图中剩余的桥的数量。首先找出所有的桥,将桥删除,然后将双连通分量进行缩点,用桥将这些点连接起来,然后用LCA处理。对于每条新加入的边,首先判断其两端点被缩进了哪个点,设其分别被缩进了

2014-01-20 13:30:04 820

原创 POJ 3352 Road Construction 边的双连通分量 + 缩点

题意:最少添加几条边使得整个图变为边双联通分量。求出途中所有的桥,删除之。将剩下的边连通分量缩成一个点(此处可用并查集实现)。然后用桥将这些点连通,设图中度为一的点的个数为n,则(n+1)>>1,即为答案。边连通度:是一个原本连通的子图变成不连通所需要删除的最少的边数。桥:删除一条边使得原本连通的图变的不连通,则称此边为桥。边双连通分量:边连通分量大于等于二的子图称为边

2014-01-19 15:22:48 1027

原创 CodeForces 382D Ksenia and Pawns __DFS

题意:给出一个棋盘和两个棋子,'#'可以同时放两个棋子,其他的最多只能放一个。开始时在棋盘上放两个棋子,每一回合两个棋子必须移动且只能按照指示方向移动一个格子。一个棋子移动一步就获得一分,问最后能获得多少分。思路:对于每一个格子,只能走向一个格子,但是可能能从多个格子走过来。则逆向建图就再合适不过了。因为在没有环的情况下,逆向建图每个节点的入度 显然此时可以得到一个森林,也可能只有一棵树。

2014-01-19 09:28:20 1554

原创 POJ 2051 Argus 堆排序 贴个模板

#include #include #include #include #include #include #include #pragma comment(linker, "/STACK:1024000000");#define LL long long intusing namespace std;const int MAXN = 1010;struct N{

2014-01-17 19:52:07 834

原创 CodeForces_GoodBye 2013_F New Year Tree LCA问题

题意:在一棵树上每次在一个节点上增加两个子节点,问每次更新后树上的最长的一条链是多少。设最长链的长度为len,链的两个端点为e1,e2,每次增加点的编号为a1,a2。开始时,显然有len = 2,且可以有 e1 = 2,e2  = 3。每次通过判断a1与e1,e2之间的较长的一段是否大于len,若不大于则无需更新。若大于则更新相应节点,若较长一段为a1与e1,则令e2 = a1,否

2014-01-16 20:23:10 914

原创 浅谈LCA的几种算法

LCA,Lowest Common Ancestor,最近的公共祖先。在一棵树中对于两个节点u , v找出节点T,使得T同时为u,v的祖先。显然这样的T点肯定存在且有可能有多个,其中深度最大的那个点肯定为即为u,v两点的LCA。关于LCA的解法有很多种,暴力枚举,事先需要知道所有询问的离线的tarjan算法和基于RMQ的在线算法,下面说一下自己对这种几种算法的理解。 ⒈最容易想到的暴力搜索

2014-01-10 10:37:44 9187

原创 POJ 3264 Balanced Lineup 最基本的RMQ

其实这个题早就过了,只是当时为了偷懒拿线段树做的。当时肤浅的认为RMQ问题线段树都能胜任,现在才发现毕竟土洋。不过线段树做多了,RMQ就显得很容易理解了。其实RMQ很多算法,不过最通用的应属ST算法,总体思想就是一个很简单的dp。以求区间最大值为例,数组dp[ i ][ j ]记录的是区间[ i , i + (1也就是说是从第 i 个元素开始,连续的 (1不难发

2014-01-03 20:27:31 842

空空如也

空空如也

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

TA关注的人

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