上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 24 下一页
摘要: 题意:给你一个长度为n序列,和一个数m,问这个序列有多少个子序列,满足这个子序列的所有子序列的和是m的倍数?答案对1e9 + 7取模,n, m范围到5e3; 思路:容易发现,如果一个子序列的长度是n,子序列的所有的元素的和是sum的话,它的所有的子序列的和是sum * 2 ^ (n - 1),那么我 阅读全文
posted @ 2019-05-11 18:12 维和战艇机 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 题意:你有一个字符串, 有两种操作,一种是改变字符串,一种是某个用户询问这个字符串,如果一个用户每次查询字符串的时候都是他的用户名,他就会高兴。问最多有多少个用户会高兴? 题意:容易发现,在两个1操作之间,如果有多个用户的的询问,只能满足一个。换句话说,如果满足了其中的一个,那么其它的便不能满足。我 阅读全文
posted @ 2019-05-09 21:27 维和战艇机 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个数组,如果数组中的某个位置是-1那就可以填1到m的数字中的一个,但是要遵守一个规则:不能出现长度为奇数回文的子串,问合法的填法有多少种? 思路:不出现长度为奇数的回文子串,只需不出现长度为3的回文子串就可以了,那么i位置和i - 2位置填的数字不能一样。所以,我们可以把这个数组拆成2部 阅读全文
posted @ 2019-05-09 09:35 维和战艇机 阅读(316) 评论(0) 推荐(0) 编辑
摘要: 题意:有一颗由长度为2 * n的合法的括号序列构成的字典树,现在你需要在这颗字典树上选择一些不连接的边,问最多可以选择多少条边? 思路:不考虑题目条件的话,我们只考虑在随意的一棵树上选择边,这是一个贪心的问题,只需要每次选择叶子结点和它的父亲这条边,然后把它和它父亲节点删除就可以了,不断进行这个操作 阅读全文
posted @ 2019-05-08 09:20 维和战艇机 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 题意:我方有n个士兵,敌方有m个,每方士兵都有一个血量,现在有k轮无差别炮火打击,每次都会从存活的士兵中随机选一人,这名士兵的HP就-1,问对方被团灭的概率有多大? 思路:因为n和m的范围很小,我们可以考虑暴力搜索,中间使用记忆化。这里状态压缩有一个小技巧,我们的正常想法是:因为士兵总数最多只有10 阅读全文
posted @ 2019-05-07 20:40 维和战艇机 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 题意:给你一个数组a,设函数f(l, r)为数组a中权值在[l, r]之间的连通块的数目,比如a = [1, 3, 2, 1], f(1, 2) = 2, 连通块是位置1和位置3,4。问Σ(i = 1 to n)(j = i to n) f(i, j)的和是多少。 思路:这种求各种情况的总答案的问题 阅读全文
posted @ 2019-05-05 20:19 维和战艇机 阅读(333) 评论(0) 推荐(0) 编辑
摘要: 题意:有个人想收拾行李,而n个物品散落在房间的各个角落里(n < 24)。现在给你旅行箱的坐标(人初始在旅行箱处),以及n个物品的坐标,你一次只能拿最多两个物品,并且拿了物品就必须放回旅行箱,不能暂时放在地上。问最小的花费是多少?花费是笛卡尔距离的平方。 思路一看n 只有24,应该很容易想到要用状压 阅读全文
posted @ 2019-05-01 12:38 维和战艇机 阅读(278) 评论(0) 推荐(0) 编辑
摘要: 题面 思路: 函数f相当于是求一个点集f的直径,有一个性质是如果这个点集有多个直径一定相交于某一个点,或者一条边的中心,所以我们暴力枚举重心,计算以某个点为重心的点集对答案的贡献。 具体实现的时候,我们从一个重心开始深搜,计算其它点到这个点的距离。我们现在假设计算以当前点为重心,有多少个点集的直径是 阅读全文
posted @ 2019-04-27 22:59 维和战艇机 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 题意:给你两个数x 和 y, x = a + b, y = a XOR b,问有没有合法的a和b满足这个等式? 思路:有恒等式: a + b = ((a & b) << 1) + (a ^ b),所以x - y = ((a & b) << 1), 如果x - y奇数,那就没有合法方案,否则我们可以构 阅读全文
posted @ 2019-04-23 23:38 维和战艇机 阅读(289) 评论(0) 推荐(0) 编辑
摘要: 大概思路及题意看这篇博客吧 我的理解:设f[i]表示处理到第i个区间,能唱的最多的歌,g[i]是保证f[i]最大时最靠左的点。那么f[i] = max(f[j] + (r[i] - max(l[i], g[j] + t)) / p), g[i] = r[i] - (r[i] - max(l[i], 阅读全文
posted @ 2019-04-23 23:03 维和战艇机 阅读(163) 评论(0) 推荐(0) 编辑
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 24 下一页