04 2018 档案

摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 边数一定要谨慎算。。 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define all(x) x.begin( 阅读全文
posted @ 2018-04-28 17:27 AWCXV 阅读(140) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 先建立一棵字典树。 显然,某一些节点上会被打上标记。 问题就转化成求所有标记的深度的和的最小值了。 (标记可以上移,但是不能在同一位置 则我们用树形动规的方法。 从底往上递归处理。 考虑以x为根的一棵子树。 如果这个节点被打上了 阅读全文
posted @ 2018-04-28 11:02 AWCXV 阅读(130) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设长度为L的所有区间里面,石头的个数的最小值为k 设取到k的区间为l,r 那么k就为最多能通过的青蛙个数。 假设k再大一点。比如为k+1 那么所有的k+1只青蛙, 肯定会在某个时刻都落在l,r这个长度为L的区间 (无法直接跳过这 阅读全文
posted @ 2018-04-26 23:57 AWCXV 阅读(198) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 统计每个人需要的sheet个数。 乘上k 然后除p就是需要的pack个数了 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b 阅读全文
posted @ 2018-04-26 04:17 AWCXV 阅读(137) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 暴力枚举船的左上角。 然后统计每个点被覆盖次数就好。 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define 阅读全文
posted @ 2018-04-26 04:15 AWCXV 阅读(246) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 枚举那个人收到了几次糖i. 最好的情况显然是其他人都只收到i 1次糖。 然后这个人刚好多收了一次糖 也即 (i 1) k x + x M了 那么令x = M; 但这个时候。 要判断一下改变之后的x,按照顺序分的时候是否还能满足这 阅读全文
posted @ 2018-04-26 04:13 AWCXV 阅读(311) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 区间DP 设f[i][j]表示i..j这个区间变成目标需要的最少染色次数。 f[i][i] = 1 然后考虑f[i][j]的产生方法 1.在i..j中间枚举一个k.然后i..k和k..j分开涂 2.i和j是同时涂的. 对于i和j 阅读全文
posted @ 2018-04-24 11:08 AWCXV 阅读(149) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 f[i][j][k]表示第i行前j列刷了k次,最大满意度 f[][j][k]=max{f[i][l][k],f[i][l][k 1]+max{zero(l+1,j),one(l+1,j)} } g[i][j]表示前i行刷了j次的 阅读全文
posted @ 2018-04-23 20:17 AWCXV 阅读(152) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 把序列生成的过程看成一颗树 会发现最后形成的是一颗二叉树。 每个二叉树上的节点就对应了序列中的一个数字。 如果我们把每个节点都往下投影的话。 (而且整棵树都是左右对称的。那么每个子树的根节点就是(l+r)/2了 就像是整个序列了 阅读全文
posted @ 2018-04-23 08:35 AWCXV 阅读(153) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 【注意】 push_down只要加在Rank函数的开头就好。 因为每次从根到root. 一路上都会把标记给Push_down了 那么rotate里面就不需要push_down了。 【代码】 cpp include define 阅读全文
posted @ 2018-04-21 22:37 AWCXV 阅读(144) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 要求把连续的一段li..ri的边全都删掉。 然后求剩下的图的联通数 如果暴力的话 复杂度显然是O(k m)级别的。 考虑我们把li..ri全都删掉。 接下来要做两件事。 第一是把1..li 1这些边连起来。 并查集1 然后是把r 阅读全文
posted @ 2018-04-18 08:54 AWCXV 阅读(143) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 把B提取出来就是一个等比数列了。 求和一下会发现是这种形式。 B(An1)A1+Anx 则求一下乘法逆元 写个快速幂就好 A 1的逆元就是(A1)MOD2 要注意A=1的情况。 然 阅读全文
posted @ 2018-04-17 09:23 AWCXV 阅读(137) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 肯定是这样 先放k 1个,然后空1个,然后再放k 1个。然后再空1个。。 以此类推。 然后如果(n/k) (k 1)+n%k =m的话 那么答案显然就是m,因为不会出现乘2的情况。 否则。 那么只能让某些位置乘2了。 那么什么地 阅读全文
posted @ 2018-04-15 20:53 AWCXV 阅读(147) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果写过n皇后问题。 肯定都知道 某个点(i,j)和它在同一条对角线上的点分别是i+j的值和i j的值相同的点。 然后会发现选择的两个点其实就对应了两组i+j和i j 且每组i+j和i j i+j的奇偶性和i j的奇偶性要是一样 阅读全文
posted @ 2018-04-14 21:22 AWCXV 阅读(121) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果是一个k string的话。 考虑最后的串假设形式为sss..ss(k个s) 则s中出现的字母,整个串中最后出现的次数肯定为k的倍数。 如果某个字母出现的次数不为k的倍数。 那么直接输出 1 否则。 我们把每个字母出现的次数 阅读全文
posted @ 2018-04-14 21:11 AWCXV 阅读(110) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每一段相当于pre[y] pre[x 1]=z 则。 pre[x 1]+z = pre[y] 所以可以用带权并查集来表示这个关系。 即relation[x] = z; 然后就是一道普通的带权并查集题目啦 在做路径压缩的转移的时候 阅读全文
posted @ 2018-04-10 10:47 AWCXV 阅读(121) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用set搞。 (因为规定了不会有相同特点值的东西。 所以可以不用multiset. 那么每次用lower_bound找离它最近的配对就好了 【代码】 cpp include define ll long long using n 阅读全文
posted @ 2018-04-09 09:18 AWCXV 阅读(98) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如上图。 显然如果三个正方形。只可能是上面的情况。 则可以处理一下左上角、右上角、左下角、右下角的前缀最大正方形(dp),以及以某一列为底部,某一行为底部的最大正方形和。 然后枚举一下两条分界线就能做出来啦。 细节题。 【代码】 阅读全文
posted @ 2018-04-09 07:25 AWCXV 阅读(144) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 如果点的个数 【代码】 cpp include define LL long long define rep1(i,a,b) for (int i = a;i = b;i ) define all(x) x.begin(),x. 阅读全文
posted @ 2018-04-08 07:18 AWCXV 阅读(148) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 原问题可以等价为两个点。 然后其中一个点要移动到另外一个点。 那么我们可以把左下角那个点(对称总是可以得到一个点在左下角)放在原点的位置。 然后通过x坐标差和y坐标差。 获取出来,另外一个点的相对位置。 然后问题就转化成 从原点 阅读全文
posted @ 2018-04-04 21:23 AWCXV 阅读(140) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分+网络流 先处理出所有的人到所有的门的最短路dis(x,y) 二分所用的时间mid 则把所有的门都分成mid个。 表示1..mid这些时间这个门可以通过一个人。 然后建立一个超级源点S S和所有的人各连一条边,边权为1 然后 阅读全文
posted @ 2018-04-04 11:00 AWCXV 阅读(193) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 选择的连接肯定是相邻的点对。 那么我们处理出来长度为n 1的数组a 其中a[i 1] = dis[i] dis[i 1] 那么问题就转化成在a数组中取出不相邻的k个数字。 这k个数字的和要求最小。 那么我们把每个数字都加入到堆中 阅读全文
posted @ 2018-04-02 19:43 AWCXV 阅读(156) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示