
二分/三分
HARD_UNDERSTAND
Just try
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
组装电脑 LA 3971 二分答案
题目: 给定电脑的n(n<1000)个配件,每个配件有类型,名字(没用的信息),价格和品质因子。要求每种类型的配件各买一个用于组装电脑,总价格不超过b元。求所有可能的方案中品质因子最差的那个配件的品质因子最大能是多少。 分析: 看着这数据,觉得暴力也可做,枚举每个品质因子,找出满足要求的最大的。但如果数据大一点,就不能这么暴力了,就要二分答案去找最优解了。 具体实现,就是把每种类型的配件都保原创 2016-03-28 22:37:48 · 554 阅读 · 0 评论 -
spoj 220 每个字符串至少出现两次且不重叠的最长子串 (后缀数组)
题目:http://acm.hust.edu.cn/vjudge/problem/19293 题意: 给定 n 个字符串,求在每个字符串中至少出现两次且不重叠的最长子串。分析: 做法和上题大同小异,也是先将 n 个字符串连起来,中间用不相同的且没有出现在字符串中的字符隔开,求后缀数组。然后二分答案,再将后缀分组。判断的时候,要看是否有一组后缀在每个原来的字符串中至少出现两次,并且在每个原原创 2016-09-02 12:10:56 · 737 阅读 · 0 评论 -
poj 1226 出现或反转后出现在每个字符串中的最长子串(后缀数组/kmp)
题目:http://poj.org/problem?id=1226 题意: 给定 n 个字符串,求出现或反转后出现在每个字符串中的最长子串。分析: 这题不同的地方在于要判断是否在反转后的字符串中出现。其实这并没有加大题目的难度。只需要先将每个字符串都反过来写一遍,中间用一个互不相同的且没有出现在字符串中的字符隔开,再将 n 个字符串全部连起来,中间也是用一个互不相同的且没有出现在字符串中原创 2016-09-02 15:03:45 · 326 阅读 · 0 评论 -
Codeforces 671B Robin Hood 二分答案
B. Robin Hood time limit per test 1 second memory limit per test 256 megabytes input standard input output standard outputWe all know the impressive story of Robin Hood. Robin Hood uses his arc原创 2016-05-15 17:26:07 · 1712 阅读 · 0 评论 -
poj 2253 二分/最短路
题意:A青蛙要去B青蛙所在的石头,湖面上共有n个石头,A在0,B在1,A到B可以跳到其它石头上,要求到B的路程中,跳的最远的一次?使这个最大距离最小。分析:虽然在最短路的题目里看到这个题,不过读完题我就想到了二分答案+并查集判联通,二分最大距离,然后把不大于这个距离的边的两点放到一个集合里,最后判断一下A和B是否在同一个集合即可。很快敲完了,交上去WA了,怎么可能WA呢?百思不得其解,原创 2016-07-06 23:12:01 · 292 阅读 · 0 评论 -
Codeforces Round #398 (Div. 2)题解
题目:http://codeforces.com/contest/767吐槽: 这场的题目不太行啊,感觉B题麻烦的要死,CD都比B简单。A Snacktower分析:简单模拟一下即可。B The Queue题意:排队在窗口买票,营业时间是[ts,tf],一个人办理业务需要的时间都是t 现在知道了n个人去到达的时间f[i] 现在小明要去买票,小明到达的时间如果跟n个人中某人一样,那么就在这些人后原创 2017-02-19 23:36:03 · 480 阅读 · 0 评论 -
51nod 1105 第K大的数【二分】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1105 题意: 数组A和数组B,里面都有n个整数。数组C共有n^2个整数,分别是A[0] * B[0],A[0] * B[1] ……A[1] * B[0],A[1] * B[1]……A[n - 1] * B[n - 1](数组A同数组B的组合)。求数组C中第K大的数原创 2017-03-01 09:32:19 · 268 阅读 · 0 评论 -
51nod1686 第K大区间 【二分】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1686题意:定义一个区间的值为其众数出现的次数。 现给出n个数,求将所有区间的值排序后,第K大的值为多少。Input第一行两个数n和k(1<=n<=100000,k<=n*(n-1)/2) 第二行n个数,0<=每个数<2^31Output一个数表示答案。Input示原创 2017-03-02 11:09:54 · 406 阅读 · 0 评论 -
51nod 1272 最大距离(思维)
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1272题意:给出一个长度为N的整数数组A,对于每一个数组元素,如果他后面存在大于等于该元素的数,则这两个数可以组成一对。每个元素和自己也可以组成一对。例如:{5, 3, 6, 3, 4, 2},可以组成11对,如下(数字为下标): (0,0), (0, 2), (1,原创 2017-02-23 11:22:32 · 571 阅读 · 0 评论 -
51nod 1287 加农炮【二分】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1287题意:一个长度为M的正整数数组A,表示从左向右的地形高度。测试一种加农炮,炮弹平行于地面从左向右飞行,高度为H,如果某处地形的高度大于等于炮弹飞行的高度H(A[i] >= H),炮弹会被挡住并落在i - 1处,则A[i - 1] + 1。如果H <= A[0],则原创 2017-03-02 19:37:09 · 294 阅读 · 0 评论 -
poj 3294 不小于 k 个字符串中的最长子串(后缀数组+二分)
题目:http://poj.org/problem?id=3294 题意: 给定 n 个字符串,求出现在大于一半个字符串中的最长子串。分析: 将 n 个字符串连起来,中间用不相同的且没有出现在字符串中的字符隔开,求后缀数组。然后二分答案,将后缀分成若干组,判断每组的后缀是否出现在不小于 k 个的原串中。这个做法的时间复杂度为 O(nlogn)。#include<cstdio>#inc原创 2016-09-02 10:35:06 · 353 阅读 · 0 评论 -
poj 3261 / LA 4513 可重叠的 k 次最长重复子串(后缀数组/字符串hash)
poj 3261 题意: 给出n个数,求可重叠的k次最长的重复子串的长度 分析: 后缀数组: 这题的做法和上一题差不多,也是先二分答案,然后将后缀分成若干组。不 同的是,这里要判断的是有没有一个组的后缀个数不小于 k。如果有,那么存在 k 个相同的子串满足条件,否则不存在。这个做法的时间复杂度为 O(nlogn)#include<cstdio>#include<algorithm>原创 2016-09-01 10:44:34 · 365 阅读 · 0 评论 -
poj 1845 求A^B的约数之和
题意: 求A^B的所有约数之和 Mod 9901。思路: 大数模运算。两个最基本公式:(A*B)%C = ((A%C)(B%C))%C 和 (A+B)%C = ((A%C)+(B%C))%C 。用__int64的原因为 n = cnt[i] B (cnt[i]为A第i个素因子的个数)可能会超int。1: 对A进行素因子分解得 A = p1^a1 * p2^a2 * p3^a3 *...* pn原创 2016-08-02 21:33:06 · 736 阅读 · 0 评论 -
Codeforces 645C 二分
题目: In an attempt to escape the Mischievous Mess Makers’ antics, Farmer John has abandoned his farm and is traveling to the other side of Bovinia. During the journey, he and his k cows have decided to原创 2016-04-01 21:52:05 · 413 阅读 · 0 评论 -
Codeforces 650B 二分
题目:http://codeforces.com/problemset/problem/650/B 题意: :给n张图片循环可看,每张图片的朝向为横(w)|竖(v),但是手机是竖直放置的。开始时打开的是第0张图片,如果一张图片为w放置就需先花b秒边把该张图片变成v朝向,从一张图片到下一张图片手机的反应时间为a秒,每观察一张图片需要1秒钟。不能直接跳过没看的图片,但是重新刷到看过的图片时,所花的时原创 2016-03-28 22:28:58 · 484 阅读 · 0 评论 -
Uva 1152 和为0的4个值 hash/二分
题意: 给定4个n(1 <= n <= 4000)元素集合A, B, C, D,要求分别从中选取一个元素a, b, c, d,使得a+b+c+d = 0,问有多少种选法。 分析: 显然四重循环是过不了的,我先想到的是用map把a+b,c+d分别保存起来,然后在查找统计。超时。。。。 然后书上说用哈希表去实现,看到有的题解hash表示的太巧妙了,学习一下。 还有就是这题可以用二分解决,先计算原创 2016-05-10 11:13:46 · 1213 阅读 · 0 评论 -
hdu 5682 zxa and leaf 二分答案
zxa and leafAccepts: 25Submissions: 249Time Limit: 5000/2500 MS (Java/Others)Memory Limit: 65536/65536 K (Java/Others)问题描述zxa有一棵含有nnn个节点的无根树,包含(n−1)(n-1)(n−1)条无向边,点从111到nnn编号,定义每原创 2016-05-15 00:13:33 · 714 阅读 · 0 评论 -
UVa 714 抄书 二分答案
题意: 把一个包含m个正整数的序列划分成k个(1≤k≤m≤500)非空的连续子序列,使得每个正 整数恰好属于一个序列。设第i个序列的各数之和为S(i),你的任务是让所有S(i)的最大值尽 量小。例如,序列1 2 3 2 5 4划分成3个序列的最优方案为1 2 3 | 2 5 | 4,其中S(1)、S(2)、S(3) 分别为6、7、4,最大值为7;如果划分成1 2 | 3 2 | 5 4,则最大值为原创 2016-05-17 11:02:38 · 513 阅读 · 0 评论 -
Codeforces 670D2 Magic Powder - 2 二分答案
Waking up in the morning, Apollinaria decided to bake cookies. To bake one cookie, she needs n ingredients, and for each ingredient she knows the value ai — how many grams of this ingredient one needs原创 2016-05-08 21:49:28 · 886 阅读 · 0 评论 -
poj 几道简单的二分题
poj 3273 Monthly Expense题意: 有n个数,划分成m块,和最大的一块最小是多少? 分析: 最大值最小问题,二分答案。#include<cstdio>using namespace std;typedef long long ll;const int N=1e5+9;int a[N],n,m;bool ok(int x){ int k=m,t=0; //原创 2016-08-03 17:41:58 · 415 阅读 · 0 评论 -
Educational Codeforces Round 15(简单题)
A. Maximum Increase 题意: 给出一个数列(n<100000),问最长连续上升子序列?#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5+9;int a[N];int main(){ int n;scanf("%d",&n); int maxn原创 2016-07-31 15:20:41 · 413 阅读 · 0 评论 -
Codeforces 703C Chris and Road 二分、思考
题目:http://codeforces.com/contest/703/problem/C题意: 一个人从(0,0,)到(0,w)速度最快是u。 一个凸多边形的物体(有n个顶点)与人同时开始移动,问人在不被撞的前提下最快到达(0,w)的时间?分析: 人不被车撞,有两种情况,第一种是车在到达x=0时,人就已经过去了,这种情况特殊判断一下即可。第二种情况是人如果一直走可鞥会被车撞,要想原创 2016-08-05 20:32:15 · 459 阅读 · 0 评论 -
51nod 1307 绳子与重物 【二分/并查集】
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1307题意:有N条绳子编号 0 至 N - 1,每条绳子后面栓了一个重物重量为Wi,绳子的最大负重为Ci。每条绳子或挂在别的绳子下或直接挂在钩子上(编号-1)。如果绳子下所有重物的重量大于绳子的最大负重就会断掉(等于不会断)。依次给出每条绳子的负重Ci、重物的重量Wi以原创 2017-03-22 16:41:37 · 570 阅读 · 0 评论