KIJamesQi的博客

大神养成中。

SPOJ QTREE Query on a tree

思路:树链剖分的一种,将边权赋值给这条边的儿子节点,(u,v)也就是v节点,u->v,然后线段树维护节点之间的关系。 注意的是,如果u,v在同一天链中的话且dep[u] // #pragma comment(linker, "/STACK:1024000000,1024000...

2015-12-13 20:28:16

阅读数 245

评论数 0

lightoj1426 Blind Escape

思路:有一个r*c的grid,里面有两种字符,'#'表示墙,不可穿过,'.'表示free,可穿过,现在在这个里面有一个盲人,他可以向东南西北四个方向走,需要靠你给的指令走出来,如果不能走出来就是Impossible,不然的话输出最短且字典序最小的命令串。 显然是搜索,当然不能走出来最好判断,每个...

2015-12-13 00:25:15

阅读数 304

评论数 0

lightoj1085 All Possible Increasing Subsequences

思路:这题就是求这个序列中有多少个上升序列,如果按照一般的思路去for...for...for...的话,必然是超时的,所以这时候就需要减少时间上的复杂度,首先,dp[i] = ∑dp[k] (a[i] > a[k] && i > k),这样我们在往后面扫的时候需要快速...

2015-12-12 17:26:17

阅读数 303

评论数 0

HYSBZ - 1036 树的统计

思路:这是经典的树链剖分,有三个操作。 1.两点路径中的最大点权; 2.两点路径中的点权和; 3.更改某个点的权值; 如果不用数据结构维护的话,直接搜带来的就是时间消耗太大,主要是因为搜的过程中做了很多无用功,不够直接的找到目标点和线段。树剖就是先按照儿子节点数的节点多少进行划分险段,线段不会相交...

2015-12-12 16:34:43

阅读数 177

评论数 0

hdu3848 CC On The Tree

