- 博客(28)
- 资源 (1)
- 收藏
- 关注
原创 DP/记忆化搜索+set
题目:HDU5218 题意:给定一个环的大小N,给定一个大小为M的集合,包含的元素为可一次走的步数。初始环大小为N,全满并从1~N标号,每次从集合中随机选择一个元素,然后走a步,并移除当前走到的位置的前一个环上的点。求所有可能成为最后一个留下的元素原来的编号 方法:DP,set 每次移除一个点后,就将环从当前节点开始重新从1开始标号(即每次走的时候都
2015-05-07 13:24:46
645
原创 DP·矩阵加速
题目:hiho第43周/hiho1162 题意:现有1*2的骨牌,求覆盖K*N的方案数。2≤K≤7,1≤N≤100,000,000 方法:DP,用矩阵快速幂加速 DP矩阵加速的基本思想即将一系列状态看成一个向量,转移方程看成一个矩阵,通过向量乘矩阵得出下一系列状态,即当时,可将基向量记为,则转移矩阵为,则,则,而后面的矩阵的幂则可以用快速幂思想快
2015-05-06 18:04:18
845
原创 DP·数位DP(5)
题目:POJ3252 题意:求出给定区间[l, r]中所有二进制表示时0个数不小于1个的数的个数 方法:数位DP定义状态:lldfs(int pos, int zNum, int oNum, bool flag, bool flag2)表示二进制的当前位pos,已有0的个数zNum,1的个数oNum,flag表示是否受限,flag2表示是否为第一位(若为第一位,则枚
2015-05-04 19:59:01
408
原创 DP·数位DP(4)
题目:HDU3709 题意:定义以一个数的某一位为中心点,每一位的价值为这一位上的数*距离中心点的距离,若中心点两边的价值之和相同,则此数平和(即将一个数看做一个天平,是否平衡)。求给定区间[l, r]中的平衡的数的个数。 方法:数位DP定义状态:dfs(intpos, int mid, int dif, bool flag),pos为当前的位置,mid表示中心点位
2015-05-04 11:16:10
404
原创 DP·数位DP(3)
题目:HDU3652 题意:求出在给定区间[l, r]中所有包含”13”且能被12整除的数的个数 方法:数位DP,定义状态dfs(intn, int per, int m, bool flag, int flag2),表示到第n位时,前一个数为per,余数为m,flag表示是否受限,flag2表示之前是否已经出现了”13”#include#
2015-05-01 10:49:01
386
原创 DP·数位DP(2)
题目:CodeForces 55D 题意:若一个数能被其各个位上的数整除,即满足条件。求区间[l, r]内所有满足条件的数 方法:若想要一个数能被其各个数位上的数整除,则此数要能被各个位上的数的LCM整除。而且由于LCM(1~9) = 2520,所以将数对2520取模后,若余数能被LCM整除,则原数也能被LCM整除,因为LCM肯定为2520的一个因子。(期初几个数位
2015-04-28 22:31:22
336
原创 DP·数位DP
题目:HDU3555 题意:求区间[1, n]内所有含”49”的数 方法:数位DP,定义状态:dp[n][m]表示第n位(最高位即为第n位)为m的符合要求的数的个数状态转移:第n位为m的状态符合要求的数有两种可能:1若m=4,且n-1位为9,1~n-2位为任何数均可以,即有10^(n-2)个,若n-1为不为9,则第n为没有贡献,即以n-1位可能的数为头的所有满足
2015-04-28 17:14:38
383
原创 DP·基础DP
题目:HDU1024 题意:给定n(1 ≤n ≤ 1,000,000)个数(-32768 ≤ num≤ 32767)与m,求m个非相交的区间,使得所有区间内的数的总和最大 方法:DP,定义状态:dp[m][n],表示到第n个数时已经有m个区间时的最大和状态转移:第n个数有m个区间可有两种情况到达,1前n-1个数有m个区间了,再在最后一个区间加上第n个数,2第n-
2015-04-27 22:52:37
420
原创 关于longlong与位运算
数据规模:int: -(2^31-1) ~ +(2^31-1)long long:-(2^63-1) ~ +(2^63-1) 由于默认的数字都是int型,所以在做乘法运算时会很容易想到int的溢出问题,如printf("%d\n", 100000 * 100000);输出结果:1410065408即使意识到了超int范围,用lld打印,但因为已经发生溢出,被截断,所以结果不
2015-04-17 22:59:49
2928
1
原创 基础数学·GCD&LCM
题目:UVA11889 题意:已知两个数A和C,求一个最小的整数B使得LCM(A,B) = C 方法:记GCD(A,B) = K,则A = a * K, B = b * K, C = a * b * K所以B = C / A * K,当K = 1 时取最小可由于此时求得的B = C / A 可能与 A 存在公约数,即假设的K = 1不成立(如(12,36))时
2015-04-17 10:45:08
870
原创 背包·分组背包
分组背包,每组最少选择一个题目:hdu3033,neu1537 方法:在普通背包上的基础上增加一条选择物品的路径,即从上一组的最终状态+这一组选择一个物品。//普通背包的选择方式,可保证在枚举当组中物品时至少选择一个if ( bag[i][sum - book[i][j].c] != -1 )bag[i][sum] =max(bag[i][sum], bag[i][
2015-04-15 22:55:31
437
原创 组合数取模计算模板
1一般组合数计算mod的要求:无有效范围:1————————————————————————————————//一般方法求C(n,m)最后取模。C(62,28)溢出。有效范围1<n,m<=60ll CNormal(int n, int m){ if ( m>n ) return 0; ll ans = 1; for (int i=1; i<=m; i++) { an
2015-02-04 14:22:53
814
原创 组合数计算总结
一、 一般组合数计算 利用 的据算公式进行运算,简单明了。利用乘法与除法的同时运行,有效地降低溢出(除法能整除的保证:每i个数中必有一个是i的倍数)。只能对最后的结果进行取模,无法在运算时取模,虽然求取的时候转化为了ans* ans’ * ans’’……的形式,虽然连乘运算可以逐步取模,但如果对ans取模,将无法保证下一步的除法能整除,所以不可取。时间复杂度:O(m) mod的要求
2015-02-04 13:40:52
2414
原创 manacher模板
参数:原串返回值:最长回文串长度附:同时记录每一位的最长回文串长度————————————————————————————————————————————const int MAXN = 110000 ;char strOri[MAXN+100];int maxPalindrome[MAXN*2+100];//最长回文//manacher,返回最长的回文
2015-01-14 14:40:40
320
原创 KMP模板
参数:原串和模式串返回值:在原串中模式串的个数可选:单个字符是否可以被重复使用于多个匹配中————————————————————————————————————————————————————————————const int MAXN = 100000 ; char strOri[MAXN+100], strPar[MAXN+100];int nextLink[
2015-01-14 14:18:51
715
原创 背包题目的合集(第一弹)
此为目前刷的题,作为第一弹题集,也可能是最后一弹了。。。________________________________________华丽丽的分割线________________________________________________hdu2602——01背包题意:给出n个物品的花费与价值,与包的容量,求价值最高题解:基础 p
2015-01-05 22:05:12
653
原创 算法——背包学习(暂时的总结)
01背包void ZeroToOne(int weight, int value){ for(int i=maxV; i>=weight; i--){ bag[i]= max(bag[i], bag[i-weight]+value); }} 完全背包void Com
2015-01-05 22:03:10
487
原创 win快捷键学习
一、 office中快捷键可自行在office中查看学习,多用用就行二、 系统快捷键复制粘贴之类的就不再赘述了1.浏览器页面内搜索(ctrl+F)不管是在网页中快速找到目标还是在文档中的寻找,都是非常使用的存在2.保存(ctrl+s)基本在哪都通用3.新建文件夹(shift+ctrl+N)rt 4.打开“运行”(Windows+R)
2014-12-26 16:34:15
420
原创 Java_Eclipse学习(四)
一.用Eclipse生产帮助文档1、 右击项目,选择export2、 选择Java3、 选择Javadoc4、 在最上面选择Javadoc.exe所在(jdk中)5、 在下面选择导出的目录即可
2014-12-11 09:23:53
383
原创 娱乐新技能get
此技能来源于某一个笑话,经实验,确实好使……但注意适可而止,适时揭出真相……不然,后果自负作为一个有文化的恶搞人员,恶作剧也总是那么有创意一、偷偷打开你同学,或者朋友的电脑,进入桌面二、用截屏截下整个屏幕三、将刚才的截屏图片藏好后设置为背景桌面四、将所有图标删除五、关闭电脑……坐等(你会发现他在那玩命地拖动与点击各个图标却无济于事,手忙脚乱……)六、在他那错愕与惊慌
2014-12-10 14:53:54
446
原创 Eclipse自动补全设置
最简单的修改方式是:Windows——>Preferences——>Java-->Editor-->Content Asis在Auto activation triggers for Java后面的文本框里只有一个“.”现在你将其改为“.abcdefghijklmnopqrstuvwsyzABCDEFGHIJKLMNOPQRSTUVWSYZ_”即可。
2014-12-02 19:46:03
484
原创 移动硬盘分区(win7系统)
一、使用win7系统对移动硬盘进行分区(需要备份数据)1. 右击计算机,选择管理,双击打开存储2. 打开本地磁盘管理3. 此时就可看见你的所有可操作的磁盘4. 右击下面几个你的移动硬盘的分区即可进行相关操作右击下面的移动硬盘内存区即可进行相关添加分区操作
2014-11-29 20:12:53
631
原创 HTML学习(三)
一、实现HTML自动跳转到另一个网页 1.用标签meta实现 优点:简单 缺点:兼容性差 //5秒后自动跳转2. javascript的实现优点:灵活缺点:受不同浏览器的影响 window.location.href='hello.html
2014-11-18 09:40:01
315
原创 HTML学习(二)
一、设置超链接的各种状态颜色和下划线用CSS的伪锚类实现a:link {text-decoration:none; color:#000000}//未访问a:visited {text-decoration:none;color: #000000}//已访问a:hover {text-decoration:none;color: #000000}//鼠标移到此上a:acti
2014-11-15 12:16:09
301
原创 HTML学习(一)
HTML学习(一)HTML 标签 一.用bgsound和js实现音乐的点击播放和取消的简易版1. 设置初始的bgsound为2. 用js写一个简易的函数改变bgsound,传入的为音乐地址 functionplay(s){ varss=document.getElementById('mp3').s
2014-11-14 21:13:45
330
原创 Java_Eclipse学习(三)
作为一个初学者,在使用Eclipse的时候总会有各种各样的小而又基础的问题,特在此边学习边记录。 一.将.jar导入Eclipse1. 选定所需工程后,在菜单栏里选择project2.选择properties3.在左侧选择JavaBuild Path4.在左侧选择Libraries5.然后选择AddExternal JARs,就可以选择你需要的额外的.ja
2014-11-06 09:42:26
288
原创 Java_Eclipse学习(二)
作为一个初学者,在使用Eclipse的时候总会有各种各样的小而又基础的问题,特在此边学习边记录。 一.将.class打包成jar。具体如下1. 运行cmd查看jar命令参数2. 由示例可知归并两个.class并创建新的jar的方法(需先在dos下进入目标.class的路径),测试如下:添加多个.class到jar只需继续在后面加.class的文件名3. 参考实
2014-11-03 12:18:07
346
原创 Java_Eclipse学习(一)
作为一个初学者,在使用Eclipse的时候总会有各种各样的小而又基础的问题,特在此边学习边记录。一..java的导入1.建立一个你需要的工程2.建立一个你需要的包3.右击包后选择import4.选择File System5.浏览你所需要的.java所在的文件夹,即可选择性加入工程Ps:一次只能选择同一个目录下的多个.java,不能同时选择不同目录的.java
2014-11-03 00:24:17
344
TrueCrypt_7.1
2014-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人