11 2020 档案
摘要:给出一个有向图和起点、终点,每条路径只能走一次,询问从起点到终点能重复的走几次。 做法就是从起点到终点来回跑两遍最短路,建一个最短路网络流图。 无需考虑重边和自环,这些不影响Dinic算法的执行。 #include<bits/stdc++.h> using namespace std; const
阅读全文
摘要:题意: 给出一个有向图,询问最多删掉几个点,使得起点到终点的最短路大于k,起点和终点不能删。 题解: 先用Floyd处理出两两之间的最短路,然后对于每条边,如果d[1][x]+d[x][y]+d[y][n]<=k,则说明这条边是关键边。 然后拆点,对拆点后的图建立由关键边组成的网络,跑最大流即可。
阅读全文
摘要:您的流浪蜥蜴排进入您正在探索的迷宫中的一个陌生房间。当您到处寻找隐藏的宝藏时,其中一个菜鸟踩在一块看起来纯真的石头上,房间的地板突然消失了!排中的每只蜥蜴都站在看似脆弱的柱子上,下面开始有熊熊大火...不要留下任何蜥蜴!尽可能多地把蜥蜴带出房间,并报告伤亡人数。房间中的支柱排列成网格,每个支柱与支柱
阅读全文
摘要:如今,几乎每个人都喜欢烤肉串(这里的烤肉串是指在一根细长的棍子上烤的肉块)。但是,您在享用美味的食物时,是否考虑过烤肉烤的困难?好吧,这是一个机会,可以帮助您帮助可怜的焙烧炉确保他是否可以处理以下订单而不会令客户不满意。 现在有N个客户到来。客户i将在时间si到达(这意味着焙烧炉无法在时间si之前为
阅读全文
摘要:2012如果这是世界末日怎么办?我不知道怎么做。但现在科学家们发现,有些恒星可以生存,但有些人却不适合生活在一些星球上。现在科学家们需要你的帮助,就是确定所有的人都能在这些星球上生活。 输入 多组测试数据,每个数据的开头是n(1<=n<=10万),m(1<=m<=10)n表示地球上有n个人,m代表m
阅读全文
摘要:某工厂有 M 台机器要完成 N 个任务。 第i个任务的开始时间不早于Si, 需要干Pi天, a并要在不晚于Ei时完成. 一台机器一天只能干一个任务,一个认为在同一天只能用一台机器. 任务完成不需要连续,只要有足够的天数即可。能不能搞完这些工作 简单的最大流 #include<bits/stdc++.
阅读全文
摘要:给n个数,q次询问,每次询问给出一个区间[l,r],要你求出最大的h,使得在[l,r]这个区间内满足,有h个数的值大于等于h。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+100; const int M=maxn*
阅读全文
摘要:problem: 给你n个数字,和m个查询. 将[l,r]之间数第一次出现的位置信息弄成一个新的数组,然后找出其中k/2大的数.(k为位置的数量) #include<bits/stdc++.h> using namespace std; const int maxn=2e5+100; const i
阅读全文
摘要:给你一棵树,每次询问节点子树的中值。 在DFS序上建线段树,用fmod给double取模。 #include<bits/stdc++.h> using namespace std; const int maxn=1e5+100; const int M=maxn*40; const int mod=
阅读全文
摘要:当魔术球比赛出现时,基米立即掉入其中。有趣的游戏由N个球组成,每个球的权重均为w [i]。这N个球以第一个球为根形成一棵有根的树。游戏中的任何球都有0或2个子球。如果一个节点有2个子球,我们可以定义一个为左子球,另一个为右子球。规则很简单:当Kimi决定放下重量为X的魔术球时,该球将从树根向下穿过树
阅读全文
摘要:马里奥是一个举世闻名的管道工,他的跳跃能力让我们钦佩。在一条长度为n的道路上,在每个整数点i的位置都有一个高度为hi的障碍物。现在的问题是:假设马里奥可以跳跃的最高高度为H,在道路的[L,R] 区间内他可以跳跃过的障碍物有多少个(不要考虑他被挡住)? #include<bits/stdc++.h>
阅读全文
摘要:给您一个整数数组a1,a2,…,an。该数组不增加。 让我们考虑一条有n个商店的生产线。商店用从1到n的整数从左到右编号。在第i家商店中,一顿饭的费用等于ai。 您应该处理两种类型的q查询: 1 x y:对于每个车间1≤i≤x,设置ai = max(ai,y)。2 x y:让我们考虑一个拥有y钱的饥
阅读全文
摘要:#include<bits/stdc++.h> using namespace std; const int maxn=5005; double S; int n; double v[maxn]; double w[maxn]; const unsigned int inf=~0U; typedef
阅读全文
摘要:题意: 给定一个长度为n的序列,给定m个查询,每次查询区间[L,R]范围内不同元素的和。 解决这个问题你可以使用树状数组或者莫队或者主席树 题解: #include<bits/stdc++.h> using namespace std; const int maxn=3e4+100; const i
阅读全文
摘要:题意: 有的疯狂的二次元爱好者,家里会有很多手办,这不就有一个,他家里有3e5个手办,他的手办按作品出现的先后次序给编了号,同一作品的手办使用了相同数字,然后他取出n个随便放成一排,现在他就来考你了,让你求出从编号l到编号r之间,哪个作品的手办出现次数,超过 (r-l+1)/k次,当然可能有不止一部
阅读全文
摘要://cf707d /* 题意:维护一个图,支持四种操作 1.第i行第j列变为1 2.第i行第j列变为0 3.第i行颠倒,1变0,0变1 4.将整张图变为第k次操作时的状态,如果k是0的话,则清空图 */ #include<bits/stdc++.h> using namespace std; con
阅读全文
摘要:题意 给出一个序列,请你依次输出在序列上建立k(1~n-1)元小根堆,会出现的不合法的元素数量。不合法的意思是这个元素大于它的父节点,不符合小根堆的性质。 题解 暴力枚举K,同时用可持久化线段树维护区间内大于指定数的元素数量,因为这个过程是一个调和级数,所以时间复杂度是合理的。 #include<b
阅读全文
摘要:题意: 给定一个长度为n的序列a[i]。给定m次询问。 每次查询为l,r,w,表示在区间l,r中,问对于连续的长为w的一段中最小的数字的最大值是多少。 题解: 先把所有元素按高度从大到小排序,以高度为时间轴,元素编号为下标建立可持久化线段树。 那么,第i棵线段树只会保存高度大于等于i的元素下标情况。
阅读全文
摘要:题意 给出两个区间[a, b]和[c, d],x必须属于第一个区间,y必须属于第二个区间,x和y互质才算进答案,询问x y总对数。 题解 板子 #include<bits/stdc++.h> using namespace std; const int maxn=1e7+100; typedef l
阅读全文
摘要:题意 给出一个n*m的矩阵,每个点有不同的花费,初始兔子在B点,你可以通过移除一些点,使得兔子无法到达边界,注意兔子只能上下左右移动。 题解 网络流,注意这种去掉点的套路,一定是拆点。 #include<bits/stdc++.h> using namespace std; typedef long
阅读全文
摘要:CCPC绵阳 第一次CCPC,也是我们三个人第一次参加全国级的赛事。赛前一周我就开始紧张了,害怕打不好。 比赛的时间是11月1号上午9点到下午2点,赛前临时缺个女志愿者,遂拉了组里的学妹zxy来当女志愿者,结果当着学妹打了个铁,害。 当天早上我六点半就起床了,简单的早餐过后到机房调试电脑和打印机,以
阅读全文