自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 poj 2528 (线段树+离散化)

大致题意:     有一面墙,被等分为1QW份,一份的宽度为一个单位宽度。现在往墙上贴N张海报,每张海报的宽度是任意的,但是必定是单位宽度的整数倍,且<=1QW。后贴的海报若与先贴的海报有交集,后贴的海报必定会全部或局部覆盖先贴的海报。现在给出每张海报所贴的位置(左端位置和右端位置),问张贴完N张海报后,还能看见多少张海报    线段树就不说了》》主要是离散化怎么处理

2012-06-30 17:42:27 688

转载 poj 3411(dfs) 思路是别人的,代码自己写,为什么是3~9次

思路:http://blog.csdn.net/lyy289065406/article/details/6689310代码:#include#include#include#include#includeusing namespace std;const int INF=0xffffff;const int MAX=50;struct EDGE

2012-06-29 11:30:18 574

原创 poj 1321(DFS)

题意:在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。       像八皇后那题~~~注意恢复原来的状态就可以了。-------------------------DFS还需要练习------------------------------

2012-06-29 02:29:28 481

原创 poj 3107(图经典的DFS+回溯)

给出一个树,求删除一个点后,他的子树最大节点数的最小值。有点绕啊,,,~~    从第一个点进行DFS,求出每个节点除了递归的上层之外的叶子的子树最大节点数m,递归的过程中求出联通本身的节点数k,则该节点的最大子树就是max(m,n-k);有点像dp.    dfs还要多练~~~~~~~~~~~~~~~~~~~#include#include#include#include

2012-06-28 23:51:25 654

原创 HDU 4121(非常纠结的模拟)

起初是模拟红棋子能到达的都标记出来,然后判断黑棋子无法走了,就说明输了。但是这种想法是错的,因为红子在改动的时候回去影响其他棋子的范围,比较麻烦,还有的就是黑方可能把红色的棋子吃掉,从而黑方也不会输的。      唉,还是太年轻了,还有的思路:直接枚举黑方能到达的点,然后判断红方是否到达不就行了庅,非常简便。为啥开始想不到这个呢?这道是非常简单的现场赛题了,还很远。#include #

2012-06-28 17:52:12 1482

原创 hdu 2435(最小割 --dinic模板-- 最大流)

给定一个有向网络,边权为拆掉边的代价,现在1要到n去,n试图阻止1到达,它至少花多大代价。 条件是1可以在任意两点(不含1和n)加入一条边(此边不可被拆除),求n要花费的最小代价最大值。 如果没条件,那么就是求最小割。其实最小割就是求最大流。 可以枚举符合条件的所有的边,但是消耗太大了~这是题目要卡的地方。 所以用求最小割的时候,把源集记录下来,剩下的就是汇集了,这

2012-06-28 12:40:02 1357

原创 poj 3126(BFS)

题意:给出起点素数,只能变4位上的一个数变成零一个素数,求变成终止的素数至少需要多少不?  思路:很容易想到BFS而且素数筛选,但是素数之间的关系有点不好办,起初想用map[][]来存,如果能变成另一个素数为1,然后BFS();必然会超时啊,然后用vectot超时代码:Source CodeProblem: 3126 User: 1013101127

2012-06-27 15:38:47 3770

原创 poj 3325(模拟)

题意:给出队列n个数的优先级和他的位置,每次输出的必须是队列中优先级最高的数,否则就要插入队尾,给定位置的数要输出,求之前输出几个数(和它本身)?思路:开一个优先队列(其实一个大头的堆也可以)和一般存数的队列。模拟之。和之前的写过的一篇排队要看病列类似。代码:#include #include #include #include #include #include

2012-06-27 12:13:07 803

原创 div2_123_D

求s(X)所组成的折线出现的角。   思路:两直线的所成的角可以转化为他们与X轴的焦点,这很重要,代码就很简单了,但用long double 才能过啊,,用set.

2012-06-27 09:16:50 1177

原创 cf div2_123_e(并查集)

root(v)指向一节点的边权=depth(v)+x;求生成树的总边长。用并查集的方法,用fa[x]记录x的父节点,dist[x]表示x到当前根的长度。PS:int weigh=((x+dist[v])%P+P)%P;//新边//新边为啥要这样取摸才能过呢,折腾了半天,还不懂是什么原因啊,,有时间去请教大牛们,路过的求你帮偶解答一下。  #include #

2012-06-27 09:06:13 727

原创 cf div2_123_c

题意:原串中的最后一个数可以移到串钱的任何位置,问移动最少多少个可以变成目标串。      想了N久,思路是:原串中如果位置在目标串中颠倒了,则后一个必须动,就会引起所有后面的都要动。所以只要中出在目标串中的升序的个数。用n去减就OK了。 #includeusing namespace std;int a[200002];int b[200002];int main

2012-06-26 20:31:18 624

