- 博客(12)
- 资源 (8)
- 收藏
- 关注
原创 poj~2886
Who Gets the Most Candies?题意:有n个孩子顺时针围成一个环,每个孩子有一个jump值。从第m个孩子开始出环,下一个出环的孩子根据第m个孩子的jump值决定。jump>0 顺时针数第jump个出环。jump第i个孩子出环会得到f[i]个糖果,f[i]是i的约数个数。输出得到糖果最多的那个孩子的名字 和 糖果数。首先根据反素数得到第
2015-04-29 09:20:01 376
原创 poj~2823(单调队列入门)
如果当初看单调队列先从这题开始做的话,应该会快点理解吧。题意就是求区间最值,这是单调队列最简单的应用。Sliding Window题意:给你n个数和区间长度k,求区间遍历到第i个数时的最小和最大值,所以是n-k+1个值。由于n的范围是10^6,普通嵌套for肯定超时,这里就用到了单调队列。单调队列只需要遍历一遍,虽然中间有出队入队的操作具体的看代码和注释吧:
2015-04-23 19:34:25 418
原创 hdu~3706(单调队列)
单调队列就是队列中的元素是单调递增或递减的。比如把 5 2 3 1 4 入队:减:、、、、、、、、、、、增:5 、、、、、、、、、、、、55 2 、、、、、、、、、、、2 5 3 、、、、、、、、、、、2 35 3 1、、、、、、、、 、、15 4 、、、、、、、、、、、1 4这个还是好理解的,但是,我们得会用单调队列这一特性去解决题目,抽象出题目中有类似的操作
2015-04-21 21:14:21 608
原创 hdu~3530(单调队列)
单调队列就是队列中的元素是单调递增或递减的。比如把 5 2 3 1 4 入队:减:、、、、、、、、、、、增:5 、、、、、、、、、、、、55 2 、、、、、、、、、、、2 5 3 、、、、、、、、、、、2 35 3 1、、、、、、、、 、、15 4 、、、、、、、、、、、1 4这个还是好理解的,但是,我们得会用单调队列这一特性去解决题目,抽象出题目中有类似的操作
2015-04-21 17:29:44 543
原创 hdu~3410(单调队列)
单调队列就是队列中的元素是单调递增或递减的。比如把 5 2 3 1 4 入队:减: 增:5 55 2 2 5 3 2 35 3 1 15 4 1 4这个还是好理解的,但是,我们得会用单调队列这一特性去解决题目,抽象出题目中有类似的操作。Passing the Message题意:给你n个数
2015-04-21 11:07:14 465
原创 hdu~2217(简单dp)
visit题意:在x轴上,出发点在0的位置,给你一些其他点的位置,求在规定时间内能遍历最多的点的个数。其实个人觉得不会dp的人也能做,说是dp也算不上。以0为起点,负半轴为左边。1.先开两个数组l[],r[]存左右两边各点到0的距离。2.再开两个数组lm[],rm[]存以上述各点为拐点能遍历的最多点的个数。具体的还是看代码好理解:#include #inclu
2015-04-16 10:26:19 570
原创 威佐夫博奕
取石子游戏有两堆石子,双方轮流取走一些石子,合法的取法有如下两种:1、在一堆石子中取走任意多颗;2、在两堆石子中取走相同多的任意颗;约定取走最后一颗石子的人为赢家,求必胜策略。满足下列公式的为必败情况:k:第k中必败情况。百度的这张图助于理解:至于为什么有这个黄建分割数( (1 + sqrt(5))/2 ),请点击这里m(k) = k * (1 +
2015-04-15 20:38:01 381
原创 第二类Stirling数
S(p,k)的一个组合学解释是: 将p个物体划分成k个非空的不可辨别的(可以理解为盒子没有编号)集合的方法数。也可以解释为: p个有区别的球放到k个相同的盒子中,要求无一空盒,其不同的方案数用S(p,k)表示S(p,k)的递推公式是:S(p,k) = k*S(p-1,k) + S(p-1,k-1) ,1边界条件:S(1,1) = 1 ,
2015-04-15 18:57:51 880
原创 hdu~1885(bfs+状态压缩)
Key Task一开始用dfs果断超时,贴上超时代码:#include #include #include #define MAX 0xffffffint m,n,flag,tt,sx,sy;char key[]={'y','g','r','b'};char door[]={'Y','G','R','B'};int dirx[]={0,1,0,-1},diry[]={1,0
2015-04-15 09:23:45 411
原创 hdu~1422(简单dp)
重温世界杯用ans[i]存 生活费和话费之差类似求最大区间和注意路线是一个环。#include #define MAX 100000int ans[2*MAX+5];int dp[2*MAX+5];int main(){ int n; while(scanf("%d",&n)!=EOF) { int x,y; f
2015-04-14 17:34:54 634
原创 hdu~1003(简单dp)
Max Sum求最大字段的和。用dp[i]存的是前i个数中,所选连续数的最优解(即和最大)dp[i]最大的数的位置为终止位置从尾部向前遍历,最前面的非负数为开始位置例如:3 -4 2 -1 3 对应的dp为 3 -1 2 1 5, 5所在位置为终止位置,2 所在位置为开始位置#include #define MAX 100000int
2015-04-14 17:21:47 507
原创 hdu~1242(bfs)
Rescue一开始看上去认为是个bfs水题,然后发现有点坑。最后总结是:一道有点坑的水题。a:天使x:守卫r:天使的friend# :墙. :路题意:天使关在有守卫的牢中,他的朋友们(Angel's friends)去救他,意味着有多个r。从a开始,走到最近的朋友结束。刚开始的时候没注意是多个friends,普通的队列做bfs只能得到步数最少的解法,
2015-04-14 16:31:21 386
eigen3(cmake VS生成)
2017-04-24
QGLViewer_lib_dll
2017-04-24
g2o_lib_debug
2017-04-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人