会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
Mr^Kevin
自己选择的路,跪着也要走完!
首页
联系
管理
2019年5月26日
GarsiaWachs算法
摘要: 对于一列的石子归并问题,除了朴素的O(n^3)的dp做法及其O(n^2)优化,还有GarsiaWachs算法。 算法流程是,找一个最小的k,使得a[k-1]<=a[k+1],将a[k-1]和a[k]合并;从当前位置向前找到一个最大的i,使得a[i]>a[k-1]+a[k],并将新合并的一堆移到i的后
阅读全文
posted @ 2019-05-26 17:23 Mr^Kevin
阅读(1192)
评论(1)
推荐(3)
2019年2月21日
分治法求sum(a,b)=1+a+a^2+...+a^b=?
摘要: 若b为奇数,则 sum(a,b)=1+a+a^2+...+a^b=(1+a+a^2+...+a^((b-1)/2))+(a^((b+1)/2)+...+a^b)=(1+a^((b+1)/2))*sum(a,(b-1)/2) 若b为偶数,则 sum(a,b)=(1+a^(b/2))*sum(a,b/2
阅读全文
posted @ 2019-02-21 23:17 Mr^Kevin
阅读(557)
评论(0)
推荐(1)
2019年2月14日
lowbit求二进制表示下所有是1的位
摘要: 主要思想是,对于非负整数n,输出n最低位的1所在位,并不断把n赋值成n-(n&-n),直至n=0。 为了提高效率,我们使用Hash代替取log,并且利用一个数学技巧:对于任意在[0,35]中的k,2^k%37互不相等,且恰好取遍整数1~36。
阅读全文
posted @ 2019-02-14 21:11 Mr^Kevin
阅读(340)
评论(0)
推荐(1)
【洛谷习题】售货员的难题
摘要: 题目链接:https://www.luogu.org/problemnew/show/P1171 比较经典的状压DP吧,就是最后一个点不开O2卡不过去。。。 主要是对位运算熟,注意f[1][0]=0,其他状态为正无穷,别的看代码吧。 1 #include <cstdio> 2 #include <c
阅读全文
posted @ 2019-02-14 20:36 Mr^Kevin
阅读(534)
评论(0)
推荐(0)
二进制状态压缩相关操作
摘要: 取出整数n在二进制表示下的第k位:(n>>k)&1 取出整数n在二进制表示下的第0~k-1位(后k位):n&((1<<k)-1) 把整数n在二进制表示下的第k位取反:n^(1<<k) 对整数n在二进制表示下的第k位赋值1:n|(1<<k) 对整数n在二进制表示下的第k位赋值0:n&(~(1<<k))
阅读全文
posted @ 2019-02-14 19:44 Mr^Kevin
阅读(332)
评论(0)
推荐(1)
2019年1月26日
64位整数乘法
摘要: //总结自李煜东著《算法竞赛进阶指南》 问题:求a乘b对p取模的值,其中1<=a,b,p<=10^18。 简单的暴力相乘显然会溢出(相当于对64位整数最大值+1取模),对a进行b次累加显然会超时。 法一: 仿照快速幂,用二进制表示b。 法二: 利用a*b%p=a*b-floor(a*b/p)*p求解
阅读全文
posted @ 2019-01-26 23:10 Mr^Kevin
阅读(938)
评论(1)
推荐(1)
2018年11月5日
差分约束系统
摘要: 差分约束系统是求解不等式组的一种算法,其实就是将不等关系转化为图中的边,然后通过求最短/长路求解不等式组解的边界。 其中不等式应形如y-x<=k,然后利用最短/长路中的三角不等式建边。以最短路为例,假如我们求出了一张图中所有点到源点的最短路,若存在边<x,y>,其边权为k,那么必有dist[x]<=
阅读全文
posted @ 2018-11-05 17:26 Mr^Kevin
阅读(246)
评论(0)
推荐(0)
【BZOJ2330】糖果
摘要: 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=2330 差分约束系统的模板题吧,一看题目各种不等式。。。 因为是要求最小值,所以我们选择跑最长路好了。根据题目描述建边,这个应该不难,x=1就是建从a到b和从b到a的边权为0的边,x=2就是
阅读全文
posted @ 2018-11-05 17:14 Mr^Kevin
阅读(390)
评论(0)
推荐(0)
【BZOJ4562】食物链
摘要: 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4562 好像,一年前,不知道啥叫拓扑图DP的时候做过,记得只有暴力分30。。。 显然和拓扑排序有关,实际上,可以用DP求解。设dp[i]表示以结点i结尾的食物链条数,显然dp[i]=sum{
阅读全文
posted @ 2018-11-05 14:58 Mr^Kevin
阅读(305)
评论(0)
推荐(0)
【BZOJ4010】菜肴制作
摘要: 题目链接:https://www.lydsy.com/JudgeOnline/problem.php?id=4010 一种比较容易想到的做法是把进行拓扑排序的队列换成优先队列,每次取出能访问到的编号最小的点,但这样是不对的,很容易构造数据卡掉。 正确的做法是建反向图,每次取出编号最大的,再将生成的拓
阅读全文
posted @ 2018-11-05 14:27 Mr^Kevin
阅读(228)
评论(0)
推荐(0)
下一页
公告