摘要:
链接 刚开始想的是两次01背包,把第一次走过的给记录下来。好像不太好记录, 参考了大佬的博客,数据范围不是很大,四维数组就可以了, a,b第一个人走的,c,d代表第二个人 dp[a][b][c][d] = max{dp[a][b -1][c][d -1] , dp[a - 1][b][c -1][d 阅读全文
摘要:
难点:字符串处理 #include <iostream> #include <cstring> #include <cstdio> #include <map> using namespace std; char ss[100],s1[50],s2[50]; string s3; map<strin 阅读全文
摘要:
KMP next数组:next[i]表示以i为终点的前缀的最长相同前后缀长度 拓展KMP extend数组: extend[i]表示文本串T中以i为起点的后缀与模式串S的最大相同前缀的长度 next数组:next[i]表示S以i为终点的最大相同前后缀长度 阅读全文
摘要:
题意:给你n个由小写字母组成的字符串S,求出能找到k个S的新字符串,并且尽量短 考察nxt数组的含义 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using namespace std; 阅读全文
摘要:
题意:给出一个字符串,问字符串中存在多少子串,使得这些子串既是字符串的前缀,又是字符串的后缀,要求从小到大依次输出这些子串的长度。 思路:根据 next 数组的定义,可以得到前缀 next[len] 长度的子串与后缀 next[len] 长度的子串相同,因此求出 len 处的 next 值,然后向下 阅读全文
摘要:
离散化 #include<bits/stdc++.h> using namespace std; const int MAX = 2e6 + 5; int n, f[MAX], a[MAX], b[MAX], c[MAX]; vector<int> d; int find(int v) { retu 阅读全文
摘要:
题 算贡献 完全平方公式展开,(a+b)²=a²﹢2ab+b² 对于本题来说,第一个数会与第二个...第n个,也就是(n-1)次 平方 同理,对于2*a*b开说, 第一个数字*(第二个+第三个+......第n个) 还要注意mod问题,为了防止溢出和出现负数,加mod 1 #include<bits 阅读全文
该文被密码保护。 阅读全文
摘要:
小H在一个划分成了n*m个方格的长方形封锁线上。 每次他能向上下左右四个方向移动一格(当然小H不可以静止不动), 但不能离开封锁线,否则就被打死了。 刚开始时他有满血6点,每移动一格他要消耗1点血量。一旦小H的 血量降到 0, 他将死去。 他可以沿路通过拾取鼠标(什么鬼。。。)来补满血量。只要他走到 阅读全文
摘要:
小明维护着一个程序员论坛。现在他收集了一份"点赞"日志,日志共有N行。其中每一行的格式是:ts id。表示在ts时刻编号id的帖子收到一个"赞"。 现在小明想统计有哪些帖子曾经是"热帖"。如果一个帖子曾在任意一个长度为D的时间段内收到不少于K个赞,小明就认为这个帖子曾是"热帖"。 具体来说,如果存在 阅读全文