摘要:
A.小P的2048 作为一个看B哥玩了一个寒假的人这种题闭眼切好吧 模拟即可。程序模块化后直接复制粘贴。 说什么模拟不能复制粘贴的都没水平 B.小P的单调数列 结论:必然存在一个最优子序列,它的单调区间数不超过2。 那么,其实最优子序列只有可能是单增或单增+单减。 正反都跑一遍dp,树状数组优化即可 阅读全文
摘要:
题目描述 有两个仅包含小写英文字母的字符串A和B。 现在要从字符串A中取出k个互不重叠的非空子串,然后把这 k 个子串按照其在字符串 A 中出现的顺序依次连接起来得到一个新的字符串,请问有多少种方案可以使得这个新串与字符串 B 相等? 注意:子串取出的位置不同也认为是不同的方案。 输入格式 第一行是 阅读全文
摘要:
我连D1T3都不会我联赛完蛋了 题目描述 策策同学特别喜欢逛公园。公园可以看成一张 N 个点 M 条边构成的有向图,且没有 自环和重边。其中1号点是公园的入口, N 号点是公园的出口,每条边有一个非负权值, 代表策策经过这条边所要花的时间。 策策每天都会去逛公园,他总是从1号点进去,从 N 号点出来 阅读全文
摘要:
A.简单的序列 遇到括号匹配,先将左右括号转化为1和-1。 那么一个括号序列合法的必要条件:总和为0且所有时刻前缀和$\ge 0$。 用dp预处理出长度为$i$,总和为$j$的括号序列数量。那么如果p的方案数为$dp[i][j]$,与之匹配的q的方案数即为$dp[n-m-i][j+串m的总和]$。 阅读全文
摘要:
kuku A.chess 首先考虑$m=n$的情况,中间没有限制,所以直接设$dp[i][j]$为考虑前$i$列,共放$j$枚棋子的方案数转移即可。刷表控制一下边界。 不难发现$i$列和$i+pn$列的的情况是一样的,所以沿用上面那个转移, 改为 $dp[i][j+k]=\sum dp[i-1][j 阅读全文
摘要:
时隔多年,终于又有了一套我能改完的题…… A.神炎皇 遇到这种要求整除的题显然拆出gcd 设$d=gcd(a,b)\ \ \ a'=\frac{a}{d} \ \ \ b'=\frac{b}{d}$ 原式转化为$(a'd+b'd)|(a'db'd)$ $(a'+b')|(a'b'd)$ 又因为$gc 阅读全文
摘要:
A.Median 这题的数据生成方式并没有什么规律,所以可以认为是随机数据。 维护一个桶,表示当前K长区间里的值域情况。 并且用变量记录中位数值域上的左侧有多少个数,当区间调整时一并调整桶和这个变量即可。 由于是随机数据,所以每次的调整幅度并不会很大,近似于常数。 复杂度$O(n)$。 B.Game 阅读全文
摘要:
A.Graph 因为点可以随便走,所以对于每个联通块,答案为边数/2向下取整。 用类似Tarjan的方式,对于每个联通块建立一棵搜索树,尽量让每一个节点的儿子两两配对,如果做不到就用上头顶的天线。 B.Permutatin 从原排列入手比较困难,我们求出这个排列的$pos$数组($pos[a[i]] 阅读全文
摘要:
回去要补一下命运石之门了…… A.嘟嘟噜 给定报数次数的约瑟夫,递推式为$ans=(ans+m)\% i$。 考虑优化,中间很多次$+m$后是不用取模的,这种情况就可以把加法变乘法了。问题在于如何找到下一次需要取模的位置。 解不等式$ans+km \ge i+k$即可,需要处理一下边界。 据说可以证 阅读全文