自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

KIJamesQi的博客

大神养成中。

  • 博客(25)
  • 收藏
  • 关注

原创 lightoj1063 Ant Hills

思路:无向图中割点个数的判定。直接Tarjan抛一边就好了。如果u是这个搜索树的根且有多个儿子节点,,,那么这个根是割点,因为去掉这个点后,他的儿子间是不能连通的。如果u 不是根,如果它的某个儿子节点low[v] >= dfn[u]那么u也是一个割点。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include

2015-11-30 17:46:19 353

原创 hdu5563 Clarke and five-pointed star

思路:正五边形的判断。在正五边形中任意两点之间的距离只有两种情况,所以求出所有点之间的距离排序,前后比较纪录有多少个不同距离的边长。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #in

2015-11-30 16:47:49 398

原创 hdu5569 matrix

思路:dp[i][j]表示到这里的最小和。然后就是分奇偶讨论了。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #includ

2015-11-30 12:23:06 550

原创 hdu5568 sequence2

思路:题目问的是长度为k的严格上升子序列有多少种。求种数的时候一般会想到大数,也就是简单模拟下加法运算。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #includ

2015-11-30 11:53:34 318

原创 lightoj1166Old Sorting

思路:直接暴力查找,交换就好了。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include #in

2015-11-25 23:11:42 312

原创 lightoj1219Mafia

对于某个节点u, 如果整个子树里的人数超过了节点数, 那么显然就要把多余的人移动到点u的父亲处, 而如果人不足, 就需要从u的父亲处拿人过来, 至于u父亲出人够不够, 那么就需要考虑以u的父亲为根的子树了, 所以可以考虑dfs递归处理问题, 对于所有节点, 如果节点上人太多, 多余的人必然要到他父亲那边, 如果没人,必要要从父亲处要人, 所以在每次处理完一颗子树时,根据子树的根的情况, 来修改子树

2015-11-25 23:06:15 350

原创 lightoj 1198Karate Competition

题意:双方各有n各人,每个人呢有一个技能值,每个人且只能出战一次,如果A的技能大于B的技能,A所在方得两分,A技能值等于B的话,给得一分,输了不得分,问A方最多能得多少分。这题贪心思路很多,,,但是对的没几个,,,,wa了4发都没怎么wa明白。对于A方的几个技能值X,,,先在B中找一个小于X的最大值,,,这种关系找完后,,,在找剩下中能打成平手的。。。// #pragma commen

2015-11-25 22:17:58 392

原创 lightoj1048 Conquering Keokradong

这是一个很不错的二分,,,可是wa了半天没做对,主要是二分最大单个区间的值,,,mid,当a[i] > mid的时候,low++,当cnt > k时,low++;cnt 然后就是打印比较容易挂掉;注意下就好了。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include

2015-11-24 19:58:49 447

原创 uva11721 Instant View of Big Bang

题意:大意就是有很多虫洞,他们之间存在有向通道,可能把时间提前,也可能往后,,,一个科学家想要回到很早很早之前,,,问从那些冲动出发可以满足条件。显然要回到很久以前必然要到达某个负环,首先要找到负环,然后再找哪些冲动可以到达这个负环,,,这题最大的难点就是建图,对于负环而言,无论是反向建边还是正向建边,,这个不影响,,,如果反向建边,,,,那么就可以从找点到负环变成了负环可达的问题了,,,这样一来

2015-11-24 19:43:44 408

原创 lightoj1210Efficient Traffic System

思路:给定一个有向图,问至少需要添加几条有向边可以使得图成为一个强连通图。显然是需要缩点的,因为一个环上的点是可以互达的,可以看成一个点,如果图本身就是强连通的输出0,因为不需要添加。否则就看缩点后每个点的入度与出度。没有出的,要添加,没有入的要添加,,,这里就去其最大值(因为没有入的可以和没有出的点之间加边,剩下的就要和其他任何点之间建边了)。// #pragma comme

2015-11-16 20:52:17 384

原创 lightoj1034 Hit the Light Switches

思路:开始想的就是普通的dfs就好了,但是样例再次神奇的过了,然后wa成傻逼了。里面主要是有个贪心的思想,从最高的topo序开始dfs,,,,涨知识了。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #

2015-11-16 19:53:53 364

原创 lightoj1003 Drunk

思路:判断途中是否有环,有就是Yes,否则就是No。求个scc就好了,水题。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include

2015-11-16 19:02:25 355

原创 uva10917.cppWalk Through the Forest

