自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 POJ-3468 A Simple Problem with Integers

题目链接:https://vjudge.net/problem/POJ-3468 用线段树解决,成段更新时要使用懒惰标记加速 #include #include #include #include #include typedef long long ll; #define maxn 100010 struct node{ int l, r; ll sum; int mi

2017-10-31 16:40:03 125

原创 HDU-1754 I Hate It

题目链接:https://vjudge.net/problem/HDU-1754 用线段树模板来做,把每个节点由储存子节点和改为储存子节点最大值就可以了 #include #include #include #include using namespace std; #define maxn 200000 struct node{ int l, r, sum; int mid

2017-10-30 09:58:32 150

转载 线段树 模板

对于二叉树来说,2n是左子节点,2n+1是右子节点。 建树复杂度为O(n),更新和查询的复杂度都是O(lgn)。 要注意对一个区间进行更新的时候不需要一直更新到底,可以提高效率,需要的时候往下带就行。 #define maxn 50000 struct node{ int l, r, sum; int mid(){ return (l+r)/2; }

2017-10-30 09:34:03 179

转载 树状数组模板

可以快速求区间和等问题,查询更新复杂度都是lgn, 常数比线段树低。 一维树状数组: long long c[100010]; int n; inline int lowbit(int x) { return x & -x; } void update(int idx, int v) { while (idx <= n) { c[idx] += v;

2017-10-30 09:29:01 167

原创 HDU-1166 敌兵布阵

题目链接:https://vjudge.net/problem/HDU-1166 线段树模板题 #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define maxn 5000

2017-10-16 16:42:14 145

原创 UVA-12265 Selling Land

题目链接:https://vjudge.net/problem/UVA-12265 思路参见紫书第八章例题8-19题解 先进行一次预处理,保存每个位置向上延伸的最大高度,之后处理方便很多 #include #include #include #include #include #include #include #include #include #include using namespa

2017-10-16 16:09:25 279

原创 UVA-1442 Cav

题目链接:https://vjudge.net/problem/UVA-1442 思路参见紫书第八章例题8-18题解 #include #include #include #include #include using namespace std; const int N=1e6+10; int a[N],b[N]; int h[N]; int n; int main() { int T;

2017-10-15 18:15:16 196

原创 UVA-1609 Foul Play

题目链接: 参见紫书第八章例题8-17题解 #include #include #include #include #include #include using namespace std; const int N=1024+5; char g[N][N]; int n; bool vis[N]; int main() { while(~scanf("%d",&n)) { for(

2017-10-15 15:00:34 190

原创 UVA-1608 Non-boring sequences

题目链接:https://vjudge.net/problem/UVA-1608 先进行一次预处理,保存每个元素左边和右边最近元素的位置,可以在O(1)时间内判断出某个元素是否唯一 再用分治法检查每个子序列是否non-boring,时间复杂度O(nlogn) #include #include #include #include #include #include #include #inc

2017-10-14 13:39:37 186

原创 UVA-12174 Shuffle

题目链接:https://vjudge.net/problem/UVA-12174 取一个S长度的区间,用区间法扫描一遍序列,判断是否有冲突,把冲突区间对应的解法标0,最多有S种解法,用一个数组标记就行 判断冲突要用一个数组保存区间中各个歌曲的数量,和一个数保存不同歌曲数量,随着区间移动更新 这样时间复杂度为O(n) #include #include #include #include

2017-10-14 11:10:45 204

原创 POJ-1318 Word Amalgamation

题目链接:https://vjudge.net/problem/POJ-1318 用C++中的STL 库解决问题很方便,自己随便写了选择排序处理这些单词 #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; map >

2017-10-14 00:31:38 191

原创 UVA-1607 Gates

题目链接:

2017-10-13 09:37:05 240

原创 UVA-11093 Just Finish it up

题目链接:https://vjudge.net/problem/UVA-11093 直接模拟,枚举出发点,要点是在枚举过程中无法通过P点,则1,2,3...P这些点都不能作为起点,直接跳过就可以 这样时间复杂度为O(n) #include #include #include #include #include #include using namespace std; typedef lon

2017-10-12 16:52:52 133

原创 UVA-12627 Erratic Expansion

题目链接:https://vjudge.net/problem/UVA-12627 找规律,求得求k时间前u行的红气球的个数的递推式,分别求B和A-1的相减即是答案 #include #include #include #include #include #include using namespace std; typedef long long ll; ll p[31]; void ini

2017-10-12 12:25:44 125

原创 UVA-10954 Add All

题目链接:https://vjudge.net/problem/UVA-10954 贪心法,每次选最小的两个相加就可以了 #include #include #include #include #include #include using namespace std; typedef long long ll; const int N=5000+10; int n; int main() {

2017-10-11 20:42:09 140

原创 UVA-714 Copying Books

题目链接:https://vjudge.net/problem/UVA-714 用紫书上的思路,二分法求最小值 #include #include #include #include #include using namespace std; typedef long long ll; const int N=500+5; const ll M=5*1e9; int a[N]; int n,k

2017-10-11 20:20:24 137

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除