二分答案
_pkm_
love coding
展开
-
1085. Perfect Sequence (25)
1085. Perfect Sequence (25)时间限制 300 ms内存限制 65536 kB代码长度限制 16000 B判题程序 Standard 作者 CAO, PengGiven a sequence of positive integers and another positiv原创 2015-03-08 20:14:00 · 500 阅读 · 0 评论 -
#1128 : 二分·二分查找 ( 两种方法 先排序在二分O(nlogN) + 直接二分+快排思想O(2N) )
#1128 : 二分·二分查找时间限制:10000ms单点时限:1000ms内存限制:256MB描述Nettle最近在玩《艦これ》,因此Nettle收集了很多很多的船(这里我们假设Nettle氪了很多金,开了无数个船位)。去除掉重复的船之后,还剩下N(1≤N≤1,000,000)种不同的船。每一艘船有一个稀有值,任意两艘船的稀有值都不相同,稀有值越小的船越稀有,价值也就原创 2015-04-12 22:27:11 · 1133 阅读 · 0 评论 -
HIHO #1162 : 骨牌覆盖问题·三
题目链接这题和之前的一个 状态压缩二,是很类似的,这道题的n比较大,开不下数组,无法使用之前的类似方法,但是由于k比较小,可以使用状态压缩,结合这道题目的前2个版本,考虑使用矩阵快速幂进行计算,关键是计算出状态转移的矩阵M,使用dfs,跑出状态转移矩阵 用二进制表示状态, 上一行的状态用y表示 当前这一行的状态用x表示 枚举当前这一行的每一个空的位置,放置骨牌,有3种情况,题目的提示讲解的很原创 2016-08-18 15:41:29 · 711 阅读 · 0 评论 -
HIHO #1139 : 二分·二分答案
题目链接假定一个解可行,然后二分判断,判断给出的值是不是可以到达终点,我们使用bfs搜一下#include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define LL long long#define pb push_back#define gcd __gcd#define For(i,原创 2016-08-18 08:25:34 · 398 阅读 · 0 评论 -
HIHO #1128 : 二分·二分查找(快速排序一半)
题目链接快速排序应用#include<bits/stdc++.h>using namespace std;#define cl(a,b) memset(a,b,sizeof(a))#define LL long long#define pb push_back#define gcd __gcd#define For(i,j,k) for(int i=(j);i<k;i++)#define原创 2016-08-17 20:21:05 · 717 阅读 · 0 评论 -
HDU 5776 (sum 前缀和)
题目链接 问在数列的连续和里面是不是存在和是m的子序列前缀和处理一下,二分搜索一下#include<cstdio>#include<algorithm>#include<iostream>#include<cstring>#include<string>#include<cmath>#include<map>#include<set>#include<cstdlib>#inclu原创 2016-07-31 13:06:07 · 387 阅读 · 0 评论 -
Codeforces Round #334 (Div. 2)B. More Cowbell(二分+贪心)
题目链接 题意:给你n个物品的大小,和k个盒子,每个盒子最多只能放2个物品。 物品的大小按照升序给出,问你最小的盒子是多大 解答:二分盒子的大小S,然后判断下体积是S时需要的盒子数量是不是小于K的。这个地方要贪心,正确的方法是把体积大的和体积小的放在一起#define CF#ifndef CF#include<cstdio>#include<algorithm>#include<cs原创 2015-12-02 16:03:26 · 397 阅读 · 0 评论 -
Codeforces Round #280 (Div. 2)D. Vanya and Computer Game(二分)
题目链接 题意:A,B俩人一起打怪,A一秒打X次,B一秒打Y次,(每个人的攻击是对所有的怪物都有效果),每个怪物被打ai下就会死掉,问最后一下是谁打的。 解法 :A打一次是1/X 秒 B打一次是1/Y秒,浮点数不好计算,我们把二者乘以XY,那么 A打一次就是Y秒,B打一次就是X秒。然后二分怪物被打死的时间t.条件是t/X+t/Y>=a#define CF#if原创 2015-12-02 11:29:48 · 434 阅读 · 0 评论 -
Educational Codeforces Round 2B. Queries about less or equal elements(二分查找)
题目链接 题意:给你一个数组a ,然后给你一个数组B,让你找出b[i]在A中有多少是小于他的 解法:排序a数组,二分查找即可#define CF#ifndef CF#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#else#include<bits/stdc++.h>#endif // CFu原创 2015-11-29 16:24:59 · 343 阅读 · 0 评论 -
Codeforces Round #330 (Div. 2)D. Max and Bike (二分)
题目链接 题意:有一个轮子做匀速运动。然后轮子上有一点,可以在任何位置,现在问,这一点从s位置到f位置的最小时间, 解法:二分时间t,然后轮子装过的角度是v*t%2*pi*r 然后在转化为弧度。轮子走对称的应该时间少,总距离就是v*t+2*r*sin(angle)#include<bits/stdc++.h>using namespace std;#define LL long long原创 2015-11-20 10:17:36 · 564 阅读 · 0 评论 -
Codeforces Round #333 (Div. 2)B. Approximating a Constant Range(ST+二分||set暴力)
题目链接 题意:给你n个数字,然后问你,最长区间是多长(区间满足最大减去最小<=1) 解法:二分每个点往右边可以扩展多少距离,区间最大最小用ST算法#define CF#ifndef CF#include<cstdio>#include<algorithm>#include<cstring>#include<cmath>#else#include<bits/stdc++.h>#en原创 2015-11-25 16:49:38 · 395 阅读 · 0 评论 -
HDU5592 ZYB's Premutation(树状数组)
题目链接 题意:给出一个排列的每个位置的逆序数,让你恢复这个排列 解法:首先可以发现的是a[i]-a[i-1]就是表示1到i位置中比i位置大的数的个数,这样第一步可以确定的是最后那个位置的数,考虑倒数的第二个数,n个数,用掉了一个,还有n-1个,假设这个位置前面比他大的有X个,怎么找到前面比他大的有X的数呢。反过来思考下,可以找前面比他小的数n-1-X个,依次类推,这样可以用树状数组维护,二分即原创 2015-12-10 16:10:46 · 465 阅读 · 0 评论 -
#148. 【NOIP2015】跳石头 (二分答案,最大化最小值)
题目链接 题意:略 解法:和上一道poj2456一样, 这里是删除m个点,等价于选择n-m 个点,剩下的与poj2456处理一样,经典题目#include<cstdio>#include<algorithm>//#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#de原创 2015-11-21 16:45:42 · 1790 阅读 · 0 评论 -
POJ 2456 Aggressive cows(二分答案,最大化最小值)
题目链接 题意:给出n个牛舍坐标(在一直线上),然后有m个牛要入住,现在问相邻牛之间的最小距离最大是几 解答:二分答案,函数ok(d)检查距离是d合法与否#include<cstdio>#include<algorithm>//#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_b原创 2015-11-21 16:35:57 · 779 阅读 · 0 评论 -
HDU5515 Game of Flying Circus(二分)
题意:题解有翻译,然后自己拦截对手时候可以任意走,当然是直线最快啦 题解:http://www.cnblogs.com/qscqesze/p/4931912.html#include<bits/stdc++.h>using namespace std;#define LL long long#define pb push_back#define X first#define Y sec原创 2015-11-06 11:11:47 · 716 阅读 · 0 评论 -
HDU3681Prison Break(BFS+TSP+二分+dp状态压缩)
题意: n*m的图上,机器人要从F出发关闭所有的Y。同时,G是可以充电的,但是只能充一次电,机器人每走一步消耗一个单位的电,问机器人需要带的最小的电池容量是多少。 解法:看了网上的题解,是TSP问题的变形, TSP是旅行商问题,即有n个城市,两两之间均有道路相连,给出每两个城市i,j之间的道路长度Lij,求经过每个城市一次仅且一次,最后回到起点,使得经过的道路长度最短,n<=15(一般是TSP问题原创 2015-08-10 18:21:54 · 669 阅读 · 0 评论 -
#1133 : 二分·二分查找之k小数 ( 快速排序, 分治 OR nth_element() 函数)
#1133 : 二分·二分查找之k小数时间限制:10000ms单点时限:1000ms内存限制:256MB描述在上一回里我们知道Nettle在玩《艦これ》,Nettle的镇守府有很多船位,但船位再多也是有限的。Nettle通过捞船又出了一艘稀有的船,但是已有的N(1≤N≤1,000,000)个船位都已经有船了。所以Nettle不得不把其中一艘船拆掉来让位给新的船。Nett原创 2015-04-13 21:35:17 · 868 阅读 · 0 评论 -
1540: 第k大数 两个数组元素相乘后的第k大( 二分答案 + 输入输出优化 )
1540: 第k大数Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 104 Solved: 6[Submit][Status][Web Board]Description有两个序列a,b,它们的长度分别为n和m,那么将两个序列中的元素对应相乘后得到的n*m个元素从大到小排列后的第k个元素是什么?Input输入的第原创 2015-04-19 19:20:47 · 2359 阅读 · 0 评论 -
LeetCoder 33. Search in Rotated Sorted Array(二分)
是把一个升序的数组,前面的连续的一部分(可以是空)放在数组的后面,然后再这个数组这中找一个给出的值,数组中不存在重复的元素。 这个题目也是《剑指offer》二分查找的一道例题class Solution {public: int search(vector<int>& nums, int target) { int l = 0, r = nums.size()-1;原创 2017-08-15 10:43:55 · 419 阅读 · 0 评论