原创 cf div_124_a(简单博弈)

唉,最贱简单的博弈啊,一个矩形(a,b)里轮流放圆(r),谁不能放的谁输。       所以只要第一个人能放下,并且它第一次放在矩形中心位置,然后始终跟第二个人对称的放就能赢。至于什么是必胜态和必败态还不懂。#includeusing namespace std;int main(){   int a,b,r;   cin>>a>>b>>r;   if(2*

2012-06-26 17:15:36 3387

原创 cf div2_199_b(水题也注意)

给出巨形0~w,0~h.在里面找出四个顶点为整数的菱形个数。   看到了题就毫不犹豫的去枚举,悲剧了吧。都没看数据范围,我真傻! #includeusing namespace std;long long wg(long long w, long long h){    long long countw = 0;    long long counth = 0;

2012-06-26 16:18:20 1439

原创 poj 2352(树状数组)

这道题好像被贱做了,看起来像二维的树状数组,其实只是一维的,可能是数据太大了,矩阵开不那么大,因为题意是求一个矩阵中做它左下部分的个数,而去输入的顺序是按y升序,后x升序输入。其实如果不按这个顺序可以下排序。       然后就是一维的树状数组的思路了。转个图,可以知道它的这数组性质了:http://dongxicheng.org/structure/binary_indexed_tree/#

2012-06-26 14:27:49 493

原创 poj 2155 (二维树状数组)

这个题目就是给你一个0-1矩阵,每次给你一个长方形的矩形,在矩形内的所有数据都做非运算。    看出来是一个二维的树状数组,就是求每个点经过了几次翻转,而c数组就是记录翻转的个数的!相当于加 1;    Q时就做%2或者是&2运算;    很基础的模板题。代码:#include#include #include #include using

2012-06-26 11:44:11 446

转载 poj 2983(差分约束)

排位赛的E题,纠结了好久,做的时候猜到就是用差分约束来做。对于每个防御点作为一个点,(1)由P条件可以知, a - b = c(随便假设个方向),化成不等式组得{a - b >= c && a - b b, len = -c & b->a, len=c)(2)由V条件可知,a - b >= 1 即 b - a b, 长度为-1)根据以上构图,注意,如果用SPFA做的话,必须加一个

2012-06-25 22:40:57 488

原创 poj 1201(and)1716 (差分约束系统的建立和求解--其实也是spfa)

这题好。        题意:给n个区间中至少需要取Ci个数。求出满足n个条件的集合C的最少的元素个数.转载结题报告:        题目中的条件可以表示成S[bi+1]>=S[ai]+Ci//至少要Ci个。       这与spfa中的松弛操作时很像的。因此可以看成一些点有D[v]>=D[u]+w(u,v)上式对任何u成立,所以v应该是里面最大的,若D[v]于是。可以

2012-06-25 17:42:48 657

原创 poj 3050(dfs+回溯或bfs均可)

简答题,多写点也没关系嘛,可以复习!题意:从网格一点出发,走五步,经过的格做成不同序列数。注意回溯时,return不要忘了,纠结了十分钟。用set集合记录不同个数比较方便#include #include #include #include #include #include #include using namespace std;

2012-06-25 13:27:25 1440

原创 poj 3013(数组模拟邻接表+spfa)

首先,自已先用数组模拟邻接链表,以前使用模版的,现在可以不看模版自己写了。。。    边的信息:struct EDGE{    int   u;//起点    int   v;//终点    lint  len;//边的长度    int next;}edge[MAX*3+1];//一定要边的范围int head [MAX];//头节点void init

2012-06-25 11:32:39 1331

转载 poj 3372(完全剩余系/奇偶性)

题意:老师给N个学生发糖,第x次发糖发给编号为 f(x) 的学生。可以推知:f(x) = x * (x+1) / 2 % N(学生号为 0, 1, 2, 3, ```N-1 )现在问你是否每个学生都能得到至少一颗糖。题解:要使每个学生都至少得到一颗糖,那么f(x) 应该构成模N的完全剩余系。那么这个问题的反面就是在什么情况下,f(x) 不能构成模N的完全剩余系。我们知道若存在 x

2012-06-24 00:44:23 1397 1

原创 poj 1700(贪心——两人坐船过河)

一个船能乘2人,船的运行速度为2人中较慢一人的速度,问把n个人运到对岸,最少需要多久。我们设最快的为a,次快的为b,最慢的为z,次慢的为y。我们先考虑如何将y,z运到对岸,可以ab,a,yz,b,也可以ay,a,az,a。运送z不可能影响此4人之外的人,因为船只能乘2人,z要带也是带次慢的。通过不等式可以证明如果单运y,z比一起运快,那么yx一起运绝对比单运y,x慢,所以不用考虑单

2012-06-23 22:13:32 1736

空空如也

空空如也

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

TA关注的人

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