题目链接 有趣的题. 给一个图, n个点m条边. 有k个点不可选择. 现在让你选出一个非空的点集, 使得点集中strength最小的点的strength最大. strength的定义:一个点周围的点中在集合里的点/一个点周围的点. 我们二分这个strength值. 每次二分, 我们遍历每个点, 然后将strength值小于mid的点加到队列里面,然后标记一下, 相当于将这个点去除掉. 然后遍历队列, 将队列里的点周围的点strength值小于mid的加进队列,标记, 不断重复. 最后看有没有点没…
题目链接 Nudist Beach 来源  Codeforces Round #309 (Div. 1) Problem D 题目大意: 给定一篇森林(共$n$个点),你可以在$n$个点中选择若干个构成一个集合$S$. 输入数据中会给定一些点,你不能选择这些点. 定义$S$中某城市的值: 令$A$= 该城市的在S中的邻居数量 $B$ = 该城市的所有邻居数量 那么$S$中该城市的值为$\frac{A}{B}$ 定义$S$的比值为$S$中所有城市的值的最小值 题目的要求是让你确定集合$S$,使得$…
Solution: 假设已经选了所有的点. 如果从中删掉一个点,那么其它所有点的分值只可能减少或者不变. 如果要使若干步删除后最小的分值变大,那么删掉的点集中肯定要包含当前分值最小的点. 所以每次删掉一个点都记录一次最大值.取最大的情况输出就好. #include <bits/stdc++.h> using namespace std; ; vector<int> E[N], out; set<pair<double, int>> s; int deg[N]…
[Codeforces 1199C]MP3(离散化+二分答案) 题面 给出一个长度为n的序列\(a_i\)和常数I,定义一次操作[l,r]可以把序列中<l的数全部变成l,>r的数全部变成r.每次操作的代价为改变数的个数.问:要让操作后序列里不同数的个数\(k\)满足$n \lceil \log _2 k\rceil \leq 8I $,操作的最小代价 分析 首先把a离散化,这样[l,r]都在\(10^5\)的级别.枚举l,发现r显然有单调性.操作后不同数的个数随r的增大而减小(考虑极端情况l=…
题意:给定迷宫,可以更改高度比,问如何使最短路等于输入数据. 思路:由于是单调的,可以用二分答案,然后BFS验证.这里用优先队列,每次压入也要进行检查(dis大小)防止数据过多,A*也可以.好久不写图论,WA成狗 #include <iostream> #include <string> #include <cstring> #include <cstdio> #include <algorithm> #include <memory>…
You have n devices that you want to use simultaneously. The i-th device uses ai units of power per second. This usage is continuous. That is, in λ seconds, the device will use λ·ai units of power. The i-th device currently has bi units of power store…
传送门 二分答案好题. 题意简述:要求支持动态在一个数列队尾加入一个新的数(保证数列单增),查询所有子数列的 最大值减平均值 的最大值. 然而网上一堆高人是用三分做的. 我们先考虑当前的答案有可能由什么构成. 加入最后一个数之前的最大值. 加入最后一个数之后,以最后一个数为最大值的值. 于是问题变成了去求min{(∑j=1iai)+ani+1}min\{\frac{(\sum_{j=1}^ia_i)+a_n}{i+1}\}min{i+1(∑j=1i​ai​)+an​​} 然后令bi=(∑j=1i…
Digital collectible card games have become very popular recently. So Vova decided to try one of these. Vova has n cards in his collection. Each of these cards is characterised by its power pi, magic number ci and level li. Vova wants to build a deck…
http://poj.org/problem?id=2110 题意:给你一个n*n矩形(n<=100),每个位置上都有一个数字代表此处山的高度,要从(1,1)走到 (n,n),要求一条路径使得这条路径上最高山和最矮山的高度差最小,输出这个最小高度差. 分析:这个n很小,所以容易想到bfs撸,但n也不小,直接bfs会撸爆,于是可以二分最后的高度差下界,然后bfs判定,这样大大减少了每次bfs的遍历结点个数,节省了大量时间和空间.…
树洞 CH Round #72 - NOIP夏季划水赛 描述 在一片栖息地上有N棵树,每棵树下住着一只兔子,有M条路径连接这些树.更特殊地是,只有一棵树有3条或更多的路径与它相连,其它的树只有1条或2条路径与其相连.换句话讲,这些树和树之间的路径构成一张N个点.M条边的无向连通图,而度数大于2的点至多有1个.近年以来,栖息地频繁收到人类的侵扰.兔子们联合起来召开了一场会议,决定在其中K棵树上建造树洞.当危险来临时,每只兔子均会同时前往距离它最近的树洞躲避,路程中花费的时间在数值上等于距离.为了在…