思路:按照题目的意思见图,然后就是DAG图上的记忆化搜索。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include

2015-11-13 19:32:41 330

原创 hdu4005The war

思路:无向图求连通分量。我们首先应该知道,因为加入的边未知,所以我们所求的最小金额就是无论加入的边在图中哪里,我们都可以删除一条边来使它不连通。so我们首先对图求解连通分量,然后缩点,形成一棵树。这时候,我们可以想到,在加入一条未知的边之后会形成一个环,显然最小值的边不是我们的答案,因为这条边有可能就在这个环中,这时候我们就删除不了边了(其他边的值都比这个值大)。我们仔细想想可以发

2015-11-13 17:03:44 380

原创 poj3177 Redundant Paths

思路:给出一张无向连通图,问至少需要添加几天边可以使得图中任何两个点有至少两天不同路径(边不重合),等价于至少添加几条边可以使得图为双连通分量-边连通。显然已经处于某连通分量中的点之间必然存在两条不同路径,所以可以等效的把这个连通分量看成一个点来对待,这样就是缩点了,然后得到一棵树,此时推一下就知道还需要的边数=(叶子节点数 + 1)/ 2。// #pragma comment(linke

2015-11-13 10:05:42 278

原创 uva11997 K Smallest Sums

// #pragma comment(linker, "/STACK:1024000000,1024000000")/*题意:有K个整数数组,包含K个元素。在每个数组中取一个元素加起来,可以得到k^k个和。求这些和中最小的K个值分析:这题有简化版本的,即2个整数数组A,B,包含K个元素,在每个数组中取一个元素加起来,可以得到k^2个和,求这些和中最小的K个值。我们需要把这k^2个和组织成如

2015-11-09 13:56:23 373

原创 uva11419 SAM I AM

这题值得一做,,,路径的打印值得一学。// #pragma comment(linker, "/STACK:1024000000,1024000000")/*这题是最小点覆盖问题,然后确定炮弹放的位置。显然先跑遍匈牙利,然后确定位置。跑完匈牙利后,对于左右两个集合而言,如果x集合中的点x[i]没有匹配,就是linkx[i] == -1,那么有两种情况,第一种是根本就不存在y集合中的点

2015-11-09 10:23:40 684

原创 uva11865

思路:二分+最小形图。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include #include

2015-11-06 17:33:13 325

原创 uva11235 Frequent values

思路:这个是RMQ变形,因为这个是一个non-decreasing order序列,所以同一个数是连续的,那么我们可以先处理下每个连续的数的左右边界,也就是l[i],r[i]的值,num[i]表示当前位置的数所属段的标号。对每种数进行编号,也就是每个段。建立Segment-Tree,再就是询问的时候,因为给的是原坐标,所以要转换成所属的段标号,如果是同一个段,那么直接坐标相减+1,否则就进行RMQ

2015-11-06 16:52:01 546

原创 uva11178 Morley's Theorem

思路:题目说的给定一个三角形,然后求三个内角的三等分线的交点坐标。都是几何的几个基本函数,叉积,点乘,运算符重载,旋转,求模,求夹角。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include

2015-11-06 09:49:14 369

原创 poj2418

思路:建立字典树,dfs查找,然后输出频率。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #includ

2015-11-04 22:08:22 412

原创 cf400D

// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #include #include #include #

2015-11-04 22:02:02 413

原创 uva11992 Fast Matrix Operations

思路:看似一个二维矩阵值的更新,其实就是换成多条线段更新,线段树。总共有3种操作:1. 1 x1 y1 x2 y3 val(在满足(x,y)的点上+val)2. 2 x1 y1 x2 y2 val(把满足条件的点清空为val)3. 3 x1 y1 x2 y3 查询区间值 sum min max。因为有延迟标记,所以每次要down和up下,二维在down的时候还要先考虑区间是否被

2015-11-04 17:10:15 437

原创 poj2418(Hardwood Species)

思路:建立Tire树,dfs一遍,再del下。// #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #include #include #include #include #include #include #include #inclu

2015-11-02 22:41:37 402

原创 uva12299(RMQ with Shifts)

思路:这题一眼就是线段树单点更新,,,训练开着题的时候就是傻逼了,,,一看数据很大,时间很小,TLE定了,,,3个小时后再来看,发现别人过的时间都只有300-ms,,,然后再读题的时候就看见了 // #pragma comment(linker, "/STACK:1024000000,1024000000")#include #include #include #include #i

2015-11-02 22:36:04 400

空空如也

空空如也

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

TA关注的人

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