上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页
摘要: 构造题。 我递归构造的,发现如果N>3的话就优先删奇数,然后就把删完的提取一个公约数2,再重复操作即可。 具体原因我觉得是因为对于一个长度大于3的序列,2的倍数总是最多,要令字典序最大,所以就把非2的倍数全删了。 假设不删奇数,剩下的数要提取出来非1的公因数,要删的数一定比删奇数删的起码多1,出现比 阅读全文
posted @ 2018-10-06 08:30 SWHsz 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 容斥+背包。 先做完全背包,然后就去掉用的硬币大于限量的,用容斥原理去下重就行了。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=100005; int c[5],T 阅读全文
posted @ 2018-10-05 19:45 SWHsz 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 有个套路:计算单调不降的,可以给第i项加一个i,转化成单调递增的,然后就变成了在值域[L+1,R+N]中取1~n个数。 复制一下popoqqq大佬的图片 M=R-L+1。 式子就变成了这个样子。 Lucas定理随便做了。 #include <iostream> #include <cstdio> # 阅读全文
posted @ 2018-10-04 20:45 SWHsz 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 设状态转移方程 f[i][j]表示前i个人打饭,目前第一窗口的最后一个打完饭的时间是j,最后一个吃完饭的人的时间。 然后n^3转移。 #include <iostream> #include <cstring> #include <cstdio> #include <algorithm> using 阅读全文
posted @ 2018-10-03 21:25 SWHsz 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 相当于是V[x]+V[y]=c(x是行,y是列,c是这个点的点权) 然后我们就可以用二分图判定一下是否可行。找个有点权的点随便dfs一下就行了。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; 阅读全文
posted @ 2018-10-03 20:13 SWHsz 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 惊奇地发现,如果一个区间能被判定是错的,当且仅当这个区间被已知权值的区间夹着,且表出的区间值与给出的不相等,才能表示这个区间GG了。 然后用带权并查集维护当前节点所能表示的最远区间及其权值。如果发现新的区间的find(l-1)==find(r),就可以猜猜看它的正确性了。 #include <ios 阅读全文
posted @ 2018-10-03 19:41 SWHsz 阅读(199) 评论(0) 推荐(0) 编辑
摘要: 题面: 约翰和贝茜在玩一个方块游戏.编号为1到n的n(1≤n≤30000)个方块正放在地上.每个构成一个立方柱. 游戏开始后,约翰会给贝茜发出P(1≤P≤100000)个指令.指令有两种: 1.移动(M):将包含X的立方柱移动到包含Y的立方柱上. 2.统计(C):统计名含X的立方柱中,在X下方的方块 阅读全文
posted @ 2018-10-03 19:02 SWHsz 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 寒假zrt讲过,用并查集维护这个点往后最近的白色馒头是谁,然后时光倒流,直接往它的fa处跳就行了。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const int N=1000005; i 阅读全文
posted @ 2018-10-03 18:44 SWHsz 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 把这个图缩成圆方树,把方点的权值设成-1,圆点的权值设成点双的size,算 经过这个点的路径的数量*这个点的点权 的和即是答案。 #include <iostream> #include <cstdio> #include <cstring> using namespace std; const i 阅读全文
posted @ 2018-10-02 19:50 SWHsz 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 最小表示法就是一个字符串构成一个环,找以哪个点为开头字典序最小。 然后我们就可以用n2的算法愉快的做啦~实际上有O(n)的做法的,就是用两个指针扫,如果这两个位置的字典序相等,就一起往后,如果某一个大,就把那个指针指到大的那个的后面。 每次至少有一个指针往后移一个,复杂度就是线性的了。 (自己YY的 阅读全文
posted @ 2018-10-02 17:56 SWHsz 阅读(219) 评论(0) 推荐(0) 编辑
上一页 1 ··· 3 4 5 6 7 8 9 10 11 ··· 28 下一页