摘要:
1.背包dp[i][j]无论当前物品是否不大于j都可以转移dp[i-1][j] 2.循环从0开始还是1开始的问题 3.无向图边集数组开两倍 4.(3*987654321) > maxint 4.超过maxint的常数后边一定要加LL 5.windows下,%I64d,linux下,%lld 6.搜索 阅读全文
摘要:
7月9日 tyvj1359 收入计划(二分) tyvj2477 架设电话线(最短路、二分) tyvj1460 旅行(并查集、二分) bzoj1816 扑克牌(二分) NOIP2015 跳石头(二分) NOIP2011 聪明的质监员(二分、前缀和) NOIP2012 借教室(二分、前缀和) 7月10日 阅读全文
摘要:
n<=2000,肯定没有办法把所有三角形找出来全判一遍 对于三角形的三个角,分别计算贡献,锐角的贡献是1倍面积,钝角的贡献是-2倍面积,这样算出角的贡献之后除以3就可以了 每次选择一个点为中心点,极角排序,维护一个锐角和钝角的坐标和,边扫边算贡献 阅读全文
摘要:
除了走到哪里,还要加状态表示当前节点和已经匹配的串 阅读全文
摘要:
注意标记一个点后,fail树上的子节点都会被标记 跑spfa,dp也可以 阅读全文
摘要:
https://zoj.pintia.cn/contests/91827364639/problems C 要把这两个二进制串变为相同,需要先看哪些位置不同,设为数组c,某位为1则两位不同。 分1形成两段、四段或者更多段来考虑。 M 递归,碰到循环节就停止。 J 正好买m本书,还要带的钱最多。 考虑 阅读全文
摘要:
给你n个点,求面积最大的凸多边形,使得这个凸多边形没有内点。 考虑求凸包的graham算法,需要找到左下角的点,再进行极角排序后按顺序扫点,所以先枚举左下角的点。 这个过程中,如果遇到内点,就需要把这个内点排除掉,而现在需要把在外的点排除掉。 因为不确定凸包的边界,需要dp处理,一开始是一个三角线的 阅读全文
摘要:
D 如果1/n是有限小数,不停乘以10,一定在有限次之后成为一个整数。 10的质因子只有2和5,只要保证分母的质因子只有2和5即可 F 仙人掌,环之间不相互影响,一个环至少删掉一条边,链无所谓,分别计算乘法原理合并 I 和之前做过的一个题很像,但是那个题需要贪心的性质为支撑,这个dp直接做就行了 J 阅读全文
摘要:
A 矩阵树定理可以用于最小生成树计数,最直观的做法就是求个mst,再用矩阵树定理求最小生成树个数,但是n<=1e5,显然不是o(n^3)可以做出来的。 考虑随机数据生成器,固定1e5的边,但是边权在unsigned long long的范围内随机指定,由样例看出,即使是点数很少的情况下,最多也只有一 阅读全文
摘要:
由样例可知,题目中求的回文串数量,其实是本质不同的回文串数量,这个可以直接用回文树来做。 考虑前半段是回文串这个限制,这个东西回文树不好做,可以再套一个马拉车,然后记录一下插入到回文树的节点中最后一个字符的位置,使用马拉车快速判断这一段的前半段是不是回文串 阅读全文
摘要:
https://codeforces.com/gym/101955 J 签到 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<string> #include <set> #incl 阅读全文