上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页
摘要: 传送门 题目大意 有n个城市,每个城市有一个传送点,都可以传送到唯一的另外一个城市,保证从任何位置出发经过若干次传送之后能够到达1号城市。现在希望修改一些点的目的地,使得从任何一点出发在传送K次之后恰好都能到达1号城市,求最少要改变目的地的城市的数量。 分析 比较典型的贪心 从下往上搜索,每当深度为 阅读全文
posted @ 2018-12-02 10:31 水题收割者 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 基本的lct操作,建一个点N表示弹飞出去的点,每次输出N的左子树的大小即可 代码 阅读全文
posted @ 2018-12-02 09:55 水题收割者 阅读(181) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 不难想到如果这个图是一个DAG则答案就是图的最长路 于是我们考虑有环的情况 我们发现一个环上的所有点颜色一定不相同 于是我们发现答案就是缩点之后跑一遍点权最长路 点权就是这个强联通分量中的点的数量 注意求最长路的时候要用拓扑排序求 代码 阅读全文
posted @ 2018-11-26 22:49 水题收割者 阅读(277) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们假设主视图的颜色为1 如果只有两种颜色,且能求出w[x][y]表示一列中放置x个1和y个2的方案数 则我们可用dp[i][j][k]表示考虑到第i列放j个1和k个2的方案数,这样的复杂度为$O(n^5)$ 我们可以把颜色2和颜色3统一看成颜色2,最后方案数乘上$C_{b+c}^b$ 阅读全文
posted @ 2018-11-26 22:42 水题收割者 阅读(284) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 见ptx大爷的博客 代码 阅读全文
posted @ 2018-11-24 13:18 水题收割者 阅读(297) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们考虑把网格图转换为一个对偶图 然后我们每次删一条边就是将对偶图上对应的两个点用并查集连接起来 每次查询看是否联通即可 代码 阅读全文
posted @ 2018-11-23 20:47 水题收割者 阅读(136) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 设dp[i]为进行i轮的最小值 所以不难得出dp[i]=Min(dp[i],dp[j-1]+(i-j+1)*dij(j,i)+k) dij(L,R)表示在[L,R]这几天的最小值 处理这几天哪些点不能走然后求最短路即可 注意dp[0]=-k 代码 阅读全文
posted @ 2018-11-17 20:22 水题收割者 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 https://www.luogu.org/problemnew/solution/P3980 代码 阅读全文
posted @ 2018-11-17 12:06 水题收割者 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们知道无论往左走还是往右走一定都是往不低于这个点的地方走 于是我们可以考虑用倍增来维护一个点向左和向右走$2^i$最远分别能走到哪里 我们可以先用单调栈求出直走一步的情况,之后再处理倍增数组 值得注意的是有可能一直往左走不是最优情况,而先向右再想左会使答案更优 于是le[x][i]= 阅读全文
posted @ 2018-11-06 09:06 水题收割者 阅读(788) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们考虑把每个A[i]考虑为山峰的高度,每次的B考虑为海平面 于是我们知道对于A[i]和A[i-1],如果A[i-1]<A[i]则在A[i-1]<B<=A[i]时会使陆地总数加一 于是树状数组维护即可 代码 阅读全文
posted @ 2018-11-05 14:00 水题收割者 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 自然想到二分 我们二分一个长度,之后考虑如何线性判断是否合法 我们可以维护一个单调队列表示从i开始的长度为d的区间和的最大值 每次用一段区间和减去它包含的长度为d的区间最大值即可 但是我们发现这个数据范围有那么一点点会t的征兆 于是我们考虑消除掉二分的log 于是我们继续用单调队列维护 阅读全文
posted @ 2018-11-05 09:38 水题收割者 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 由于我不知道壶里到底有多少水,那么显然我第一次 分别向两个杯子分别到 L/2 +1 和 L/2 才是最优的.(这样既维护了两个人的差值不超1,又正好倒了L的水).那么接下来如果壶里还有水的话,我每次像水少的那个杯子里倒2就好了(这也是为什么维护一开始二者差为1的原因),那么就是 (r 阅读全文
posted @ 2018-11-05 09:32 水题收割者 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 我就是我,一辈子都学不会线性筛的菜鸡 一篇非常好的博客 阅读全文
posted @ 2018-11-05 09:02 水题收割者 阅读(104) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们考虑用所有的情况减去不合法的情况 不难想出所有情况为$C_n^3$ 于是我们考虑不合法的情况 我们知道对于一个不合法的三元组$(a,b,c)$一定是修改后$a<b,b>c$ 于是我们可以离散化后用线段树维护每个点被覆盖了几次 所以每次对于一个点$i$,比它大的点的个数即为在它前面修 阅读全文
posted @ 2018-11-04 21:35 水题收割者 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们发现$k$位数实际就是一位的情况的$k$次方 考虑一开始的总方案数是$2^{nm}$ 我们每一次枚举其中有$i$行$j$列 对于这种情况的容斥系数为$(-1)^{i+j}$ 方案数为$C_n^i*C_m^j*2^{(n-i)(m-j)}$ 表示$n$行选$i$行,$m$列选$j 阅读全文
posted @ 2018-11-03 20:40 水题收割者 阅读(365) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 每次拿a中最大的去匹配b中最小的 至于原因画个图感性思考一下就可以啦 代码 阅读全文
posted @ 2018-11-03 20:28 水题收割者 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 经典的树型DP 我们记录dp[i][0/1]表示i的子树中到i的长度分别为偶数和奇数的长度和 dp2[i][0/1]则表示不在i的子树中的点到i的长度分别为偶数和奇数的长度和 然后根据边的长度情况转移一下就可以了 代码 阅读全文
posted @ 2018-11-03 20:20 水题收割者 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 在经过若干次操作之后一定会产生一堆环 而我们又发现从一个点到另一个点实际可以经过所有环 于是问题就转换成了$k_1s_1 + k_2s_2 + ... + len = t$ 其中$s_i$为每个环的长度,$len$为两点间距离 于是每次gcd求一下就行了 注意两点间距离不用求LCA,用 阅读全文
posted @ 2018-11-03 20:14 水题收割者 阅读(135) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 先用AC自动机将所有字符串存起来,之后我们从根节点跑一遍dfs 判断时我们只需要判断这个环有没有任意一个字符串的结尾就可以判断是否安全了 注意一个节点的信息需要累加上它fail指针所指位置的信息 代码 阅读全文
posted @ 2018-11-03 19:52 水题收割者 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 01trie树好题! 我们先考虑将序列变为前缀和形式,在从1到n遍历每一个i 对于每一个i,我们把pre[i]插入trie中,在求出pre[i]与之前数的最大异或值 于是我们就可以得到dp[i]表示前i个数中是最大异或值 转移为dp[i]=Max{dp[i-1],q(pre[i])} 阅读全文
posted @ 2018-11-02 18:35 水题收割者 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们可以对一个数列求前缀和,如果pre[l]=pre[r]则我们可以知道区间[l,r]一定不合法 于是我们就要让不合法的区间尽量少 我们知道对于一个数$x$,他只受x和$(2^k-1)$^$k$有关 而根据小学奥数所学,当这两个数字的数量最接近是答案最优 详见代码 代码 阅读全文
posted @ 2018-11-02 11:18 水题收割者 阅读(94) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先一个很重要的性质是每个数至少出现一次 所以只有一个数会出现两次 我们只需要求出n+1个数选k个数的方案数再减去重复的部分即可 重复部分于两个相同数中间的距离有关,详见代码 代码 阅读全文
posted @ 2018-11-02 10:43 水题收割者 阅读(164) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 记录区间最大值,线段树上二分找比这个点大的最靠前位置即可 代码 阅读全文
posted @ 2018-11-01 15:50 水题收割者 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 居然卡哈希数,万恶的出题人...... 感觉我这个方法似乎比较呆,我的代码成功成为了全网最慢的代码qwq 应该是可以直接哈希的 但由于我哈希学的不好又想练练线段树维护哈希,于是就写了个线段树维护了一下哈希值 详见代码 代码 阅读全文
posted @ 2018-11-01 15:20 水题收割者 阅读(201) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一道有意思的小题... 我们发现如果$(1,1)$为白色,则将其变为白色需要偶数次操作,而如果为黑色则需要奇数次操作 我们知道要让A赢需要奇数次操作,所以我们只需要判断$(1,1)$的颜色即可qwq 代码 阅读全文
posted @ 2018-11-01 10:30 水题收割者 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 首先我们不难想到我们一定可以将每一个点分开算,然后看这个点被几个矩形包含 于是对于位置为$(i,j)$的点它被包含的次数为$i * (n-i+1) * j * (m-j+1)$ 这个式子的意义为,对于在第$i$行的点,它上面可以选$0$~$(i-1)$行,它下面可以选$0$~$(n-i 阅读全文
posted @ 2018-11-01 07:54 水题收割者 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 我们首先想到的自然是根据大小关系建图,在这之后我们跑一遍拓扑排序 但是由于l和r的限制关系我们需要对传统的拓扑排序做一些改变 我们考虑将所有入度为0且现在的拓扑序号已经大于等于l的点放入一个优先队列,这个优先队列以r为关键字从小到大排序,这样我们就可以保证r小的点被排在前面 但是我们发 阅读全文
posted @ 2018-11-01 07:45 水题收割者 阅读(230) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 orz zwj 最好想到的方法是我们枚举每一位是0还是1,然后暴力求出经过n个操作之后的结果来决定这一位是0还是1 然后我们发现这种暴力的做法居然能a 但是还有更好的方法 我们只考虑开始的数每位都是0和每位都是1这两种情况 然后算出n次操作之后变成了什么 如果由0变1则我们这一位肯定是 阅读全文
posted @ 2018-10-31 11:17 水题收割者 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 AC自动机板子题qwq 不过似乎可以哈希(因为所有模式串的长度相同,所以哈希乱搞就可以) 代码 阅读全文
posted @ 2018-10-30 22:55 水题收割者 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 传送门 分析 一个比较神奇的思路 我们考虑分治,对于每一个区间[le,ri]我们计算这个区间中左端点属于[le,mid],右端点属于[mid+1,ri]的情况对答案的贡献 我们求左半个区间的最大最小值的后缀信息以及右半个区间的最大最小值的前缀信息 于是我们发现在左半面最大值越来越小、最小值越来越大, 阅读全文
posted @ 2018-10-30 22:51 水题收割者 阅读(142) 评论(0) 推荐(0) 编辑
上一页 1 ··· 8 9 10 11 12 13 14 15 16 ··· 20 下一页