![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
二分搜索
chen_minghui
这个作者很懒,什么都没留下…
展开
-
1010 只包含因子2 3 5的数
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 思路:打个表,排序后二分查找。#include<cstdio> #include<queue> #include<iostream> #include<vector> #include<map> #include<cstring> #include<st原创 2017-08-07 22:45:10 · 404 阅读 · 0 评论 -
51nod 1278 相离的圆
题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 题意:一排圆的圆心在X轴上,给定半径和圆的坐标,求相离的圆的对数。 思路:转换成区间之间不相交问题,先计算出有多少线段是相交的,然后用总数减去就是答案。#include<cstdio> #include<queue> #include<iostream原创 2017-08-06 09:47:42 · 318 阅读 · 0 评论 -
codeforces 702C Cellular Network 二分
题意:n个城市,m个蜂窝网络。他们的坐标在一条直线上。且给定的坐标都是从左到右依次给出。问网络的覆盖范围r至少为多大时,能将所有城市包含进去 思路:如果r可以,那么r+1,r+2...都可以。在给定的范围二分,判断每个r是否满足条件。 #include #include #include #include #include #include #include #include #define原创 2017-07-13 09:30:12 · 238 阅读 · 0 评论 -
codeforces 808D - Array Division
题意:一个数组中可以将一些元素的位置移动到任意位置,问能否将一个移动后数组从某一位置处分成两部分,使得这两部分和相等 思路:首先求出数组所有元素总和以及前缀和,总和不能与2整除直接判断NO,然后再枚举要移动的元素,这个元素可以可以往前移,也可以往后移。如果不移动元素,就存在两部分和相等,那么必有某个前缀和pre[x]=sum/2。现在考虑移动第I个元素,如果往前移动则存在某个小于I的x,pre[原创 2017-06-20 19:27:57 · 270 阅读 · 0 评论 -
codeforces 780B - The Meeting Place Cannot Be Changed 二分
题意:n个人在一条直线上,第I个人在坐标ai处,步行的最大速度为vi(单位m每s),他们能往左或往右走,求出他们能够在一点相遇的最小时间 思路:二分枚举时间t,判断他们所能到达的边界,有交集的不断合并,只要有一个没有交集说明这个时间不能到达同一点。 #include #include #define ll long long using namespace std; const int max原创 2017-06-19 20:31:33 · 392 阅读 · 0 评论 -
C - Sagheer and Nubian Market 二分
题意:n个物品,s的预算,每个物品i有个基本的价格ai。实际价格取决于购买的数量k。如果买k个物品,物品的下标分别x1~xk. 那么这些物品的价格为a[xi]+xi*k.求购买的物品至多多少个,并求出最少花费 思路:二分枚举购买物品个数,算出价格后排序。 #include #include #define ll long long using namespace std; ll a[10001原创 2017-06-19 17:07:10 · 239 阅读 · 0 评论 -
codeforces 817C Really Big Numbers 二分
题意:用f(x)=x-(x的各个位之和),求出小于n,且f(x)>=s满足条件x的个数。 思路:每个x都有唯一对应的f(x)的,所以可以用二分来找答案 #include #define ll long long ll get(ll num) { ll d=0; ll temp=num; while(temp) { d+=temp%10; temp/=10; } return原创 2017-06-19 15:03:00 · 392 阅读 · 0 评论 -
codeforces 773A Success Rate 二分
题意:某人很喜欢一个比例p/q.现在他在oj上交题,成功率为y/x,为了使成功率到达他最喜欢的比率,他该交多少题,如果无法达到,输出-1 思路:假设交题ac次数为B,交题总数A p/q = y+B/x+A => (p*k)/(q*k) = x+B/y+A A+B = p*k => B=p*k-x x+A = q*k => A=q*k-y and A>=B k越小,A和B越小原创 2017-05-18 12:14:30 · 435 阅读 · 0 评论