
二分/分治
NotFound1
这个作者很懒,什么都没留下…
展开
-
|Tyvj|二分|P1938 [Clover4]最优战舰
http://tyvj.cn/p/1938二分答案题目,找最大值当做r,然后check即可参考代码:#includeint n,m;int a[102000];int l=0, mid, r=0;void init() { scanf("%d%d", &n, &m); for (int i=1;i<=n;i++) { scanf("%d", &a[i]); if (原创 2016-05-31 22:07:36 · 562 阅读 · 0 评论 -
|洛谷|分治|P2799 国王的魔镜
https://www.luogu.org/problem/show?pid=2799判断整个字符串是否对称,如果对称,那么从中间分开继续比较。注意,当当前总长度为奇数时,直接退出,因为镜子不会把项链变为奇数长#include#include#includeusing namespace std;#define ms(i,j) memset(i, j, sizeof i);i原创 2016-11-27 10:51:05 · 684 阅读 · 0 评论 -
|poj 2723|2-SAT|二分|Get Luffy Out
poj传送门 二分枚举m,然后建2-SAT图即可。#include<cstdio> #include<algorithm> #include<cstring> #include<vector>#define ms(i,j) memset(i,j, sizeof i);using namespace std;const int MAXM = 2100, MAXN = 1100;s原创 2017-02-09 17:46:19 · 450 阅读 · 0 评论 -
|poj 1995|快速幂|Raising Modulo Numbers
poj传送门根据题目公式 (AB11+AB22+...+ABhh)modM(A_1^{B_1}+A_2^{B_2}+ ... +A_h^{B_h})\mod M 快速幂即可#include<cstdio> #include<algorithm> #include<cstring> #include<cmath>#define ms(i,j) memset(i,j, sizeof i原创 2017-03-12 21:35:26 · 401 阅读 · 0 评论 -
|poj 2296|2-SAT|二分|Map Labeler
poj传送门/* poj 2296 二分+2-SAT 教训: 1、注意复杂情况的分类讨论 2、a<x<b这样的不要写错了 */#include<cstdio>#include<cstring>#include<algorithm>#include<vector>using namespace std;#define ms(i,j) memset(原创 2017-04-08 15:59:37 · 507 阅读 · 0 评论 -
|算法讨论|二分查找 学习笔记
以下程序对比了lower_bound和自写函数的比较,基本上能够保证正确#include<cstdio>#include<cstring>#include<algorithm>#include<ctime>using namespace std;#define ms(i,j) memset(i,j,sizeof i);const int MAXN = 1000;int n = 20;原创 2017-03-24 19:39:17 · 393 阅读 · 0 评论 -
|Hdu 3622|2-SAT|二分|Bomb Game
Hdu传送门/* hdu 3622 二分后2-SAT判断 本题教训: 1、2-SAT加边视情况加 2、浮点数二分查找的写法 3、浮点数的eps最好开多一点,防卡精度 */#include<cstdio>#include<cstring>#include<vector>#include<cmath>#include<algorithm>原创 2017-04-03 14:48:44 · 468 阅读 · 0 评论 -
|poj 2749|2-SAT|二分|Building roads
poj传送门/* poj 2749 二分后2-SAT判断 本题教训: 1、加边视情况加 2、2-SAT里面的c在solve里面千万不要再int c */#include<cstdio>#include<cstring>#include<vector>#include<cmath>#include<algorithm>#define ll long原创 2017-04-04 12:40:00 · 469 阅读 · 0 评论 -
|poj 3294|后缀数组|二分|Life Forms
poj 3294和这题差不多,二分后后缀数组heightheight判断,此题要输出所有的解,用个数组存下每个解在aa中的起始位置即可。不同的是,此题判断时一定要找到一个height[i]<xheight[i]<x或者循环完毕heightheight才能更新解,这样才能防止重复解出现。 (ps: vivi数组不要开大了,否则memset时容易TLE)#include<cstdio>#includ原创 2017-05-29 09:36:47 · 443 阅读 · 0 评论 -
|poj 1226|后缀数组|二分|Substrings
poj 1226几本上与这题一样,只不过这里还要把读入的字符串的翻转后的字符串也要连上#include<cstdio>#include<cstring>#include<algorithm>#include<vector>#define ms(i, j) memset(i, j, sizeof i)#define FN2 "poj1226" using namespace std;con原创 2017-05-29 14:01:05 · 532 阅读 · 0 评论 -
|poj 3261|后缀数组|二分|Milk Patterns
poj 3261还是一样的,这题是整形数字,也可以转为字符串算法做,用后缀数组,二分以后分组判定就可以了#include<cstdio>#include<cstring>#include<algorithm>#define ms(i, j) memset(i, j, sizeof i)#define FN2 "poj3261" using namespace std;const int M原创 2017-05-29 21:27:42 · 491 阅读 · 0 评论 -
|洛谷|二分|P1678 烦恼的高考志愿
https://www.luogu.org/problem/show?pid=1678二分找上下界即可#include#include#include#define ms(i,j) memset(i,j, sizeof i);/* NOIP2016倒计时,RP++ Luogu: P1678 烦恼的高考志愿*/using namespace std; int m,n;in原创 2016-11-17 20:46:01 · 749 阅读 · 0 评论 -
|洛谷|分治|P1908 逆序对
http://www.luogu.org/problem/show?pid=1908归并排序求解即可,经典问题#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int A[40005];int T[40005];int cnt = 0;int原创 2016-09-28 21:47:44 · 657 阅读 · 0 评论 -
|NOIOJ|二分|05:派
描述我的生日要到了!根据习俗,我需要将一些派分给大家。我有N个不同口味、不同大小的派。有F个朋友会来参加我的派对,每个人会拿到一块派(必须一个派的一块,不能由几个派的小块拼成;可以是一整个派)。我的朋友们都特别小气,如果有人拿到更大的一块,就会开始抱怨。因此所有人拿到的派是同样大小的(但不需要是同样形状的),虽然这样有些派会被浪费,但总比搞砸整个派对好。当然,我也要给自己留一块,而原创 2016-05-31 18:13:09 · 1153 阅读 · 0 评论 -
|NOIOJ|二分|04:网线主管
描述仙境的居民们决定举办一场程序设计区域赛。裁判委员会完全由自愿组成,他们承诺要组织一次史上最公正的比赛。他们决定将选手的电脑用星形拓扑结构连接在一起,即将它们全部连到一个单一的中心服务器。为了组织这个完全公正的比赛,裁判委员会主席提出要将所有选手的电脑等距离地围绕在服务器周围放置。为购买网线,裁判委员会联系了当地的一个网络解决方案提供商,要求能够提供一定数量的等长网线。裁判委员会原创 2016-05-31 19:10:27 · 1729 阅读 · 1 评论 -
|NOIOJ|二分|06:月度开销
描述农夫约翰是一个精明的会计师。他意识到自己可能没有足够的钱来维持农场的运转了。他计算出并记录下了接下来 N (1 ≤ N ≤ 100,000) 天里每天需要的开销。约翰打算为连续的M (1 ≤ M ≤ N) 个财政周期创建预算案,他把一个财政周期命名为fajo月。每个fajo月包含一天或连续的多天,每天被恰好包含在一个fajo月里。约翰的目标是合理安排每个fajo月包含的原创 2016-05-31 06:36:13 · 5147 阅读 · 0 评论 -
|NOIOJ|NOIP2015|二分|10:河中跳房子
描述每年奶牛们都要举办各种特殊版本的跳房子比赛,包括在河里从一个岩石跳到另一个岩石。这项激动人心的活动在一条长长的笔直河道中进行,在起点和离起点L远 (1 ≤ L≤ 1,000,000,000) 的终点处均有一个岩石。在起点和终点之间,有N (0 ≤ N ≤ 50,000) 个岩石,每个岩石与起点的距离分别为Di (0 Di L)。在比赛过程中,奶牛轮流从起点出发,尝试到达终点,每原创 2016-05-29 21:42:37 · 3449 阅读 · 1 评论 -
|NOIOJ|二分归并|7622:求排列的逆序数
描述在Internet上的搜索引擎经常需要对信息进行比较,比如可以通过某个人对一些事物的排名来估计他(或她)对各种不同信息的兴趣,从而实现个性化的服务。对于不同的排名结果可以用逆序来评价它们之间的差异。考虑1,2,…,n的排列i1,i2,…,in,如果其中存在j,k,满足 j j > ik, 那么就称(ij,ik)是这个排列的一个逆序。一个排列含有逆序的个数称为这个排列的逆原创 2016-05-29 11:52:48 · 1722 阅读 · 0 评论 -
|NOIOJ|二分快排|7617:输出前k大的数
描述给定一个数组,统计前k大的数并且把这k个数从大到小输出。输入第一行包含一个整数n,表示数组的大小。n 第二行包含n个整数,表示数组的元素,整数之间以一个空格分开。每个整数的绝对值不超过100000000。第三行包含一个整数k。k 输出从大到小输出前k大的数,每个数一行。样例输入104 5 6 9 8 7 1 2 3 05样例输出9原创 2016-05-28 19:22:29 · 1659 阅读 · 0 评论 -
|洛谷|排序|P1781 宇宙总统
http://www.luogu.org/problem/show?pid=1781排序即可,注意要用字符串,注意字符串的交换方法以及比较大小,n#include#include#include#include#define ms(i,j) memset(i, j, sizeof(i));using namespace std;int xh[25];char ch[25][1原创 2016-09-16 19:55:26 · 643 阅读 · 0 评论 -
|洛谷|二分|P1316 丢瓶盖
http://www.luogu.org/problem/show?pid=1316二分答案后贪心地check即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int a,b;int x[100005];int l = 1,r = 0;bo原创 2016-09-23 22:37:19 · 471 阅读 · 0 评论 -
|洛谷|二分|P1182 数列分段Section II
http://www.luogu.org/problem/show?pid=1182用二分答案,check即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n,m;int a[100005];bool check(int x)//大于原创 2016-09-21 22:09:14 · 656 阅读 · 0 评论 -
|洛谷|分治|数学|P1226 取余运算||快速幂
http://www.luogu.org/problem/show?pid=1226快速幂取余。#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int poww(int a, int b, int c){ int ans = 1, base =原创 2016-09-25 14:33:15 · 387 阅读 · 0 评论 -
|洛谷|分治|P1010 幂次方
http://www.luogu.org/problem/show?pid=1010将十进制数字转为二进制,依靠二进制转十进制的思想分治即可#include#include#include#include#define ms(i,j) memset(i,j, sizeof i);using namespace std;int n;int f(int a){ int原创 2016-09-25 22:05:47 · 568 阅读 · 0 评论 -
|BZOJ 1650|二分|贪心|[Usaco2006 Dec]River Hopscotch 跳石子
BZOJ 1650 Luogu 2855 from: USACO 2006 Dec Sliver(USACO刷题第9题)最小值最大,显然二分。 二分最小值最大距离,然后贪心处理。 这里我们在头尾各增加一个石头,贪心时先从第一个石头开始记为ll,然后往后扫描,当前扫描的石头记为rr,如果st[r]−st[l]<midst[r]-st[l]<mid的话,说明l,rl, r中间的石头就算都移走都不原创 2017-06-15 19:28:01 · 626 阅读 · 0 评论