自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 傅立叶级数

最近在看MIT公开课,想把看的课程的总结写下来加深自己的印象。这一节讲的傅立叶级数,以前信号与系统课程里面也有傅立叶级数,但是觉得十分的迷~下面总结下老师在公开课中对傅立叶级数的介绍:傅立叶级数公式:f(x) = a0 + a1sinx + b1cosx + a2*sin2x + b2cos2x + ......我们把每项中除了系数ai,bi的部分看作是一个向量,我们可以发现每个向

2017-04-24 17:20:08 1930

原创 斯特灵数 stiriling

第一类stiriling数:先给出定义s(n,k): 个元素的项目分作{\displaystyle k}个环排列的方法数目(此时我们就可以忽略排列的开始元素举个例子:s(4,2) = 11s(n,0) = 0,s(1,1) = 1递推公式为 s(n,k) = (n-1)*s(n-1,k)+s(n-1,k-1) 解释:当我们考虑到第n个物品的时候:

2016-08-15 23:46:59 630

原创 DLX 舞蹈链 精确覆盖+可重复覆盖

做了几道DLX 感觉这种板子很想网络流的使用就是建矩阵DLX大致有两种 精确覆盖+可重复覆盖选择行使得所有的列里面都存在1的变量,前者是唯一的,后者是不唯一的,很简单所以两个板子(窝也只能用板子,,,,,套啊套,在做题中理解板子两个板子能达到的功能是   记录选择的行,限制行选择的个数,判断是否能覆盖(这当然是最基础的两个不同的地方也就是remove 和 resume 两个

2016-08-13 10:28:38 661

原创 codeforces Devu and Flowers 母函数 容斥 dp

一种做法没见过一种做法脑洞太大,没想到做法1:容斥+费马小定理+lucas+壮压dp前面都是套路,难的是壮压dp的状态这道题倒着想将个数为s的相同的球放入n个盒子中有多少中放法(盒子不同,盒子里面可以为空如果我们不考虑盒子球的个数限制 那么答案就是c(s+n-1,n-1)(解释一下如果盒子可以为空的时候,我们假设当前盒子每个里面有一个,最后我们每个盒子减去一个就行了

2016-06-16 23:21:09 506

原创 2016"百度之星" - 复赛(Astar Round3)1001 D++游戏 hdu 5712

这道题一看当时一猜不是dp就是搜但是无论是搜还是dp都要解决一个问题就是一个序列被删除后剩下的两部分是连在一起的,这个时候怎么搞当时我想的是枚举一开始的等差数列那么再去求等差数列的相邻两项的值就行,这样就不会存在不连在一起的情况来了我当时很确定这个想法入口是很正确的,但是我一直想的是去搜每个小区间,但是我一直想不出来怎么搜,最后和别人聊天去了后来看了别人的代码,恍然大雾,以后写

2016-05-30 13:47:52 1082

原创 codeforces Money Transfers

深感实现能力太差开始想的是找最长的0连续长度,发现有问题,比如5 -5 5 -5 5 -5这个case然后发现找可以构成0的段最多可以构成的段不过发现我实现不了,不知道怎么找,2333最后发现正解就是这样的,而且找的很简单代码如下:/* ^^ ====== ^^ ID: meixiuxiuPROG: testLANG: C++11*/#include #inc

2016-05-18 18:47:16 554

原创 codeforces Trains and Statistic DP

题意就不用描述了dp+数据结构优化+贪心dp好弱啊==这题一看就是dp+一个log级别的优化但是我不会,看了题解dp[i]:代表p(i,n)官方题解有这个公式dp[i] = dp[m]+(n-1-i)-(ai-m)m为从i+1到ai中am是其最大值的位置dp[m]代表从m后面的所有的票n-1-i:至少要用的票,对于剩下的每个位置至少都要一张票对不,至于减一,

2016-05-18 18:40:57 410

原创 数学题 糖果传递 bzoj

推公式对于每一个小孩,得到或者是拿出只可能是来自相邻小孩所以对于每一个小孩的贡献度我们可以算出来xi: 第i个小孩给 xi 个糖果给 i-1位小孩ave : 平均值推倒过程如下:ans = |x1|+...+|xn|;a1 - x1 + x2 = ave;令 c1 = a1 - ave;=> x2 = x1 - c1;同理a2  - x2 + x3 =

2016-05-04 11:07:29 390

原创 DP WuKong hdu2833

挺好的一道题想到对于任意两点(可相同),如果两路径都经过那么一定是走同样的两点之间的最短路这道题就迎刃而解啦代码如下:/* ^^ ====== ^^ ID: meixiuxiuPROG: testLANG: C++11*/#include #include #include #include #include #include #include #incl

2016-04-28 01:54:37 277

原创 折半搜索+二分 Treasure Division hdu 3017

看到10^30 就要想到折半搜索啊==大致的思路就是枚举前n/2的情况 枚举后n/2的情况然后对于前n/2的情况在后n/2的中进行二分查找 复杂度就解决辣!搜索新姿势get!!!!!!:代码如下:/* ^^ ====== ^^ ID: meixiuxiuPROG: testLANG: C++11*/#include #include #include

2016-04-13 16:13:22 472

原创 Uestc ABCDE 1037

好久不写题解。。。给定一个数n,求有多少个集合满足能够构成1到n的所有数字。具体规则看题思路:很明显是要n^2预处理出所有的情况但是状态不好搞啊==现场时这个dp没有想出来dp的关键是要解决如何能保证在dp转移的时候同时满足这个能构成n的所有数字的条件对于这种条件有个性质要知道,表示这个性质已经不是第一次遇见了。。。。对于一个已经满足条件的集合x,集合元素之和为s,

2016-04-13 15:59:52 245

原创 Physics Experiment 物理题

知道下面这两个结论题目就会辣1.球心发生弹性碰撞的相同两球,相当于速度交换2.每个球只能在h范围内进行变化,因为之前落下的会占据高度,这个球下面一定有前面落下球的个数然后把所有时间求得的高度排序就好了/* ^^ ====== ^^ ID: meixiuxiuPROG: testLANG: C++11*/#include #include #include

2016-03-22 19:33:46 355

原创 数论+差分 hdu1121 Complete the Sequence

数学真的是神奇啊第一次见差分这个东西对于数列a1 , a2 , a3 , a4 a2-a1,a3-a2,a4-a3 为一阶差分(b1,b2,b3)b2-b1,b3-b2 为二阶差分然后对于题目中的这种多项式 P(n) = aD.n^D+aD-1.n^D-1+...+a1.n+a0 p 的D-1阶差分就绝对可以得到一个常数(这个可以证明)现在我们在D-1阶差分的结果后面加

2016-03-03 00:35:08 523

原创 数论+dfs+复数除法剪枝 Secret Code hdu1111

X = a0 + a1B + a2B2 + ...+ anBn. (其实是B^2。。。。这个坑人)满足复数除法的剪枝真的是强大啊枚举每一个ai, 然后 除复数B, 这里剪枝,判断是否可以整除,复数的除法公式自己推/*ID: meixiny1PROG: testLANG: C++11*/#include #include #include #include

2016-03-03 00:10:42 466

原创 数论 + bfs Remider hdu1104

给定 n,m,k(定义的%:a = b * q + r (q > 0 and 0 n可以+,-,*,% m, 求最少多少步骤可以使得 n%k = (初始的n+1)%k思路:bfs,最后的结果都要%k,避免数过大我们中途每次求得的值都要取%但是中途也可能%m,所有我们可以先%(k*m) ,易证 a%m = a%(m*k)%mk*m的范围也在1000000内这样是可行的

2016-03-03 00:05:27 426

原创 周赛题解报告-2013 亚洲南京区域赛

全是2013 亚洲南京区域赛的题感触挺深的。。补了五道题,之后要是补了会加上来。。。。A:GPA 水题没什么好说的B;Poor Warehouse Keeper 贪心这道题被精度wa了。。。1e-5要以最短的步数到达给定的x,y可以看出x的增加次数是固定的步数要最短,那么我们贪心的原则就是在x越小的情况下使得y的增长到极限极限是什么呢,就是当前的均值要小于等于(

2016-02-29 21:41:37 683

原创 Nim 游戏

nim 游戏 见博客http://www.cnblogs.com/exponent/articles/2141477.html例题:lightoj 1247nim是求最后拿到的人为赢反nim是最后拿到的人为输。。。求反nim:lightoj 1253证明见博客http://blog.csdn.net/tdreamge/article/details/7227

2016-02-25 23:29:06 641

原创 矩阵快速幂

Darth Vader and Treehttp://codeforces.com/contest/514/problem/Edp[i],表示距离为i的点有多少个前dp[100]可以表示出来然后构造矩阵A.B可以发现每次矩阵乘以矩阵B,A中的就会变成(dp[k+1],dp[k+2],,,,,,dp[k+100],1到dp[k+100]之和)所以再乘上

2016-02-23 23:24:06 379

原创 单调栈 Largest Submatrix of All 1’s poj3494

单调栈的运用求最大的全为1的子矩阵,可转化为,对于每一行,转化为直方表的形式然后利用单调栈求解比如:对于矩阵0 0 1 1 //第一行对应的直方图就是0,0,2,21 1 1 1//同理为1 1 1 1然后对于每个直方图求最大矩阵参照http://www.cnblogs.com/felixfang/p/3676193.html 解法/*ID: meixiny1P

2016-02-22 22:11:48 409

原创 Famil Door and Brackets codeforces dp

http://codeforces.com/contest/629/problem/C好像我的dp方程和别人的不一样。。。。这个dp方程有trick,容易出错将s看做一个,总共的个数就为n-m+1dp[i][j][0/1]:前i个,( 比  ) 多j个,0:s没有放置,1:s放置了对于个i讨论是否为(,),s的情况。。。。。但是s是一个串所有必须满足s中每个位置都满足条

2016-02-21 23:13:44 413

原创 Codeforces Group Projects dp

http://codeforces.com/contest/626/problem/F特别好的一道dp想到了每个数作为一个集合的上界,下界。。。情况去分析但是一直想不通k的值的变化怎么搞。。。。。。看了别人的代码才明白过来,运用了累加的思想。。。。先排序状态的表示为dp[i][j][t]前i个,有j个集合没有最大数,当前积累的k为t每次增加一个i,t 的变化为t+(a[

2016-02-20 22:22:10 419

原创 codeforces Simple Skewness

思路:看到0 ≤ xi ≤ 1 000 000的数据范围想到可不可以枚举中位数k的个数为奇数的时候好弄k的个数为偶数的时候就不行了证明发现k的个数只能为奇数(开始想的时候去证没有正对==证明如下:ave:为奇数时的平均数,a1:为奇数时的中位数,n为个数增加的数为a2(假设a2>a1,a2平均数的增加为:(ave*n+a2)/(n+1)-ave ->(a2-ave)/(

2016-02-19 19:25:04 335

原创 Finals in arithmetic 分类讨论

题意很简单但是写起来比较麻烦,略恶心,建议先想清楚了再写大概思路将数字按位从大到小为1,,,n两种情况1和n的组合要不要最高位再次进位l,r像中间走cl,cr分别存是否向上一位进位,和下一位是否向前进位然后xjb乱搞还要注意0,18情况判断,比较麻烦啦还有最后靠拢的时候最中间相邻的两个数字的合法性判断以及中间只有一个数字的时候应该是得到相同的数字相加中间那部

2016-02-10 03:21:05 534 1

原创 欧拉路+字典树 poj2513 Colored Sticks

这题真卡空间==这道题就是判断是否图中有欧拉路,判断图是否联通欧拉路:图中度数为奇数的点为0或者2判断图是否连通,直接dfs遍历一次图就行了但是这道题输入的是25w string 用map会t的我们要用到字典树我的字典树模板int newnode(){for(int i=0;inxt[l][i] = -1;}l++;return l-1;}v

2015-12-04 15:41:27 321

原创 树形dp The Tree Root uva10459

树形dp,两次dfsson1[u],节点u向下能访问到的最大深度son2[u],节点u向下能访问到的次大深度f[u],节点向上能访问到的最大深度第一次dfs求得son数组dfs(v,u); if(son1[v]+1 > son1[u]){ son2[u] = son1[u]; son1[u] = son1[v]+1; } else{ s

2015-12-03 23:11:39 299

原创 codeforces Moodular Arithmetic 数论

由于gcd(k,p)==1,那么很显然k*x%p = z,这个等式中,x属于(0,p-1),z属于(0,p-1),那么的话,一定是一一对应的下面给出证明(自己yy的,有错误谢谢指出)令y = f(kx mod p), x = f(x);证明当y值确定时,x有唯一值与其对应y = k*x mod p;若x不唯一,即x1,x2,有存在n1,n2整数使得k*x1 - y = n1

2015-12-02 16:34:16 365

原创 线段树 区间更新 区间查询 poj3468 A Simple Problem with Integers

相比较于单点更新和单点查询来说区间更新多了一个pushdown函数代码如下void pushdown(int root,int m){ if(add[root]){ add[root<<1] += add[root]; add[root<<1 | 1] += add[root]; sum[root>1)); sum[root>1); add[root] = 0; }

2015-11-30 20:09:59 349

原创 中国剩余定理+扩展欧几里得求逆元 hdu 1006

中国剩余定理扩展欧几里得求逆元:int exgcd(int a,int b,int &x,int &y){ if(b==0){ x = 1; y = 0; return a; } int r = exgcd(b,a%b,x,y); int tmp = x; x = y; y = tmp - a/b*y; return x;}求得的逆元可能为负数记得取模

2015-11-29 23:10:07 1030

原创 容斥原理 数论

两个集合的容斥关系公式:A∪B =|A∪B| = |A|+|B| - |A∩B |(∩:重合的部分)三个集合的容斥关系公式:|A∪B∪C| = |A|+|B|+|C| - |A∩B| - |B∩C| - |C∩A| + |A∩B∩C|最后可以推广到n个集合,集合里的元素为奇数则加,偶数减百度有证明和详细说明http://baike.baidu.com/l

2015-11-27 22:20:52 442

原创 数论 毕达哥斯拉三元组 + 欧拉函数 + 容斥原理 hdu3939

涉及的知识点还是挺多的毕达哥斯拉三元组:三元组(a,b,c),其中a,b,c无公因数,且满足a² +b² =c²。a为奇数,b为偶数,c为奇数可以得到如下勾股数组定理:a = 2m*n;b = m^2 - n^2;c = m^2 + n^2;其中m,n奇偶性不同

2015-11-27 19:52:36 1462

原创 11688 uva 二叉树的旋转+dp Rotate to root

把二叉树旋转先模拟几遍,要不然这个题。。。gg模拟下叶子节点如何转为root h:向下还能到达的深度dep:所在的深度lm:root到节点需要左移多少次rm:root到节点需要右移多少次这个方程还比较好理解,最后转为root的时候他的子树的lm,rm,一定是这样的距离dp[root] = max(h[r[root]]+lm+1,h[l[root]]+rm+1);

2015-11-24 16:53:58 692

原创 UVA11775 Unique Story dp+二维树状数组优化

先用map处理字符串每个元素,然后用数组储存要求不相同的所有组合,我们反着来求x = a(第一个字符串能构成的所有的组合序列)+b(第二个字符串能构成的所有的组合序列) - c(两个字符串中的相同组合序列)*2a = 2^n(第一个字符串的元素个数)-1;同理b;(很煞笔的用组合公式求2333,后来反应过来也没有改了)dp[i][j]代表以a字符串中的第i个元素为组合序列的最后一个

2015-11-23 10:53:21 390

原创 dijkstra 昂贵的聘礼 poj1062

dijkstra 复杂度n^2;两个集合n次,每次找到最小的,然后放入集合a,标记为访问过然后让这个最小的去更新那些没有访问过的这道题,关键是等级差距不能超过m,那么就枚举每一个最小的等级,然后对应每个区间找/********************************************Author :CrystalCreated Time :F

2015-11-19 19:11:58 345

原创 Bellman-ford变形 poj1860 Currency Exchange

//bellman-ford 算法//判断有无环//对于每条路进行更新,最大的环为n-1,所以最多进行n-1次更新(其实就是以s为原点的一个最短路的树)//那么对于第n次,还能进行更新那么就能存在环//模板:dis[s] = 0;MEM(dis,inf);for(int i=1;iint flag = 0; // 优化for(int j=1;jif(dis[

2015-11-18 16:41:02 334

原创 LCA + 并查集 Happy Tree Party codeforces593D

一个64位的数,最多在被大于1的数整除64次后就变为0所以对于每次访问,我们最多除64次那么我们就要将为1的路压缩,使用并查集每次访问使用lca,找到公共祖先lc,然后u->lc,v->lc,访问这两条路记得并查集的时候要用return par[u] == u ? u : par[u] = find(par[u]);不要用return par[u] == u ? u :

2015-11-17 17:22:35 469

原创 并查集 + 拓扑排序 hdu1811 Rank of Tetris

这道题麻烦的就是有两个数相等的情况出现我们使用并查集,将相等的并在一起再用拓扑排序将入度为0的点push进去1.队列里面如果有>=2的点,那么代表这信息不完全不能判断2.如果入队的次数小于n,那么代表有环,有冲突/********************************************Author :CrystalCreated Time

2015-11-17 17:14:39 305

原创 期望概率dp lightoj 1038 Race to 1 Again

从考虑第一步开始p(x):代表从x到1的期望n的所有因子为n,a1,a2....,1(可以打表求出),总个数为size, x = size - 2;p(n) = (p(a1)+1+p(a2)+1+.....+p(ax)+1)*(1/size) + 1/size + (p(n)+1)*(1/size);化简式子得到:p(a1)+p(a2)+,,,+p(ax) = s;p(n)

2015-11-17 16:54:33 379

原创 LCS dp Batman lightoj 1159

就是一lcs变形dp[i][j][k]表示第一个字符串前i个,第二个字符串前j个,第三个字符串前k个

2015-11-17 16:41:05 355

原创 二分图匹配总结

二分图匹配1.代码的实现过程这个博客写的很有趣,也很易懂http://blog.csdn.net/dark_scope/article/details/88805472.有一问题代码实现虽然懂了,但是有个很重要的部分没有理解,强调就是增广路->即交错轨,这个思想在二分图的很多其他应用上很有用3.二分图的大致用法a.最小点覆盖数定义:点覆盖集即一个点集,使得所有边

2015-11-11 03:08:27 307

原创 计算几何 uva11117 Morley's Theorem

作三角形ABC每个内角的三等分线,相交成三角形DEF,则DEF是等边三角形。给出A、B、C 3个的位置确定D、E、F 3个点的位置涉及知识:1.向量的旋转2.

2015-11-07 01:10:27 235

空空如也

空空如也

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

TA关注的人

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