思路:一棵树,叶子节点上有一个苹果,问CC从哪个非叶子节点出发获得两个苹果话的时间最少,速度one meter per second,给出两相连两点之间的距离。 这个就是树形dp; dp[i][j]表示在第i号节点获取j个苹果的代价。 dp[u][2] = min(dp[u][2], dp[...

2015-12-11 11:27:52

阅读数 197

评论数 0

hdu4263 Red/Blue Spanning Tree

思路:有两种没有边权但是有染色的边,现在问时候能够形成确切的含有K条Blue边的生成树。直接找是不现实的,但是我们可以看至少和之多需要多少条就行了,只要K在这两个值之间就行了。因为从最少的Blue边开始,用blue边替换RED边,这样是可以形成环的,所以替换是可行的,这样就可以一步一步替换成含有k...

2015-12-11 11:11:50

阅读数 235

评论数 0

lightoj1423Olympic Swimming

思路:有k条长度为l的泳道,每天泳道上面有n[i]个障碍物,w诶了比赛的公平性,每个泳道里面只能有相同数目个障碍物,求最长的泳道。 这样我们可以枚举泳道的右位置,计算出每个泳道中从0到这个位置的障碍物数目,求出最大与最小值。如果相等说明这个位置是目前长的泳道右端点。然后,因为要想等,如果要以这个...

2015-12-09 23:17:04

阅读数 185

评论数 0

lightoj1301Monitoring Processes

思路:有n个进程,开始时间s[i],结束时间t[i],我们要用监视器来监视这些进程,但是每个监视器同一时间只能监视一个进程,只有当这个监视器监视的进程结束后才能监视下一个,问需最少要多少个监视器才能监视完所有进程。 这题也是贪心,n个进程有2n个时间点,一个时间点要么是一个进程的开始,要么是一个...

2015-12-09 20:22:11

阅读数 196

评论数 0

light1076Get the Containers

思路:这题应该来说比lightoj1048简单多了,,,有n个输奶管,里面有一定的牛奶,现在有m个存储罐用来装这些牛奶,规则是一个管子里面的牛奶不能分开装,多个管子里面的牛奶可以混合装,混装的时候只能按照给定的顺序装,求满足条件的单个罐子的最小容积。显然是二分容积值,low = max(A[i],...

2015-12-09 19:36:59

阅读数 219

评论数 0

lightoj1086 Jogging Trails

有个无向网络,现在Robin想从某点出发,经历每条边至少一次,最后回到原点,求最少的权和。 这个有点像是欧拉回路,其实就是的,只是呢,,,有的边会许会重复走。在欧拉回路中,点的度数必然是偶数,这题中的度数为奇数的点的偶数也必然是偶数个,因为这个是无向图。那么,图是连通的,所以最后我们需要将度数为奇...

2015-12-08 19:49:35

阅读数 256

评论数 0

lightoj1366Pair of Touching Circles

思路:给出一个矩形的宽w和高h,要在这个矩形中画两个圆,圆是外切的,且圆完全在矩形内部,圆心在整数点上面,两个的半径都是整数。求有多少种画法。 因为是相切的,所以两点之间的距离是其半径和,为整数。我们可以枚举两个圆A,B的相对位置,A在B的左下方,枚举的是B相对A的x,y值,x,y不同时为0。这...

2015-12-05 21:38:11

阅读数 333

评论数 0

lightoj1380 Teleport

思路:有n个城市,m条单向道路,开始你在k号城市,现在要你从k开始出发,访问每个城市至少一次,就最少的花费,不行的话就impossible,这样看的话就是搜索了,,,但是题目中还给出了条件的,,,如果x号城市你之前访问过了的,那么你可以从你现在所在城市不花时间的瞬移到x号城市去。这样一来就不再是简...

2015-12-03 23:23:35

阅读数 235

评论数 0

lightoj1123 Trail Maintenance

思路:每新进一条边就MST一下,然后对于加入的边会形成环的话就删掉。不然会TLE的。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #inclu...

2015-12-02 22:57:22

阅读数 381

评论数 0

lightoj1211 Intersection of Cubes

思路:在一个三维坐标中,给出n个长方体,求所有长方体相交体积,每个长方体给定的是左下角和右上角的坐标。 所有相交体积必然属于两两相交的,而且随着长方体的增多,这个公共体积不会增加,所以呢,这个公共体积的左下角的xyz坐标必然是所有中最大的,而右上角的坐标必然是最小的。最后判断这个公共部分是否合理...

2015-12-02 20:39:23

阅读数 230

评论数 0

lightoj1118 Incredible Molecules

思路:求两个圆相互遮盖的面积,对于圆的位置情况有外切,内切,相离,内含,相交。 这里需要考虑的是(相离+外切),相交,内含(两种情况); 手推了下公式,,刚入门,,,推得有点慢。 // #pragma comment(linker, "/STACK:1024000000,10240...

2015-12-02 20:01:31

阅读数 227

评论数 0

lightoj1107 How Cow

思路:此题就是简单叉积运用,判断点在规则图形内,比如三角形,平行四边形等。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include #include #include #...

2015-12-02 19:17:31

阅读数 180

评论数 0

lightoj1058 Parallelogram Counting

思路:一个二维坐标系中给出n个点,可以两两连线,问这些所有线段中能组成多少平行四边形。n 这里显然不能枚举组合,那样是n^4的做法,必然是超时的。那么我们可以用平四边形的等价定义,两条相互平分的线段的四个点是平行四边形的顶点,那么我们可以先用n^2de方法求出任意两个点的连线(某四边形的dui...

2015-12-02 19:00:14

阅读数 272

评论数 0

lightoj1300

思路:显然是和边双连通分量有关的,所以只需要在双连通分量中找奇环(二分图染色),如果找到,这个连通分量中的点都是满足的。 // #pragma comment(linker, "/STACK:1024000000,1024000000") #include #include...

2015-12-01 10:20:39

阅读数 171

评论数 0

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