摘要: 设状态转移方程 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) 编辑