随笔分类 -  二分

摘要:有n根木棍, 第i根木棍的长度为Li,n根木棍依次连结了一起, 总共有n-1个连接处. 现在允许你最多砍断m个连接处, 砍完后n根木棍被分成了很多段,要求满足总长度最大的一段长度最小, 并且输出有多少种砍的方法使得总长度最大的一段长度最小. 并将结果mod 10007。 题解:先二分求最大长度的最小 阅读全文
posted @ 2018-05-23 22:46 walfy 阅读(197) 评论(0) 推荐(0) 编辑
摘要:Description 火星人最近研究了一种操作:求一个字串两个后缀的公共前缀。比方说,有这样一个字符串:madamimadam,我们将这个字符串的各个字符予以标号:序号: 1 2 3 4 5 6 7 8 9 10 11 字符 m a d a m i m a d a m 现在,火星人定义了一个函数L 阅读全文
posted @ 2018-05-06 20:08 walfy 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题意:有一些牛和牛棚(有容量),每头牛对牛棚有喜好程度,要求每头牛都有一个棚子的情况下,找最小的喜好程度之差 题解:题意是真的恶心,wa了好久才发现没读懂,一直以为输入 的是排名,其实是牛棚标号,从1到m。用最大流一直tle,无奈还是用匈牙利算法,对于匈牙利算法求解二分图多重匹配,可以用一个容量数组 阅读全文
posted @ 2017-11-15 10:45 walfy 阅读(176) 评论(0) 推荐(0) 编辑
摘要:题意:给一堆点,一部分是牛,一部分是机器,每头牛必须要走到一个机器,每个点之间有距离,要求每头牛都能找得到一台机器(机器有最大容量)的情况下,走的最远的牛距离最小 题解:二分答案,小于该距离的边才能加进来,先用floyd预处理距离,然后跑最大流看满不满足条件 #include<map> #inclu 阅读全文
posted @ 2017-11-13 20:16 walfy 阅读(193) 评论(0) 推荐(0) 编辑
摘要:归并排序的逆操作,每次二分时把第二段第一位与第一段最后一位开始往前第一个比它大的数交换位置 可以用归并排序验证答案对不对 #include<bits/stdc++.h> #define fi first #define se second #define mp make_pair #define p 阅读全文
posted @ 2017-10-26 00:00 walfy 阅读(134) 评论(0) 推荐(0) 编辑
摘要:题意:给一堆照片,只能左右翻(时间为a),如果看的时候不正,就旋转(时间为b),看的时间为1,不能跳过,看过的不用再看,求看到的最大照片数 题解:模拟+二分,先从左到右扫一遍,扫的同时反向进行二分,看最远能到达的地方是哪里,然后求看到的最大照片数,还要反向来一遍,先向后扫,然后向前二分 #inclu 阅读全文
posted @ 2017-10-06 18:55 walfy 阅读(207) 评论(0) 推荐(0) 编辑

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