自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Circus

どんな未来かは 谁もまだ知らない

  • 博客(15)
  • 收藏
  • 关注

原创 【vijos1083】小白逛公园

线段树,最大连续子段和,分治

2016-03-30 14:36:12 698

原创 【tyvj1473】校门外的树3

tyvj1473这道题可以用两个树状数组来做把每次更新的端点分别插入两个树状数组,在查询区间时,之前更新的区间会对当前查询区间产生影响的条件是 更新的末端点大于查询的始端点且更新的始端点小于等于查询的末端点,那么由于如果某次更新的始端点大于查询的末端点,那么这次更新的末端点也大于查询的末端点 因而我们所求的就是 已更新线段的末端点不小于查询的始端点的个数 - 已更新线段的始端点大于查询的末端点

2016-03-29 18:46:48 497

原创 【codevs1082】线段树练习 3

codevs1473模板题,导致发现之前的模板写错了,更新函数maintain中的叶子节点需要特判。#include<cstdio>using namespace std;typedef long long ll;const int maxn = 200000 + 10;ll sumv[3*maxn], a[maxn], addv[3*maxn], v, sum;int n, q, X, Y

2016-03-29 18:30:42 468

原创 编程小技巧

手写读入,据说会快很多,数据量大于200000的时候可以用int read(){ int x = 0, f = 1; char ch = getchar(); while(ch < '0' || ch > '9'){ if(ch == '-') f = -1; } while(ch >= '0' && ch <= '9'){

2016-03-23 15:14:04 385

转载 OI技巧

我的OI技巧,送给广大信息学初学者即将告别我的NOIP了,一直想留下点什么给后来的OIers们,但是鉴于本人还是比较菜的,所以也只有指导指导那些初学者了。书籍推荐:绿书+蓝书(青少年信息学奥林匹克竞赛培训教材 系列)、算法导论、粉书(全国青少年信息学奥林匹克联赛培训教材)、黑书(算法艺术 建议水平高的人看)、新编实用算法(建议水平高的人看)题库推荐:Usaco(强烈推荐,很经典的题库,Nocow有翻

2016-03-23 15:05:40 2016

原创 带权树_weighttree_中后序建树

UVA 548这道题写得就没那么费劲了然而还是要大呼几声“stringstream大法好”#include<cstdio>#include<string>#include<sstream>#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int maxv = 10000 + 10

2016-03-23 14:53:12 485

原创 树的层次遍历_level

UVA 122照着书写得一脸懵逼也是醉了。。。意识到掌握语言的技巧的重要性,sscanf大法好,new大法好。 还有为什么加了remove就不对了。。。爆内存之类的,刘汝佳老师求解释#include<cstdio>#include<cstring>#include<vector>#include<queue>using namespace std;bool failed;//节点类型s

2016-03-22 21:00:26 636

原创 先序构建二叉树_preorder

先序构建二叉树_preorder 【题目描述】: 树的括号表示法: 先将根结点放入一对圆括号中,然后把它的子树按由左而右的顺序放入括号中,而对子树也采用同样方法处理:同层子树与它的根结点用一对圆括号括起来。例如下图可写成如下形式 (1(2(4)())(3(6)()))【输入描述】: 输入只有一个字符串,用括号表示法表示的一颗二叉树。【输出描述】: 输

2016-03-20 16:29:39 969

原创 【tyvj1039】忠诚2

tyvj1039主要是我太愚蠢。。。switch写错了卡了一会儿233#include<cstdio>using namespace std;const int INF=300000+10;int m, n, minv[INF], a[INF];int x, y, _min;int min(int x, int y) {return x < y ? x : y;}void ctb(int o

2016-03-20 13:59:20 515

原创 【vijos1066】弱弱的战壕

vijos1066可以用线段树做的,但是没有必要啊~ 好吧有时间我会写一个线段树的#include<cstdio>#include<algorithm>using namespace std;struct Node { int x, y;}a[15005];int n, c[32010], ans[15005];int lowbit(int x) {return x&-x;}i

2016-03-17 20:03:15 544

原创 模板:树状数组

这个的模板比较简单,但是变化比较多的int lowbit(int x) {return x&-x;}int sum(int x) { int ret = 0; while(x > 0){ ret += C[x]; x -= lowbit(x); } return ret;}void add(int x, int d) { w

2016-03-17 19:24:10 312

原创 【tyvj1038】忠诚

tyvj1038最基础的线段树问题。。都没有修改 然而第一次写空间开小了,简直愚蠢#include<cstdio>using namespace std;const int INF=2700000+10;int m, n, minv[INF], a[INF];int x, y, _min;int min(int x, int y) {return x < y ? x : y;}void

2016-03-17 19:12:01 416

原创 模板:线段树(2)区间修改

好像叫做懒操作来着。。还是叫延迟修改更高大上一点吧//区间修改/*两种操作Add(L ,R ,v):把A[L],A[L+1],...,A[R]的值全部增加vQuery(L ,R )计算子序列A[L],A[L+1],...,A[R]的元素和,最小值和最大值*///修改/查询的范围均为[y1,y2]//维护节点o,它对应区间[L,R]void maintain(int o, int l, int

2016-03-16 20:21:27 437

原创 模板:线段树(1)点修改

有点愚蠢。。。就稍微记录一下吧//线段树记录区间最小值,minv数组为线段树中节点,A数组记录每个点的值int ql,qr;//查询[ql,qr]中的最小值int query(int o,int l,int r){ int m = l + (r-l)/2, ans = INF; if(ql <= l && r <= qr) return minv[o];//当前节点完全包含在查询区

2016-03-15 19:37:57 405

原创 双向循环链表模板

#include <stdio.h>#include <malloc.h>#include <stdlib.h>#include "iostream"using namespace std;#define MAXNUM 0x7fffffff#define MAXSCORE 100000typedef struct LNode { int num;//学号 char na

2016-03-13 14:34:43 398

空空如也

空空如也

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

TA关注的人

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