- 博客(24)
- 收藏
- 关注
转载 [一本通学习笔记] 二分与三分
摘要本节主要关于二分与三分的问题,二分与三分时我们通常会区分整数和浮点而做不同的处理。整数二分最经典的一类,我们通常这样写int L=... , R = ...;while(R>L) { ... if(...) L=mid+1; else R=mid;}cout<<L (-1) <<endl;...
2019-09-25 13:08:00 494
转载 [一本通学习笔记] 贪心问题
#LOJ10000. 「一本通 1.1 例 1」活动安排【题意】数轴上若干线段,选出最多的线段且它们互不相交。【思路】考虑对线段排序。由于要尽可能节约总体右边界,我们以右端点为关键字进行排序,顺序扫描所有区间,如果能将区间加入集合就加入。也可以考虑对端点离散化后,处理出从每个点开始续一个线段能“跳”到的最近位置,然后模拟跳一下即可。这里给出后一种思路的代码。...
2019-09-24 13:35:00 306
转载 二逼平衡树 - 线段树套权值线段树
写这类题目一定要开准数组大小……// luogu-judger-enable-o2#include <bits/stdc++.h>using namespace std;const int N = 200000000;int n,m,t1,t2,t3,t4;int a[30000005],ch[30000005][2],inner_ind,...
2018-03-16 18:24:00 140
转载 可持久化0-1 Trie 简介
Trie树是字符串问题中应用极为广泛的一种数据结构,可以拓展出AC自动机、后缀字典树等实用数据结构。然而在此我们考虑0-1 Trie的应用,即在序列最大异或问题中的应用。这里的异或是指按位异或。按位异或有很多重要的性质。比如可拆分性,每个位可以进行单独处理后线性合并得到最终结果。同时按位异或也是可减的。比如0111 ^ 1010 = 1101, 那么 1101 ^ 1010 ...
2018-03-11 11:23:00 200
转载 HAOI2007 修筑绿化带
水题?火题?关键在于坐标循环边界的确定。 1 // luogu-judger-enable-o2 2 #include <bits/stdc++.h> 3 using namespace std; 4 5 struct Monoque{ 6 int head,tail,q[2005],qt[2005]; 7 Monoque...
2018-03-04 12:54:00 103
转载 BZOJ1067 SCOI2007 降雨量
分类讨论是比较好的,直接脑补容易炸。本来以为是水题,后来发现是神题…… 1 #include<bits/stdc++.h> 2 #define rep(a,b,c) for(int a=b;a<=c;a++) 3 using namespace std; 4 5 int a[5000005],b[5000005],n,m,t1,t2,t3,...
2018-03-04 10:53:00 108
转载 BZOJ3932 CQOI2015 任务查询系统 - 主席树,离散化
记录下自己写错的地方吧1. 区间可能有重复2. 没有出现的坐标也要计入version (因为询问里可能会有) 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int n,m,t1,t2,t3,t4,_s[500005],_e[500005],_p[500005],ind,ch[50000...
2018-03-02 19:35:00 86
转载 BZOJ3531 SDOI2014 旅行 - 树链剖分,主席树
题意:给定一棵树,树上每个点有权值和类型。支持:修改某个点的类型;修改某个点的权值;询问某条链上某个类型的点的和/最大值。点数/类型数/询问数<=100000.分析:树链剖分,对每个类型的点建立线段树(动态开点)。note: 忘记写t_query返回值调半天……莫名其妙地1A代码: 1 #include <bits/stdc++.h>...
2018-03-01 21:36:00 104
转载 Qtree3 - 树链剖分
打完以后才发现写复杂了……算了懒得改了 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int dep[100005],fa[100005][20],size[100005],wson[100005],vis[100005],sid[100005],tid[100005]; 5 i...
2018-03-01 13:06:00 89
转载 Qtree1 - 树链剖分
树剖裸题?(复习练练手) 1 // luogu-judger-enable-o2 2 #include <bits/stdc++.h> 3 using namespace std; 4 5 int n,vis[100005],size[100005],dep[100005],fa[100005][20],val[100005],wson[1...
2018-02-28 21:47:00 98
转载 洛谷1381 单词背诵
我也真是快废了……这个题调了半小时双指针+map 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 map <string,int> mp; 5 int n,m,a[100005],p1,p2,buf[1005],buf0[1005],ans=1e+9,cnt=0; 6 s...
2018-02-15 23:04:00 131
转载 洛谷1368 工艺 - 后缀数组
题意:输入一个串,通过环形变换使它最小。(n<=300000)裸的后缀排序啊!(卡常把命都卡掉了)后缀数组记得开大啊 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int x[1200005],y[1200005],u[1200005],v[1200005],r[120000...
2018-02-15 18:20:00 86
转载 BZOJ4945 NOI2017 游戏 - 2-SAT
这题放在NOI里应该不算难的吧……但是细节比较多,所以写起来会有点**题目限定了道路不能通行某种车辆,也就是可以通行两种车辆我们将这两种车辆分别作为正点和反点进行约束就可以了建图较为容易最后将所有的x枚举一下即可 1 #include <iostream> 2 #include <cstdio> 3 #include <...
2018-02-13 20:59:00 115
转载 BZOJ4698 [SDOI2008] Sandy的卡片 - 后缀数组,二分
题意:求在N个串中都出现的最长子串 的长度很容易想到二分转化为判定性问题。考虑长度M,我们按照长度M进行分组,每个组内进行答案验证,即检查组内是否有N个串的后缀都出现。时间复杂度O(LlogM)其实是个经典题。二分时候记得初始化! 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 ...
2018-02-12 20:45:00 92
转载 Loj515 「LibreOJ β Round #2」贪心只能过样例 - Bitset,Dp
bitset的基本应用了类似可行性背包的dp考虑复杂度O(nmL/64) 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 bitset <1000005> bs,bs0; 5 6 int n,a,b; 7 8 int main(){ 9 ios...
2018-02-11 22:06:00 113
转载 Loj514「LibreOJ β Round #2」模拟只会猜题意 - 模拟
注意初始化即可。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int n,m,s[10005],a[10005],t1,t2,t3,t4; 5 6 int main(){ 7 memset(a,0x80,sizeof a); 8 ios::sync_wi...
2018-02-11 21:43:00 146
转载 后缀数组模板(倍增)
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 char str[1000005]; 5 int x[1000005],y[1000005],u[1000005],v[1000005],r[1000005],o[1000005],m=256,n; 6 7 int main(){ ...
2018-02-11 20:19:00 61
转载 USACO06DEC 牛奶模式
题意:求最长的可重叠的 K重复子串 的长度考虑二分长度s,转化为验证性问题。对SA进行分组。保证组内Height最小为s。这样在组内RMQ就可以任意了,因为RMQ一定是大于S的。只要组内元素个数大于等于K就是可行解。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 struct SA...
2018-02-11 20:01:00 229
转载 BZOJ3680 JSOI2004 平衡点 - 随机/近似算法
迭代乱搞了下就过了……#include <bits/stdc++.h> using namespace std;double x[10005],y[10005],w[10005];double xm,ym,wt,k,lambda=0.9;int n;const double ox[5]={0,1,0,-1,0},oy[5]={0,0,1,0...
2018-02-10 23:25:00 102
转载 loj6278 数列分块入门题2
题意:支持区间加,询问区间中元素排名维护两个域。一个域维护原序列,一个域维护快内排序序列。每次修改后更新快内排序序列。修改时O(sqrt(n)log(sqrt(n)))询问时O(sqrt(n)log(sqrt(n)))大概是这个量级吧 1 #include <bits/stdc++.h> 2 using namespace std; 3 ...
2018-02-10 22:34:00 98
转载 loj6277 数列分块入门题1
裸题分块。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int a[100005],b[10005],n,m,t1,t2,t3,t4,sq; 5 6 int main(){ 7 ios::sync_with_stdio(false); 8 cin>&g...
2018-02-10 20:57:00 87
转载 Codeforces 383C Propagating tree, 线段树, 黑白染色思想
按深度染色,奇深度的点存反权值。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 vector <int> g[500005]; 5 int t1,t2,t3,seq[500005],a[1000005],s[500005],vis[500005],ind,n,m,src[500...
2018-02-10 20:27:00 116
转载 BZOJ2190 SDOI2008 仪仗队 gcd,欧拉函数
题意:求从左下角能看到的元素个数引理:对点(x,y),连线(0,0)-(x,y),元素个数为gcd(x,y)-1(中间元素)即要求gcd(x,y)=1求gcd(x,y)=1的个数转化为2 \sum_(i=1)^(n-1) \phi(i) - 1 (思考如何转化)感性分析,理性计算 1 #include <bits/stdc++.h> 2 usi...
2018-02-10 20:25:00 132
转载 BZOJ1864 [ZJOI2006] 三色二叉树
给出一颗二叉树,用红绿蓝进行染色,要求二叉树三角形的颜色不同,求绿色节点的数目的最大最小值。给出树的方法比较特殊,因此直接递归即可,无须建图。 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 char str[1000005]; 5 int pin; 6 7 int sw(in...
2018-01-14 20:48:00 118
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人