
比赛题解
SigmaQuadrant
这个作者很懒,什么都没留下…
展开
-
2019ICPC南昌题解
B-A Funny Bipartite Graph题意:给出每一边的点数都不超过n≤18n\leq18n≤18的二分图,对左边的点标号iii从111到nnn,对右边的点标号jjj从111到nnn,数据保证不会出现iii到jjj的连边(i>j)(i>j)(i>j),保证左边的每个点的度数都在111到333之间。并且给出一个矩阵AAA,在这个矩阵中,如果Ai,j=1A_{i,j}=...原创 2019-12-10 22:10:01 · 1509 阅读 · 0 评论 -
[2019CCPC哈尔滨] L LRU Algorithm 模拟
给一个n≤5e3n\leq5e3n≤5e3的序列,这个序列从左往右表示每次都往里面插入一个元素,如果这个元素不在里面,那么会插入在头部,否则就删除掉在原来的位置并且重新插入到头部。然后如果插入的元素超过容量,那么就会将尾部的弹出。并且给出q≤2e3q\leq2e3q≤2e3次询问。对于每次询问,给定一个容量,然后和一个序列,现在要判断这个序列是否在整个插入的过程中出现过,忽略后缀000。显然对...原创 2019-11-15 11:41:06 · 429 阅读 · 0 评论 -
[2019CCPC哈尔滨] B Binary Numbers dp
题意比较复杂。给出m≤17m\leq17m≤17 表示我现在有[0,2m−1][0,2^{m}-1][0,2m−1]这样的一个区间,然后现在有0≤N≤2m0\leq N \leq 2^{m}0≤N≤2m表示我将会把这个区间分为NNN段区间,这NNN段是覆盖所有的区间并且严格不相交的。然后在每个区间里面都选一个数Ai∈[Li,Ri]A_{i}\in[L_{i},R_{i}]Ai∈[Li,Ri...原创 2019-11-15 11:24:41 · 422 阅读 · 0 评论 -
[2019CCPC哈尔滨] A Artful Paintings 二分+差分约束
有N≤3e3N\leq3e3N≤3e3个格子,你可以任意给每个格子染色,但是要满足M≤3e3M\leq3e3M≤3e3限制条件,限制条件有两种类型:1.1.1. 区间[l,r][l,r][l,r]中被染色的格子数量不少于KKK。2.2.2. 区间[l,r][l,r][l,r]外被染色的格子数量不少于KKK。在满足所有限制条件下求染色格子数量的最小值。显然染色格子数量越多,越容易满足。因此二...原创 2019-11-15 11:06:02 · 833 阅读 · 0 评论 -
[2019CCPC哈尔滨] E Exchanging Gifts 拓扑排序
给出n≤1e6n\leq1e6n≤1e6个数字串,数字串的总和不会超过1e61e61e6,但是会有一个将两个数字串连接的操作,总数字串的长度会比较大,最大会有1e181e181e18。然后求问你可以通过若干次交换,使得最多的数字自己的位置上和原来的数字不同,求这个最大值。可以发现不同的数字不会超过1e61e61e6个,所以可以考虑基于值然后统计每个值的次数。对于每个被生成的串,由它向合成它的两个...原创 2019-11-14 10:31:10 · 551 阅读 · 0 评论 -
[2019CCPC哈尔滨] I Interesting Permutation 组合数学
对于一个序列,定义fif_{i}fi表示它的前缀最大值,gig_{i}gi表示它的前缀最小值,hi=fi−gih_{i}=f_{i}-g_{i}hi=fi−gi。现在给出一个hhh数组,求问合法的原序列的个数。注意到hih_{i}hi是单调不降的,并且h1=0h_{1}=0h1=0且hn≤n−1h_{n}\leq n-1hn≤n−1。首先先判断对于hih_{i}hi都是合法的,...原创 2019-11-13 21:22:16 · 628 阅读 · 0 评论 -
BZOJ4883 棋盘上的守卫 最小基环树
给一个N×M≤1e5N×M\leq1e5N×M≤1e5的棋盘,然后每个棋盘都可以放一个守卫,你可以选择是让它保护横向的也可以让他保护纵向的。然后一个位置最多只能放一个守卫,放置在(i,j)(i,j)(i,j)这个位置的代价是wi,jw_{i,j}wi,j。然后求使得所有的位置都被守护的最小代价。完全不太会做的题。一种费用流/最大权匹配的做法是左边放N+MN+MN+M个点分别表示行/列,右边是...原创 2019-11-12 14:36:28 · 188 阅读 · 0 评论 -
BZOJ2654 tree 二分+最小生成树
给出N≤5e4,M≤1e5N\leq5e4,M\leq1e5N≤5e4,M≤1e5的无向连通图,一些边是白色,一些边是黑色的。然后求问满足恰好的KKK条边是白色的最小生成树的值是多少。是有一个比较新奇的思路,有博主把这个称为凸优化,具体做法是先...原创 2019-11-12 13:33:53 · 180 阅读 · 0 评论 -
BZOJ3714 Kuglarz 最小生成树
给出n≤2e3n\leq2e3n≤2e3个小球,并且你可以花费cl,rc_{l,r}cl,r查询[l,r][l,r][l,r]这一段小球的奇偶性,现在求问你要确定每个位置是否有小球的最小花费是多少。确定每个位置是否有小球等价于确定所有的前缀的奇偶性。对于前缀iii和前缀i+1i+1i+1:1.1.1.奇偶相同,iii不存在小球。2.2.2.奇偶不同,iii存在小球。对于区间[l,r][...原创 2019-11-12 11:11:09 · 147 阅读 · 0 评论 -
洛谷P2245 星际导航 最小生成树+lca
给出一个N≤1e5,M≤3e5N\leq1e5,M\leq3e5N≤1e5,M≤3e5的无向图,无向图的图上有边权。然后给出q≤1e5q\leq1e5q≤1e5次询问,每次询问给出两个点u,vu,vu,v,求u,vu,vu,v路径上最大边的最小值。应该是一个挺常规的问题:容易想到这样的路径是最小生成树上的路径。先求出最小生成树,然后可以预处理出lcalcalca,在倍增的过程中可以维护每个结点...原创 2019-11-12 10:49:59 · 199 阅读 · 0 评论 -
洛谷P3225 [HNOI2012]矿场搭建 割点
给出n≤1e3n\leq1e3n≤1e3个点的无向图,你可以在每个点选择放置避难所。然后求问所有的方案满足:1.对于任何一点被破坏,剩下的点能都走到避难所。2.放置避难所的数目最少。...原创 2019-11-11 20:35:30 · 161 阅读 · 0 评论 -
洛谷P3119 草鉴定Grass Cownoisseur 强连通分量+最长路
给出一个有向图,然后从111号点出发,有一次可以逆行的机会,求最终走回到111号点一共走过的点数是多少。显然可以先把环上的点走完,所以先对原图缩点,每个点的点权为强连通分量的大小。然后考虑把图分为两层,对上一层的点连反边到下一层。然后求最长路。d...原创 2019-11-11 18:41:51 · 196 阅读 · 0 评论 -
洛谷P2764 校园网Network of Schools 强连通分量
给出n≤100n\leq100n≤100个点,每个点都有若干个出边表示可以传递到下一个点。然后有两个问题,分别是求最少的点使得信息全部被传递以及需要在列表里面增加多少信息才能使得任何一点开始使得信息能够全部被传递。先缩点变成一个DAGDAGDAG。对于问题111,答案显然是入度为000点的个数。对于问题222,答案为入度为000的个数和出度为000的个数的较大值。因为只需要对入度为000和出...原创 2019-11-11 16:55:59 · 127 阅读 · 0 评论 -
洛谷P3469 BLO-Blockade 割点
给出一个无向图,然后求问对于每个点iii,如果去掉这个点iii,那么有多少个有序对(x,y)(x,y)(x,y)将无法到达。显然分两类情形:1.iii不是割点,那么去除iii对连通性没有影响,所以答案即为2(n−1)2(n-1)2(n−1)2.iii是割点,那么去除iii会把图分成若干块,除了2(n−1)2(n-1)2(n−1)以外,还要加上所有的不同块中的点对。这个只要在求割点的时候统计...原创 2019-11-11 15:10:18 · 224 阅读 · 0 评论 -
洛谷P1345 奶牛的电信Telecowmunication 最小割
给出n≤1500n\leq1500n≤1500个点,然后有两个点c1,c2c_{1},c_{2}c1,c2会通过某些通路相连,然后你可以去除掉某些点,如果某个点被去掉。那么和这个点相连接的边也会被去除。然后求问去掉最少的点,使得两个点不连通。拆点,中间连接一条容量为111的边,然后点与点的连接从下面的点连接到上面的点。求最小割。对于那些认为不能拆开的点,一般连infinfinf的流量。#...原创 2019-11-11 14:23:21 · 121 阅读 · 0 评论 -
洛谷P2055 假期的宿舍 二分图匹配
给出n≤50n\leq50n≤50个人,然后一部分是在校学生,其中一部分要回家,另一部分留校。然后另外一部分是外来学生。然后每个人可以睡到和自己认识的人的床位上。然后求问是否存在一种方案可以满足所有的人都有睡觉的床位。对于所有的留校学生和外来学生都建边连到自己可以睡的床位。然后做二分图最大匹配,如果可以完全匹配,那么满足条件。#include<bits/stdc++.h>usi...原创 2019-11-11 13:18:25 · 162 阅读 · 0 评论 -
洛谷P1726 上白泽慧音 强连通分量
给出n≤5e3n\leq5e3n≤5e3并且m≤5e4m\leq5e4m≤5e4的有向图,求最大强连通分量,对于大小相同的输出字典序最小的。裸的tarjan缩点,复习一下tarjan求强连通分量:直接对有向图某处开始dfs,...原创 2019-11-11 12:53:05 · 136 阅读 · 0 评论 -
洛谷P1993 小K的农场 差分约束
对于nnn个物品,给出mmm个限制关系,分别是:1.aaa比bbb至少多种ccc单位的作物。2.aaa比bbb至多多种ccc单位的作物。3.aaa和bbb的作物数相等。求问是否满足这样的一种情形,符合所有的限制关系。不妨记f(∗)f(*)f(∗)表示∗*∗的作物数,显然各条件等价于:1.f(a)−f(b)≥cf(a)-f(b)\geq cf(a)−f(b)≥c2.f(b)−f(a)≥...原创 2019-11-07 12:31:46 · 125 阅读 · 0 评论 -
[2016CCPC-final] H Engineer Assignment 状压dp
给出n,m≤10n,m\leq10n,m≤10分别代表有nnn个工程以及mmm个工程师,然后给出每个工程所需要能力以及每个工程师所具备的能力,求问如果分配工程师使得能够完成的工程最多。因为数据范围很小,可以直接预处理对于每个工程iii,所有2m2^m2m种状态的工程师是否可以完成。那么fi,Sf_{i,S}fi,S表示到前iii个工程,当前工程师的状态是SSS能够完成的最多的工程数。然后暴力...原创 2019-10-21 10:55:58 · 268 阅读 · 0 评论 -
[2016CCPC-final] B Wash 贪心
给出l≤1e6l\leq1e6l≤1e6件衣服,然后给出n≤1e5n\leq1e5n≤1e5台洗衣机以及m≤1e5m\leq1e5m≤1e5台烘干机,每台洗衣机有一个洗衣服的时间wiw_iwi,每台烘干机有一个烘干的时间did_idi,然后求问最少的把所有的衣服烘干的时间。首先,应该让每一件衣服尽早洗完。优先队列维护下每台洗衣机结束的时间,直接模拟。然后贪心把洗完时间最晚的衣服优先用更快的烘...原创 2019-10-21 10:46:14 · 330 阅读 · 0 评论 -
[2017ICPC-EC上海] B Scapegoat 贪心
给出n≤2e5n\leq2e5n≤2e5个数,并且给出m≥nm\geq nm≥n,你要将这nnn个数均分为mmm组,然后使得这些数的值的方差最小,求问最小的方差是多少。分成了mmm组,其实最终的平均值是不变的,即∑i=1nai/m\sum_{i=1}^{n}a_i/m∑i=1nai/m,而且每个数至少要分到一组里面。接下来就是每次贪心把一个数多划分一组,选择那个多划分一组之后对答案的贡献下降...原创 2019-10-13 20:53:30 · 295 阅读 · 0 评论 -
2019杭州师范大学校赛
有幸能够参加有这么多优秀队伍的比赛,确实也通过这个看出了自身很多的不足,无论是浙江高校还是浙江的高中生,他们的训练水平还是远远在我们之上的。唯有好好努力,才能创造机会。I-Little Sub and Triangles题意很简单,就是给出了一堆平面上的格点,每次询问会给一个范围,问落在这个范围里面的由这些格点组成的三角形的数量是多少。首先先想到求出所有的三角形,然后再排序。排序之后的每次查...原创 2019-03-20 14:19:29 · 507 阅读 · 0 评论 -
Codeforces Div3 #547
C-Polycarp Restores Permutation简单题。给出了一个数组的差分然后询问是否可能是个全排列的差分,如果可能的话就构造一个全排列出来。我们只要任意设定首项就能得到一个新的数组,我们使得这个新的数组里面最小的那个数字变成1,然后调整这个数组。最后再判断一下是不是全排列就好了。注意这个数字可能很大。所以判定的时候最好用set或者写个条件。cf里面的第一发fst送给了这道题。...原创 2019-03-25 19:56:31 · 189 阅读 · 0 评论 -
西北大学2019春季校赛
这场比赛出的题也是感觉很不错的,限于时间和能力,先补上前面所有的中等题。确实还有很长很长的路要走的。A-辛苦的自愿者首先对所有的信息按照时间和编号排序,然后二分小姐姐的数量,每次检查的时候用一个队列来模拟小姐姐就可以了。题解一开始给出的是优先队列,但是这道题其实是不需要的,因为每个小姐姐发气球的时间都是相同的,所以队列里面是自然有序的。#pragma GCC optimize(3,"Ofas...原创 2019-03-22 14:43:56 · 325 阅读 · 2 评论 -
Codeforces Div2 #548
C-Edgy Trees给定一个有红边和黑边的树,求经过至少一条黑边的点序列的总数。直接考虑它的反面就是就是一条黑边也没有走过的点序列的总数,统计树上所有被黑边断开的连通块。答案显然就是nk−∑szkn^{k}-∑sz^{k}nk−∑szk 。#pragma GCC optimize(3,"Ofast","inline")#include<bits/stdc++.h>#defi...原创 2019-03-29 18:40:03 · 241 阅读 · 0 评论 -
Codeforces Div3 #550
D-Equalize Them All支持的两种操作相当于可以把任意一个数修改为相邻的那个数,所以只要找到第一个众数出现的位置,然后把其余两边的全部修改为这个数就可以了。#pragma GCC optimize(3,"Ofast","inline")#include<bits/stdc++.h>#define pb push_back#define F first#defi...原创 2019-04-01 12:32:54 · 178 阅读 · 0 评论 -
Codeforces Div2 #250
B-The Child and Set这道题有一个非常暴力的做法就是直接求出所有的数的lowbit,也就是x&(-x),然后直接排个序,从大到小往下减就可以了。但是这个贪心并不是可推广的。在这里特殊的是,通过转化最终对于确定的k,2^k次方最终都只会有一个。考虑把最后的数字x写成二进制的形式,每个数都是一个只有一位是1的串。这样考虑每次都减高位的贪心就没有问题了。#pragma GCC...原创 2019-04-08 09:14:59 · 225 阅读 · 0 评论 -
Codeforces Div2 #549
B-Nirvana给定一个数n,让你求出1-n当中所有的数里面那个每个数位乘积都最大的那个值。题解给出的做法是贪心:既然是数位乘积最大,就要有尽量多的9,贪心没一位向后面借位,然后后面的数字全部变成9。特判两种情况,就是没有借位或者是第一位是1。然后这里还有一种dp的做法,dp[i][0|1]表示我当前这一位有没有向前面借位。转移就是dp[i][0]=max(dp[i-1][0]v[i],dp[...原创 2019-04-02 13:47:38 · 250 阅读 · 0 评论 -
2019上海高校程序设计竞赛
这次比赛给人的体验怎么说呢,因为是个人赛,所以感觉大多数时候都比较沉闷,然后因为自身水平的严重不足以及榜单的问题,一些其实并不是很难的题也没有做出来,时间基本上全部交给G和E两道题了。后面的几道题也比较难,还涉及了一些没学上的知识点。C-CSL 的密码要求有多少个长度不小于m的本质不同的字符串。据说现场不少人是用SA或者SAM过的。然后这道题其实是因为每个字符串都是随机生成的,当长度比较长的时...原创 2019-04-02 14:49:54 · 569 阅读 · 0 评论 -
牛客练习赛43
B-Tachibana Kanade Loves Probability要求的其实就是m/n这个小数的第k1位到第k2位,这里m一定是小于等于n的,每一位其实都是m*10/n,然后对n取余继续去算。题目里面已经暗示了k1和k2是不会超过1e5的。所以直接快速幂求出来m∗10k1−1m*10^{k_{1}-1}m∗10k1−1 %n,然后不断循环去算就好了。#pragma GCC optimi...原创 2019-04-08 13:11:53 · 164 阅读 · 0 评论 -
Codeforces Div2 #387
D-Winter Is Coming题意是说有个地方的冬天会持续n天,但是某些天温度会大于等于0,另外某些天温度会小于0,然后你有两个轮胎,一种是夏天专用的只能在温度非负的时候用,另外一种是冬用的在任意温度都可以用。然后最多有k天是可以用冬胎的,问最少要换多少次轮胎度过这个冬天。首先因为小于0的时候只能用冬胎,所以先统计小于0的天数,如果比冬胎的能使用的总天数更多那就直接不可行。否则用冬胎数量...原创 2019-03-29 11:05:47 · 180 阅读 · 0 评论 -
Codeforces Div2 #321
D-Kefa and Dishes感觉最近几天遇到了好几次这个类型的题:其实本质上都是TSP问题吧,状压记录一下状态之后第二维维护最后一个被吃的食物。那么转移就很显然有dp[m][k]=max(dp[m][k],dp[i][j]+w[k]+mp[j][k])。最后找到所有1的个数为m状态就好了,用__builtin_popcount()这个函数比较方便。#pragma GCC optimize...原创 2019-04-12 17:01:45 · 103 阅读 · 0 评论 -
2019桂林电子科技大学校赛
星期天实在是太自闭了,各种状况各种错误,感觉自己的代码能力还是比较欠缺,而且队友的经验也相对比较不足,基本上一人卡题全队卡题。说到底还是自己的实力不够强,不能稳定把题给过掉。最近要补的题实在是太多了,感觉还有很多很多要学的东西。实话说为什么这一届的水平比下一届差这么多,还是没有很努力去做事情。鸡汤多喝也无益,多多提升自己的水平才是最重要的。A-串串求问字符串里面有多少个本质不同的子串,是后缀...原创 2019-04-15 22:38:02 · 578 阅读 · 0 评论 -
2019西工大春季选拔赛
C-Chino with Queue题意是说给出了一个矩阵,矩阵W[i][j]表示j排在i之前的愉悦度。问如何排列最后得到的愉悦值是最大的。注意到最后的结果只与这一位置是谁而和放的前后顺序无关。考虑dp[S][i]表示当前状态是S,末尾是i的最大值。初始条件有dp[1<<(i-1)][i]=W[i][i],转移就把k放在最后考虑去转移就好了。#pragma GCC optimize...原创 2019-04-09 15:47:42 · 144 阅读 · 0 评论 -
Codeforces Div2 #Pi
B-Berland National Library题意是会给你一些进来和出去的人的信息,然后问这个图书馆最小的能容纳的人数是多少。其实这里就是要求什么时候这个图书馆人最多,因为考虑到一开始有一些人在里面,先找到所有的人原来就在图书馆里面人,统计出来数量。然后接下来只要模拟一下就可以了。#pragma GCC optimize(3,"Ofast","inline")#include<b...原创 2019-04-12 17:21:03 · 90 阅读 · 0 评论 -
HDU 6709 Fishing Master 贪心
首先假设我能够在炖鱼的时候把所有的鱼抓完,那么最少只需要k+∑i=1nt[i]k+\sum_{i=1}^{n}t[i]k+∑i=1nt[i]的时间就可以完成。现在注意到可能在炖鱼的时候无法抓完所有的鱼,也就是∑i=1nt[i]k≤n−1\sum_{i=1}^{n}\frac{t[i]}{k}\leq n-1∑i=1nkt[i]≤n−1的情形,对于剩下来的一部分鱼,我可以在炖鱼的时候选择一段...原创 2019-08-24 09:21:52 · 240 阅读 · 0 评论 -
HDU 6703 array 权值线段树
先不考虑修改的情况,对所有的权值建一颗线段树,然后线段树上存储下标的信息,然后每个结点维护子树下标的最大值。然后对于每次查询,我直接查询区间[k,n+1][k,n+1][k,n+1]这段区间值大于r的最小的那个点。对于修改的情形,实际上每个节点被修改之后相当于删除,也就是说该节点是可选的,把该节点的下标置为无穷大就可以了。对于每次查询,先考虑查询左子树,如果左子树查询不到答案,再查询右子树,可...原创 2019-08-24 13:28:05 · 178 阅读 · 0 评论 -
HDU 6704 huntian oy 杜教筛
注意到a,ba,ba,b互质,而gcd(ia−ja,ib−jb)=igcd(a,b)−jgcd(a,b)=i−jgcd(i^a-j^a,i^b-j^b)=i^{gcd(a,b)}-j^{gcd(a,b)}=i-jgcd(ia−ja,ib−jb)=igcd(a,b)−jgcd(a,b)=i−j前面的一部分其实就是i−ji-ji−j,然后只要拆开就容易注意到∑i=1ni∑j=1i[gcd(i,j)=...原创 2019-08-25 10:14:37 · 183 阅读 · 0 评论 -
HDU 6705 path 乱搞/优先队列
kkk的最大范围为2e52e52e5,考虑离线然后O(1)O(1)O(1)回答询问。一开始将所有的有向边全部放入优先队列中,然后原创 2019-08-25 10:29:25 · 148 阅读 · 0 评论 -
CODEVS 2598 编辑距离问题 线性dp
题意:给出两个字符串A与B,然后有3种操作,分别是添加一个字符,删除一个字符和修改一个字符,求最少操作多少次可能让A转化为B。这个题其实不难,考虑dp[i][j]dp[i][j]dp[i][j]为A串的前iii位转化为B串的前jjj位的最小代价。...原创 2019-08-25 11:32:47 · 119 阅读 · 0 评论