摘要:
题意:有向图求S到T的第K短路 说下A*,其实这只是个辅助功能,通俗点不说估值函数什么的其实很容易理解,就是个搜索方式 如果我们放很多个速度一样的人在起点,随便他们怎么走,那我们在终点等到的第K个人走的路,肯定就是第K短路 那么我们随意放人得到所有路径长度,就是爆搜,爆搜肯定会超时 这时候我们就需要 阅读全文
摘要:
题意:一个n*m的矩阵,0表示不能放,1表示能放,不能有两个1相邻放,问有多少种方案%1e9 原以为我还比较会位运算的。。。还是太天真了。。。 状压的各种细节就不写了别的博客讲了很多,重点梳理一下自己的思路 因为两个1不能出现在相邻位置,首先筛出(1<<m)-1范围内,没有两个1在一起的二进制数,就 阅读全文
摘要:
题意:长度为n的区间,m个操作,一开始都是0 1 x表示求出长度为x的0的连续区间的最左端,并把这个区间变成1 2 x y表示将区间[x,y]变成0 线段树的区间合并第一题: 每次维护左端连续区间长度ls、右端连续区间长度rs,最大连续长度ms 区间合并的注意点主要在push up操作: 每次更新了 阅读全文
摘要:
题意:求区间【L,R】满足以下性质:(1)数位中没有7,(2)数位和不被7整除,(3)数字本身不被7整除 的所有数字的平方和 先记录一个毒瘤错误。。。感觉自己好不会设状态啊。数位dp的状态自己都不知道是不是对的能不能转移QAQ。 错误代码: 1 #include<cstdio> 2 #include 阅读全文
摘要:
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=4734 大致意思就是每次询问【0,b】区间有多少数的f(i) <= f(a) 这题有一个巧妙的状态定义方式:dp[pos][sum]表示枚举到第pos位,【还需要】sum才能达到f(a) 1e9的数据范围 阅读全文
摘要:
一个数字是平衡数字,当且仅当存在它的一个数位作为平衡点,这个点左边和右边【数字*到这个点的距离】之和相等 容易知道一个平衡数字只有一个平衡位置 设状态为dp[pos][n][sum]表示当前第pos位,平衡点在n,当前的距离为sum,枚举平衡位置 距离不取绝对值,这样sum最终为0就是可行解,而且s 阅读全文
摘要:
推荐hzwer大佬的博客:http://hzwer.com/8053.html 初步学习体验就是,分块作为一种复杂度看上去并不优秀实际效率却很优秀的数据结构,在解决某些用其他如线段树等log数据结构非常麻烦的问题时非常好写好用,以后搭配莫队简直是解决大部分区间问题的强力算法 分块本身其实还是挺简单的 阅读全文
摘要:
题意:给出区间【L,R】,求其中有多少个数满足自身被数位和整除 比赛出了刚好没刷的原题系列= = 思路:枚举的过程中很好记录数位和,但是一个数字可以很大(1e9、1e12),不能加到状态里 既然相对很小的量是数位和,考虑枚举最终的数位和作为模数,用它来模过程中得到的数字num,这样num就可以加入状 阅读全文
摘要:
题意:给出区间[1,n],m个条件:[u,v]的和为w,求有几条与前面的条件矛盾 数据范围:1 <= n <= 2e5,m <= 40000 终于看懂了啊。。。之前一直没弄懂,问了大佬也没问明白我觉得这题目纠结和别扭的点。 推荐一篇博客:https://www.cnblogs.com/liyingg 阅读全文
摘要:
题意:给两个01串S和T,求两个串的距离,即与S等长度的T的子串与S不同的位数(说起来有点绕,看样例好理解) 数据范围: |S|, |T| <= 2e5 思路:由数据范围可知不能瞎暴力,容易发现S的第一位可以与T的第一位到第lenT-lenS+1位对应,第i位可以与第lenT-lenS+i位对应,只 阅读全文