04 2018 档案
摘要:Description 贝西正在打格斗游戏。游戏里只有三个按键,分别是“A”、“B”和“C”。游戏中有 N 种连击 模式,第 i 种连击模式以字符串 Si 表示,只要贝西的按键中出现了这个字符串,就算触发了一次连 击模式。不 同的连击模式是独立计算的,如果几个连击模式同时出现在贝西的按键顺序里,就算
阅读全文
摘要:[不稳定的传送门] Solution 真的是模版 Code
阅读全文
摘要:[不稳定的传送门] Solution 考虑算出所有不包含给定字符串的方案数,在用总数减去就行了 f[i][j]表示到第i个字符串,当前停在自动机上j点的方案数 Code
阅读全文
摘要:Description 不稳定的传送门 某人读论文,一篇论文是由许多单词组成。但他发现一个单词会在论文中出现很多次,现在想知道每个单词分别在论文中出现多少次。单词个数<=200,单词总长度<=10^6 Solution AC自动机的入门题,将所有单词建一颗字典树,并构造fail树 然后随便统计一下数
阅读全文
摘要:Solution 不稳定的传送门 对KMP的灵活应用 设dp[i]表示前[1,i]的答案 那么dp[i]=dp[p[i]]+1,p[i]为失配函数 Code
阅读全文
摘要:Description 不稳定的传送门 求最少需要在给定字符串后面补几个字符才能凑成至少两个循环 Solution 对KMP中p数组的灵活引用 首先,n-p[n]为为字符串的最小循环节,如果(n%(n-p[n]))==0那么不需要补字符 否则的话,应补的字符数最少应为(n-p[n])-n%(n-p[
阅读全文
摘要:Description 传送门 给定字符串,求每个前缀的最短循环节长度 Solution KMP中nex数组的应用, 如果i%(i-nex[i])==0那么这个前缀有最短循环节 Code
阅读全文
摘要:Description 题目链接 Solution 可以把题目转化一下模型,将间隔取出来,转化为N-1个数,限制不能取相邻两个数,求取K个数的最小价值 设DP[i][j]表示前i个数取j个最大价值(第i个数取),那么DP[i][j]=min{DP[i-1][j],DP[i-2][j-1]+d[i]}
阅读全文
摘要:Description 题目链接 Solution 设一个l指针指向当前数列左边,从左往右扫描一遍,将当前颜色记录, 当所有颜色都得到后,进行判断,如果当前l指向的颜色大于需要的颜色,l后移一位,然后更新答案 Code
阅读全文
摘要:Description 题目链接 Solution 显然的区间DP,正常想法f[i][j]表示前i个数分成j块,每次在i前找一个k使得balala,然而常规打法会超时 我们发现,对于i前面的所有点,他们的值在[0,p)之间,而有些f[k][j-1]的值是相同的,而他们的贡献也是一样的, 所以直接枚举
阅读全文
摘要:Description 题目链接 Solution 这里用类似hash的方法将判断2个矩阵是否相同的时间降为O(m),总时间复杂度为O(m3) Code
阅读全文
摘要:Description "题目链接" Solution 可以根据条件构造出一个矩阵, 1 3 9 27 81... 2 6 18.... 4 12 36... 这个矩阵满足$G[i][1]=G[i 1][1] 2(1 include include define N 100010 using nam
阅读全文
摘要:Description "题目链接" Solution 这题跟数列的中位数有关, 具体证明见刘汝佳的蓝皮书里 Code c++ include include include define N 1000010 define ll long long using namespace std; int
阅读全文
摘要:Description 约翰带着奶牛去都市观光。在落日的余晖里,他们看到了一幢接一幢的摩天高楼的轮廓在地平线上形成美丽的图案。以地平线为 X 轴,每幢高楼的轮廓是一个位于地平线上的矩形,彼此间可能有重叠的部分。奶牛一共看到了 N 幢高楼,第 i 幢楼的高度是 Hi,两条边界轮廓在地平线上的坐标是Ai
阅读全文
摘要:Description "题目链接" Solution 这题就是一个贪心, 如果最弱的能赢对方最弱的就赢 否则最强的能赢对面最强的就赢 否则最弱的换对面最强 Code c++ include include using namespace std; int n,Ans,A[100010],B[100
阅读全文
摘要:Description "题目链接" Solution 这题状态比较难想, $dp[i][j][g][h]$表示强i个人有j个男生,在某个区间男生最多比女生多g人,女生最多比男生多h人的方案数,然后DP即可 最后答案是是所有$dp "n+m][n][i][j" $加起来 Code c++ inclu
阅读全文
摘要:Description "题目链接" Solution 用三进制表示陷阱状态,1表示有害,2表示无害,0表示不知道 用$f[S][i]$表示状态为S时陷阱i有害的概率,这个可以预处理出 $d[S][i][j][h]$表示状态为S,在坐标$(i,j)$,血量为h时的答案 然后就可以DP了,记忆化搜索
阅读全文
摘要:Description "题目链接" Solution 容斥原理,答案为忽略质数限制的方案数减去不含质数的方案数 然后矩阵乘法优化一下DP即可 Code c++ include include include define N 120 using namespace std; const int M
阅读全文

浙公网安备 33010602011771号