自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 hdu-4605 Magic Ball Game[离散化+回溯+树状数组]

题目大意很简单。 有一颗树(10^5结点),所有结点要么没有子结点,要么有两个子结点。 然后每个结点都有一个重量值,根结点是1 然后有一个球,从结点1开始往子孙结点走。 每碰到一个结点,有三种情况 如果此球重量等于该结点重量,球就停下了 如果此球重量小于该结点重量,则分别往左右儿子走的可能都是1/2 如果此球重量大于该结点重量,则走向左儿子的概率是1/8,右儿

2016-04-29 21:51:42 357

原创 nyoj-471 好多的树[容斥定理]

简单直接的,假如一个之间能约分说明被挡住了。 需要知道:1、2、。。。。n之间能被m整除的个数位n/m. #include #include #include #include using namespace std; #define MAX_SIZE 110000 #define ll_int long long int bool notPrime[MAX_SIZE]; in

2016-04-29 19:22:49 461

原创 poj-2104 K-th Number[主席树/函数式线段树/可持久化线段树]

膜拜大神:点击打开链接 点击打开链接 【题目描述】有n个数字排成一列,有m个询问,格式为:left right k .即问在区间[left,right]第k大的数据为多少? 纯属个人理解,有不正确的地方欢迎留言指正: 先来设想下如何解决这个问题。 把数字在数组中的位置i作为定义域,数字的值v[i]作为值域。 假如对于 [left,right]的数我们能知道它们的值域在不同区

2016-04-29 09:44:44 615

原创 hdu-1512 Monkey King [并查集+左偏树]

左偏树学习:点击打开链接 题意: 有N只猴子, 每只都有一个力量值. 开始的时候互不认识, 它们之间会发生M次斗争. 每次发生a, b的斗争时,a, b都会从各自的朋友圈里拉出一个最强的, 之后两只猴子打, 打完后这两只猴子的力量值各减半. 并且打完后,两只猴子的朋友圈的所有人都互相认识(也就是不会再打).你的任务就是对于每个斗争, 若a, b是朋友, 那么输出-1, 否则输出打完后它们的朋友

2016-04-28 11:00:46 621

原创 hdu-3943[数位dp(记忆化搜索)+二分]

求出区间 (P,Q] 中找到第K个满足条件的数,条件是该数包含X个4和Y个7 学习大神的模板后做的之前用递推式感觉要考虑的东西比较多,记忆化搜索就相对简化编程复杂度了 链接:模板 数位dp是取得每个数它v,0~v之间满足 有(x个4,y个7)条件的数的个数,那么可以知道随着v增大,满足(x个4,y个7)条件的数的个数是增大的。 有了这个单调性的条件就可以用二分来查找第k个数的位置。 #i

2016-04-26 19:05:35 364

原创 fzu-2113 Jason的特殊爱好[数位dp]

先进行预处理 s[pos][val] s[3][5]表示 0~500的1的个数 所以s[3][5]+=s[3][4](0~400);  s[i][j]+=s[i][j-1]; s[3][5]+=s[2][9]+ss[1][9](0~99); for(int k=i-1;k>=1;--k) s[i][j]+=s[k][9]; 特殊的当 j==1时,s[i][j]+=1; 当j==2

2016-04-21 12:18:37 495

原创 hdu-4686 Jzzhu and Sequences 【矩阵快速幂】

其中a0 = A0 ai = ai-1*AX+AY b0 = B0 bi = bi-1*BX+BY 最后的结果mod 1,000,000,007 n ai*bI=Ax*Bx*ai-1*bi-1+Ax*By*ai-1+AyBxbi-1+AyBy 递推式可以构造由矩阵快速幂快速求取。 我理解的递推式构造矩阵的形式可以先这样想(说错了板砖轻拍): A*[每个递推式的递推项 ]=[每个递

2016-04-19 17:01:25 321

原创 hdu-4549 M斐波那契数列【矩阵快速幂】

找规律写出f(2),f(3),f(4),f(5) .........可以发先 a b的系数是一系列的fib数列   如果可以求出fib数列 求快速幂就可以了    这样问题就在于如何求fib数列了                           1     1 【f[n-1],f[n-2]】 *  1     0     =  【f[n],f[n-1]】  当gcd(A,M)

2016-04-19 12:01:27 913

原创 hdu-3410 Passing the Message[单调队列]

求最左边的人,与最右边的人。最关键的地方就在于高个会把低个挡住。 所以维持一个单调递减的单调队列。每个元素都要入队列,出队列就有如下考虑 for(i ->n) (1)第i个元素比front大 ,说明队列中所有的人都会被挡住。清空队列 (2)第i个元素front小,那他可能挡住队列中的某些人,从rear->front,”弹出“比第i个人矮的,直到遇见比他高的人。 (3)队列为空

2016-04-14 18:10:03 443

原创 poj-1094 Sorting It All Out[拓扑排序]

感觉需要注意的细节有点多。 (1)先判断是否有环  用used表示能拓扑的点 vis表示能搜索到的点 假如两者总数不等说明有环。 (2)再判断拓扑序是否唯一 假如一次寻找0入度节点有多个即不唯一 /* 所谓不同值的递增排序的序列,是通过一个小于号的运算符, 找出从最小的到最大的元素。例如,有一个有序的序列A,B,C,D。 这就意味着,A<B,B<C,C<D。对于这一道问题, 我们将为

2016-04-08 18:54:15 345

原创 poj-3580 SuperMemo[splay tree]

学了splay 后 撸的第一道题。 是看了大神的教学,引用了大神的核心代码才会的:模板出处 刚开始没注意:使用一个节点你需要把他的标记先下压。提供了好多次wa。 /*题意:给一个数组,有6种操作: (1)add x y d : [x,y]中所有数加d ----x-1 ---------y+1 ---[x,y] 给y-1的左子树加上+d 标记 (2)reverse x y: [x,y

2016-04-07 20:41:33 394

原创 poj-2828 Buy Tickets【线段树】

很经典的一道线段树问题,以前都没想到到线段树可以这样用。 /*Description: 春节将要到来了。小H希望回家过年。然后大家都知道火车是非常的难买,经常要排很长的队,但是小H为了买火车票拼了,不怕排队。 但是小H到了火车站的时候天已经黑了,他感觉非常的冷。他想为什么不找个问题思考来遗忘寒冷呢。然后他就想到了自己排队这个问题。 他想如果排队的每个人都有个固定的颜值,并且自己排队的时候经常有人

2016-04-01 12:14:22 379

空空如也

空空如也

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

TA关注的人

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