2020年7月8日

[SDOI2016]储能表

摘要: 数位dp题。 f[i][0/1][0/1][0/1]表示从高到低第i位,是否到n的上界,是否到m的上界,当前异或结果是否到k的下界。 对于每个状态记录合法方案数和所有合法i,j的异或和,对于每一位枚举n和m选0还是1转移即可。 #include<bits/stdc++.h> #define file 阅读全文

posted @ 2020-07-08 22:59 啊啊啊起个什么名字好 阅读(116) 评论(0) 推荐(0) 编辑

[NOI2019]I 君的探险

摘要: 大概思路如下: 我们随便点亮一个点集S,假设此时T集合中的点是亮的,就代表着T集合中的每个点到S集合至少有一条边,我们通过整体二分可以找出这条边。可以证明这样找到一条边的期望次数是log的,因此总次数为O(mlogn),加些随机化就过了。 #include<cstdio> #define maxn 阅读全文

posted @ 2020-07-08 22:55 啊啊啊起个什么名字好 阅读(180) 评论(0) 推荐(0) 编辑

宝石游戏

摘要: 神仙题,考虑暴力dp,f[i][j]代表以i为根的子树,到i距离为j的点的权值和。由于这个dp跟深度有关,显然可以用长链剖分优化到O(n) 考虑修改,我们可以将操作序列分块,对于每个块跑一遍长链剖分,统计一个点的询问时暴力进行在这个询问之前的所有修改,处理完一个块之后再把块内的所有修改加上。 我们需 阅读全文

posted @ 2020-07-08 22:47 啊啊啊起个什么名字好 阅读(157) 评论(0) 推荐(0) 编辑

[NOI2018]冒泡排序

摘要: 题意可以转化成一个点不能既向左又向又移动。 条件成立当且仅当对于任意一个点,不同时存在左边比它的大点和右边比它小的点,即一个点如果不是前缀最大值就是后缀最小值。 假设不考虑字典序,有f[i][j]代表考虑前i个点,当前最大值为j的方案数,考虑到如果第i个数如果不填j就只能填所有能填的数中最小的,有转 阅读全文

posted @ 2020-07-08 22:32 啊啊啊起个什么名字好 阅读(106) 评论(0) 推荐(0) 编辑

2020年7月6日

CF486D Valid Sets

摘要: 枚举最大点i,统计以i为最大点有多少个连通块,由于一个连通块可能有许多个最大点,我们强制选编号最小的那个即可。 #include<bits/stdc++.h> #define file(s) freopen(s".in","r",stdin);freopen(s".out","w",stdout); 阅读全文

posted @ 2020-07-06 21:32 啊啊啊起个什么名字好 阅读(169) 评论(0) 推荐(0) 编辑

[NOI2018]归程

摘要: 神奇的kruskal重构树(考场不会可以现场发明)。。。 首先跑一遍dj,则对于每次询问,答案就是v能到的所有点中dis最小的点的dis 考虑按海拔高度,从大到小加边直到图联通,我们需要维护每个点所在的连通块,以及每个连通块中dis最小的点 离线。。。并查集? 强制在线。。。可持久化并查集? 有没有 阅读全文

posted @ 2020-07-06 21:14 啊啊啊起个什么名字好 阅读(154) 评论(0) 推荐(0) 编辑

2020年7月5日

[NOI2019]弹跳

摘要: 黑科技!线段树套set,空间一个log,代码巨短,就是。。。常数有点大。 把每个矩形当做一个点用到了再建边用过了就删除什么的套路就不说了 #include<bits/stdc++.h> #define file(s) freopen(s".in","r",stdin),freopen(s".out" 阅读全文

posted @ 2020-07-05 21:45 啊啊啊起个什么名字好 阅读(125) 评论(0) 推荐(1) 编辑

CF1175E Minimal Segment Cover

摘要: f[i][j]代表以i为左端点,选择2^j条线段,右端点最远能覆盖到哪,注意初始化时f[i]不具有单调性,要与f[i-1]取个max。 #include<bits/stdc++.h> #define file(s) freopen(s".in","r",stdin);freopen(s".out", 阅读全文

posted @ 2020-07-05 21:42 啊啊啊起个什么名字好 阅读(123) 评论(0) 推荐(0) 编辑

[NOI2019]序列

摘要: 神奇贪心 考虑进行K次操作,每次选择一个a中的点和b中的点。 首先,任何时刻,如果a与b中未成对的点对数量小于K-L,我们都可以选择a中最大的点和b中最大的点。 否则,我们选择一下三种策略中收益最高的那个(如果相同则随便选) 1.找到一个i,满足ai与bi均未被选择,选择ai与bi 2.找到一个i, 阅读全文

posted @ 2020-07-05 21:39 啊啊啊起个什么名字好 阅读(164) 评论(0) 推荐(0) 编辑

2019年5月21日

POJ 3678

摘要: 2-SAT 问题板子题,怎么建边见代码 #include<bits/stdc++.h>using namespace std;#define N 2100#define M 1000005 int head[N],dfn[N],low[N],id[N];int n,m,cnt,scnt;stack< 阅读全文

posted @ 2019-05-21 20:13 啊啊啊起个什么名字好 阅读(138) 评论(1) 推荐(1) 编辑

导航