上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页
摘要: 1.不会超过500个不同的串…… 2.样例没给has到has是怎么样的,实测是true。 3.记忆化别剪错枝就好,嘤嘤嘤…… C++ const int maxn = 505 + 5; int n, m, tot; string s, op, t; bool can[maxn][maxn][2], 阅读全文
posted @ 2019-04-08 16:46 AlphaWA 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 树上每个割点计算一下各个size的组合相乘再相加为第一问答案,取最大的;再把本答案中最大的两个size相乘减掉,为第二问答案。 C++ const int maxn = 1e4 + 5; int n, size[maxn], ans, b; vector adj[maxn]; void dfs(in 阅读全文
posted @ 2019-04-08 14:52 AlphaWA 阅读(200) 评论(0) 推荐(0) 编辑
摘要: dp[i][j][0/1]:第i天处于第j状态要不要吃。 阅读全文
posted @ 2019-04-08 10:23 AlphaWA 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 其实我读题都懵逼……他给出一个素数p,让你设计一种加和乘的运算使得$$(m+n)^p = m^p+n^p$$ 答案是设计成%p意义下的加法和乘法,这样:$$(m+n)^p\ \%\ p = m+n$$$$m^p\ \%\ p=m$$$$n^p\ \%\ p=n$$ 所以$$(m+n)^p\ \%\ 阅读全文
posted @ 2019-04-08 00:09 AlphaWA 阅读(200) 评论(0) 推荐(0) 编辑
摘要: 题目传送 官方题解说的很好了,剩下的就是读大佬代码了,前面是tarjan求SCC缩点图。我图论没学过,接下来删点是怎么操作看得有点头秃,直到我看到了%%% 安德鲁何 神仙的代码。 按照题面连通紫线以后,我们姑且先考虑从入度为0的点着手看看是否可行。由于都是入度为0的点,所以现在我们连的都是绿边。 假 阅读全文
posted @ 2019-04-07 22:43 AlphaWA 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 题目传送 先给出设计dp的结论: dp[i][j]:以第i个位置、以rankj的数 拓展出去 的方案数。意会一下,我实在想不好语言…… 其中所谓rankj=真·rank\%11 找到拓展的规律,转移也就顺理成章了。不妨先看1~9拓展到的二位数里有哪些是合法拓展: $$Rank1\%11=1:所以数字 阅读全文
posted @ 2019-04-07 13:39 AlphaWA 阅读(538) 评论(2) 推荐(0) 编辑
摘要: 题目传送 贪心方法 按边从小到大扫,先凑3个,没凑足的记录一下数量,后面大的优先跟这些凑,俩带走一个,多余的再凑3个,再……就这样走到最后即可。 阅读全文
posted @ 2019-04-07 11:49 AlphaWA 阅读(239) 评论(0) 推荐(0) 编辑
摘要: 题目传送 排序看一看。 关键点在于发现性质: 算一个点的贡献时: 1.与后一个有重叠。$$当 a[i] + r = a[i + 1] + l, 即 r l = a[i + 1] a[i] 时$$a[i] 与 a[i+1] 重叠的部分,都算在a[i+1]里,则a[i]的贡献为:a[i+1] a[i] 阅读全文
posted @ 2019-04-07 11:44 AlphaWA 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 表格和前面的字不要贴着行…… | 1 | 2 | 3 | | | | | | 嘤 | 嘤 | 嘤 | 多换一行就可以了。 1 | 2 | 3 | | 嘤 | 嘤 | 嘤 阅读全文
posted @ 2019-04-07 11:01 AlphaWA 阅读(889) 评论(0) 推荐(0) 编辑
摘要: 题目传送 虽然线段树比较显然但是发现a数组并不好维护。考虑将a转化为好维护的数组b。 方法 这里我将k[1]设为0,对应着$$a[1] + k[1] INF) { C++ include include include include using namespace std; typedef lon 阅读全文
posted @ 2019-04-07 10:50 AlphaWA 阅读(170) 评论(0) 推荐(0) 编辑
上一页 1 ··· 11 12 13 14 15 16 17 18 19 ··· 27 下一页