二分三分
文章平均质量分 63
天翼之城*
这个作者很懒,什么都没留下…
展开
-
2023CSPS 种树 —— 二分+前缀和
若i原创 2023-10-23 08:55:11 · 1937 阅读 · 0 评论 -
Codeforces 1632 E1. Distance Tree (easy version) —— 搜索,二分
This way题意:给你一棵树,每条边权为1,f(x)表示点x到1的路径上权重和。你可以增加一条边权为k的边,使得f(x)最大值最小。问你k在[1,n]时最大f(x)最小是多少。题解:数据范围是3000,所以这道题难度不高,一开始想错了…wa了一会。发现可以接受O(N2logN)O(N^2logN)O(N2logN)的时间复杂度,那么我们看到最大值最小的问题可以首先考虑二分。当然是二分答案,之后怎么检查?我们找到深度最深的点,它肯定是需要最直接地减小深度的,假设当前二分的答案是x,那么为了满原创 2022-02-04 21:22:21 · 371 阅读 · 0 评论 -
Codeforces 1552 F. Telepanting —— DP,二分(双语)
This way目录题意:题解:C++代码:Python代码:题意:一维直线上你要从0走到n,路上会有一些机关在xi的位置,在机关开启的时候会将你传送到yi(yi<xi)的位置。0表示机关关闭,1表示机关开启,当你路过机关后,机关的状态会发生改变。问你至少需要多少时间从0走到xn+1题解:那么首先需要知道的结论就是,当你能走到第i个机关的时候,前面i-1个机关一定都是全1的状态。(因为只有原来为0的时候你才能走过机关)那么第i个机关为1的时候,其实就相当于把l[i]到r[i]这些机关又全原创 2021-08-25 08:56:34 · 156 阅读 · 0 评论 -
Codeforces 1486 D. Max Median —— 求长度>=k的满足要求子串的通解
This way题意:给你一个长度为n的数组,问你长度大于等于k的子串中的中位数最大是多少题解:上次做到过一道求平均数最大的,但是我忘记怎么做了,这次又花了一点时间去想。那么感觉这种题目都有一个通解,就是二分+线段树。首先是二分答案,然后在线段树上区间+当前值是否大于等于mid,那么线段树的叶子就表示这个后缀的中位数是>=mid还是<mid。接下来就查询1~i-k+1这个区间的最大值是否大于0即可。那么对于平均数的题目的话,我们可以区间+a[i]-mid,然后查询1~i-k+1这个原创 2021-02-25 14:59:40 · 158 阅读 · 0 评论 -
[NOIP2011]聪明的质监员 二分
This way题意:题解:很明显是个三分,因为它满足三分的性质,但是我们已经知道最低点的值了,所以每次都可以和最低点的比较,那么二分也能做。对于快速计算可以使用线段树,当然前缀和也是可以的。#include<bits/stdc++.h>using namespace std;#define ll long longconst int N=2e5+5;ll v[N],w[N];ll num[N],sum[N];struct edge{ int l,r;}e[N]原创 2020-09-23 16:19:49 · 110 阅读 · 0 评论 -
Codeforces 1392 F. Omkar and Landslide —— 二分,思维
This way题意:现在有一个长度为n的严格上升序列,如果a[i+1]>=a[i]+2,那么a[i+1]-=1,a[i]+=1.重复这个过程直至最后。问你最终吗每个位置的值是多少题解:由于他是严格递增的,所以少了很多事情。设b[i]=a[i]-a[i-1]对于第i个数,我们可以知道,它一定是从它开始,从后往前将所有b值为0的填掉,于是就有了一个前面b为全1的序列,之后如果还有多的话,那么从1开始往后加就行了。#include<bits/stdc++.h>using n原创 2020-09-05 12:21:25 · 152 阅读 · 0 评论 -
Codeforces 1301 E Nanosoft —— 二分+前缀和,求二维区间是否存在
This way题意:给你一个n*m的矩阵,每个位置有四种颜色之一。现在每次给你一个矩形范围的区间,问你其中最大的能作为标志的正方形的大小是多少。标志一定是这种组成方式:题解:这道题我们是要查询二维区间的最大值,而这个最大值不好维护,因为区间的限制,会导致最大值可能在区间旁边的时候,有一部分被裁掉,所以它就不一定是最大值。那么我们此时可以二分红色正方形的边长,然后查看里面是否存在满足...原创 2020-03-05 20:43:52 · 150 阅读 · 0 评论 -
Codeforces 1165 F2 Microtransactions (hard version) —— 二分
This way题意:现在有m种物品,每种需要买ki个,每种物品一个都要花费2元,但是有些物品会在特定的天数花费减半。你从第一天开始,每天早上你会获得一元钱,每天晚上你会去买东西,你可以买任意多的东西(只要你有钱)。从第一天开始算,你至少需要几天才能买到所有需要的物品。题解:一开始题意看错了,我以为是从任意一天开始,那么对于这样的题目,二分依旧是二分,然后在判断的时候是两点维护一个区间向右...原创 2020-02-25 14:47:34 · 367 阅读 · 0 评论 -
Kattis mobilization —— 凸包+三分
This way题意:有n种士兵,每个士兵有一个花费和血量和效力,你现在有b块钱买士兵,(甚至是小数个人)你得到的价值是所有士兵的血量和乘上所有士兵的效力和。问你最大价值是多少。题解:我没想到凸包。。然后就一直不过可以将其转化为二维平面的问题:首先我们将所有的花费都变为b,这样统一花费之后就是算取的比率的问题了如果3在1,2的连线及以下,那么1,2能够组成的矩形的情况一定比1,3的...原创 2020-02-23 18:44:55 · 423 阅读 · 0 评论 -
Codeforces 626 E Simple Skewness —— 二分
This way题意:给你一些数,让你找出几个数,使得这些数的平均数-中位数最大,问你这些数是哪些。题解:奇数:奇数的话,中位数便非常好确定了,那么我们肯定是让排序后中位数右边的数尽可能大,并且左边的数也尽可能大,这样的话平均数也会变大。如果我们要枚举每个数是中位数的话,再枚举长度就是n^2的时间复杂度了,所以要优化。但是我们发现,随着长度变长,新加进来的两个数的和一定是越来越小的:...原创 2019-11-22 11:37:40 · 207 阅读 · 0 评论 -
2019牛客国庆集训派对day1 C Distinct Substrings —— 二分+哈希
This way题意:给你一个串s,定义f(s)为这个字符串不同子串的数量,h©为f(s+c)-f(s)。问你题解:正解好像是扩展KMP,but二分+哈希也能过,就是要调一下哈希的值,23,29,31,101,131,这些我都过不去,最后自暴自弃试了一下1e9+7,它居然就过了,过了。。首先我们存下所有值出现的位置,由于这里没办法开1e6个vector,那么我们就模拟一个链表,ne[i...原创 2019-10-02 09:16:52 · 423 阅读 · 2 评论 -
HDU 6661 Acesrc and String Theory —— 二分+hash 求一个字符串中有多少种连续出现k次的子串(不可区间重复)
This way题意:给你一个字符串,问你其中有多少连续出现k次的子串,计算时不可区间重复题解:有点难的题目,重要的是想到两个点:1.当已经有连续的大于等于k次子串的时候,后面的字符串与前面的最长公共前缀 也要算入答案,比如说ababac,k=2。ab出现了两次,ac与ab的最长公共前缀为a,那么答案就要再加1,因为ba也算。然后接下来的起始位置就是当前找到的最后的位置在减去当前位置...原创 2019-09-16 14:07:09 · 285 阅读 · 0 评论 -
2014 ACM/ICPC Asia Regional Shanghai Online E - Airport —— 二分+舞蹈链(DLX)重复覆盖
This way题意:给你n个点,让你在其中选k个点作为特殊点,使得所有点到其中距离自己最近的特殊点的距离最大值最小,求这个值题解:n只有60,那么翻译一下这个就是重复覆盖问题。那么我们只需要二分一下答案,将所有小于等于mid的值加到舞蹈链中,再跑一下即可。注意其中的优化:由与deep就是当前使用的点数,那么当deep>k的时候return,注意不能直接做这个判断:if(de...原创 2019-08-18 20:37:05 · 170 阅读 · 0 评论 -
USACO 2019 February Contest, Gold Problem 2. Dishwashing —— 二分+模拟
This way题意:有n个按顺序摆放好的盘子,每个盘子都有一个序号,现在有无数个空的栈,按顺序操作盘子,每次你有两个操作1.把当前的盘子放到某个栈的最顶上或者在栈的最右边新建一个栈,把盘子放进去。2.从非空栈的最左边的栈的最顶上拿一个盘子。要求:按盘子序号从小到大拿出。但是有可能并不能将所有盘子按序号拿出,所以问你最多能将序列中的前几个盘子按序号拿出。题解:一看就是二分。在二分答...原创 2019-07-16 10:12:52 · 918 阅读 · 1 评论 -
Codeforces Contest 807 E Prairie Partition —— 二分
This way题意:一个数可以被分为20+21+22+....+2k+r(0<r<=2k+1)2^0+2^1+2^2+....+2^k+r(0<r<=2^{k+1})20+21+22+....+2k+r(0<r<=2k+1),现在给你一串分解之后的数,问你能够还原回去多少个数,输出所有不同种类的个数,比如1 1 1 2 2 ...原创 2019-05-27 10:52:30 · 175 阅读 · 0 评论 -
Codeforces Contest 1100 problem E Andrew and Taxi —— 二分+拓扑排序
Andrew prefers taxi to other means of transport, but recently most taxi drivers have been acting inappropriately. In order to earn more money, taxi drivers started to drive in circles. Roads in Andrew...原创 2019-02-23 17:59:33 · 243 阅读 · 0 评论 -
Convention —— 二分
DescriptionInputOutputPlease write one line containing the optimal minimum maximum waiting time for any one arriving cow.Sample Input6 3 21 1 10 14 4 3Sample Output4Hint题意:有n个人要上车,你有m辆车,...原创 2019-03-09 21:38:43 · 247 阅读 · 0 评论 -
Codeforces Contest 1111 problem C Creative Snap ——二分找两种限制下的最小情况
Thanos wants to destroy the avengers base, but he needs to destroy the avengers along with their base.Let we represent their base with an array, where each position can be occupied by many avengers, ...原创 2019-03-04 20:44:49 · 349 阅读 · 0 评论 -
“字节跳动-文远知行杯”广东工业大学第十四届程序设计竞赛 1,2,3,4,5,7,8,9,10
1001:hzy 和zsl 的生存挑战Problem Descriptionzsl 和hzy 来到了臭臭城堡,打算挑战臭臭城堡的大魔王hyz,大魔王hyz设置了这样的一个挑战:zsl 和hzy两个人各自来到一间密室,期间两人无法以任何形式交流大魔王hyz会随机在两个人的脑海里各发送一个数字,0或者是1zsl 和 hzy 需要猜对这俩个数字才算通关,但是大魔王hyz觉得人生不能过于无敌...原创 2019-03-16 20:37:19 · 2573 阅读 · 0 评论 -
Codeforces Contest 1117 problem C Magic Ship——二分
You a captain of a ship. Initially you are standing in a point (x1,y1) (obviously, all positions in the sea can be described by cartesian plane) and you want to travel to a point (x2,y2).You know the...原创 2019-03-18 16:01:21 · 297 阅读 · 0 评论 -
Codeforces Contest 1070 problem E Getting Deals Done —— 二分
Polycarp has a lot of work to do. Recently he has learned a new time management rule: “if a task takes five minutes or less, do it immediately”. Polycarp likes the new rule, however he is not sure tha...原创 2019-04-05 16:15:12 · 283 阅读 · 0 评论 -
Codeforces Contest 1118 A-F 想法,二分,模拟,构造,dfs
A. Water BuyingPolycarp wants to cook a soup. To do it, he needs to buy exactly n liters of water.There are only two types of water bottles in the nearby shop — 1-liter bottles and 2-liter bottles. ...原创 2019-04-10 21:47:51 · 622 阅读 · 0 评论 -
Codeforces 1132 problem D Stressful Training —— 二分+并查集
Berland SU holds yet another training contest for its students today. n students came, each of them brought his laptop. However, it turned out that everyone has forgot their chargers!Let students be ...原创 2019-04-12 17:14:56 · 227 阅读 · 0 评论 -
HDU6278 Just h-index —— 主席树+二分 求区间内大于等于k的数的个数
This way题意:给你一个数组,q个询问,每次问你在l到r区间内确定一个数h,使得大于等于h的数有至少h个,问你h最大是多少。题解:主席树用权值线段树的方法记录每一个点的值,但是注意查询的时候需要离散化查询。二分的话最好是树上二分,就是看看每个点的左右子树满足条件的情况再往下递归,但是这道题没有卡掉外面二分的方法。#include<bits/stdc++.h>usin...原创 2019-05-04 19:51:33 · 1036 阅读 · 0 评论 -
Codeforces Contest 457 C Elections —— 三分
This way题意:有n个人要投票,第i个人会投给第ai个人。你是第0个人,你需要收买一些人使得最终你的票数比任何人的票数都多。第i个人需要bi块钱去收买。题解:在cf上不能交的题目,拉到vjudge上就能交了,非常神奇。一开始以为是二分最终有多少票,因为那时候觉得票数越少买的人就越少,那么花的钱就越少。但是不是这样的,有时候买的人数多一点范围就会更广一点,举个例子:131 100...原创 2019-05-08 13:41:50 · 325 阅读 · 0 评论 -
Codeforces Contest 431 D记忆化搜索(数位DP)+二分
This way题意:让你求出一个n,使得从n+1到2n之间有正好m个二进制位上为1的个数=k的数3->11 两个1题解:这道题满足二分的性质,来证明一下:假设当前的区间为n~2n,当n->n+1时,2n->2n+2,我们少了一个n+1,但是多了2n+1,和2n+2,2n+2与n+1的位数是相同的,相当于多了一个2n+1,那么n越大,满足条件的可能越多,这个曲线满足二...原创 2019-05-13 14:54:34 · 186 阅读 · 0 评论 -
hdu 6070 Dirt Ratio —— 二分+线段树
Problem Description In ACM/ICPC contest, the ”Dirt Ratio” of a team is calculated in the following way. First let’s ignore all the problems the team didn’t pass, assume the team passed X problems dur...原创 2018-09-05 15:29:36 · 168 阅读 · 0 评论