heheda_is_an_OIer
码龄7年
  • 109,297
    被访问
  • 181
    原创
  • 1,535,501
    排名
  • 40
    粉丝
  • 0
    铁粉
关注
提问 私信
IP属地以运营商信息为准,境内显示到省(区、市),境外显示到国家(地区)
IP 属地:北京市
  • 加入CSDN时间: 2015-11-15
博客简介:

heheda_is_an_OIer的博客

查看详细资料
个人成就
  • 获得19次点赞
  • 内容获得15次评论
  • 获得24次收藏
创作历程
  • 2篇
    2017年
  • 76篇
    2016年
  • 103篇
    2015年
成就勋章
TA的专栏
  • 总结
    11篇
  • 数据结构
    7篇
  • 博弈论
    1篇
  • dp
    22篇
  • 计算几何
    2篇
  • stl
    3篇
  • 图论
    11篇
  • 贪心
    4篇
  • 模拟
    1篇
  • 树
    4篇
  • 网络流
    6篇
  • 数论
    15篇
  • 字符串
    7篇
  • 杂文
    2篇
  • 乱搞
    5篇
  • 哈希表
  • 树链剖分
  • 字符串 二分
    1篇
  • 最近
  • 文章
  • 资源
  • 问答
  • 帖子
  • 视频
  • 课程
  • 关注/订阅/互动
  • 收藏
搜TA的内容
搜索 取消

指针式线段树 bzoj 1798

学习了指针,重写bzoj 1798数组本质是指针,所以可以buid(tr,1,n)一个Tree *tr指针,tr[1]指的是这个指针指向的下一个位置,不是开数组的那个tr,所以都改成了root#include#include#include#include#define ll long long#define inf 1e9#define md#define N 100
原创
发布博客 2017.01.22 ·
966 阅读 ·
1 点赞 ·
0 评论

c++ primer 学习笔记(一)

2.1 基本内置类型2.1.1算数类型short 16位 long 32位 long long 64位(c++11新定义)wchar_t 用于确保可以存放机器最大扩展字符集中任意一个字符char16_t char32_t 为Unicode服务除bool型和扩展的字符型以外,其他整形可以划分为带符号的和无符号的字符型被分为 char/signed char/unsigned
原创
发布博客 2017.01.20 ·
621 阅读 ·
0 点赞 ·
0 评论

bzoj 2989&&4170: 数列

首先所谓的“可持久化” 就是加入一个新的元素把看成平面上的一个点,graze函数就是曼哈顿距离求点集中曼哈顿距离≤k的,自然要转换为切比雪夫距离的一个矩阵内点的个数然后CDQ分治或者强上数据结构注意矩阵y坐标取min要和1算,因为查询的时候是L-1,而树状数组不允许查询负数位置#include#include#include#include #define ll lon
原创
发布博客 2016.06.10 ·
591 阅读 ·
0 点赞 ·
0 评论

4556: [Tjoi2016&Heoi2016]字符串

字符串题不会做先想能不能把字符串反过来把字符串反序,建立后缀自动机,利用线段树合并算出每个位置的right集二分答案,用树上倍增找到对应的节点,看是否有[a+mid-1,b]中的数在right集中#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-10#define m
原创
发布博客 2016.06.09 ·
676 阅读 ·
0 点赞 ·
0 评论

bzoj 3825: [Usaco2014 Dec]Marathon

查询的答案就是完整走过所有点的距离-少走一个点可以减少的距离的最大值。所以线段树维护区间和,还有如果不走每个点,可以少走多少路然后答案就是sum[l+1,r]-max[l+1,r-1]没写%lld wa了一发#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-1
原创
发布博客 2016.05.22 ·
431 阅读 ·
0 点赞 ·
0 评论

bzoj 4282: 慎二的随机数列

结论:所有的未知数都可以出现在最优解中。所以,把每个确定的数减去它前面未知数的个数,计算lis就行膜拜了一下popoqqq大爷优美的lis#include#include#include#include #define ll long long#define inf 1000000007#define eps 1e-10#define mdusing namespace std
原创
发布博客 2016.05.22 ·
604 阅读 ·
0 点赞 ·
0 评论

bzoj 4591: [Shoi2015]超能粒子炮·改

S(n,k)=S(n/p,k/p-1)*S(n%p,p-1)+C(n/p,k/p)*S(n%p,k%p)意思是根据lucas定理对于i/p忘记处理sum[0][?]了#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 250
原创
发布博客 2016.05.18 ·
955 阅读 ·
0 点赞 ·
0 评论

bzoj 4436: [Cerc2015]Kernel Knights

T集表示已经确定不在S集内的点。对于一个点,如果不存在非T集的点挑战它,那么它一定在S集中。如果存在一个挑战它的点在S集中,那么它一定在T集中。用类似拓扑排序的方法,首先找出所有不被挑战的点,归入S,把这个点挑战的点y归入T集,然后y挑战的点的度数-1.最后剩下一些点在环中,满足每个点都被别人挑战,也挑战别人,因为是二分图,所以保证是偶环,所以把#include
原创
发布博客 2016.05.18 ·
517 阅读 ·
0 点赞 ·
0 评论

bzoj 4530: [Bjoi2014]大融合

先说一下我的做法:没有强制在线,先建出来这棵树,然后发现x到它父亲的边的答案是 (目前连通块大小-x子树的大小)*(x子树的大小),这个子树大小也是指目前连通块内的子树大小,子树大小可以用线段树维护dfs序,进行线段树合并得到。子树size也可以用树链剖分做。#include#include#include#include #define ll long long#define inf
原创
发布博客 2016.05.18 ·
694 阅读 ·
0 点赞 ·
0 评论

bzoj 4103: [Thu Summer Camp 2015]异或运算

水题,查询由ai^bj组成的矩形的子矩形内的k大值,行数和询问数都很少,所以可以枚举行数,跑可持久化字典树。注意不能 int l=0,r=2147483674,mid=(l+r)>>1,这个会爆int,开unsigned int 就行。还有,写可持久化主席树又忘了ch[i][0]=ch[pre][0], ch[i][1]=ch[pre][1]#include#include#i
原创
发布博客 2016.05.18 ·
489 阅读 ·
0 点赞 ·
0 评论

bzoj 4104: [Thu Summer Camp 2015]解密运算

暴力做法: 已知长度为l的所有子串,可以推出长度为l+1的所有子串,比如样例已知长度为1的子串是?AAAABC,而以这些字符开头的字符串的结尾分别是AAAC?AB,而这些字符也是写在对应字符前面的字符,所以得到了子串{A?,AA,AA,CA,?A,AB,BC},然后再用相似的办法推出剩下的子串,但这样太慢了。我们只需要记录那个以?开头的字符串,每次这个字符串前面会加上一个新的字符,然后得知了这
原创
发布博客 2016.05.18 ·
720 阅读 ·
0 点赞 ·
0 评论

bzoj 4592: [Shoi2015]脑洞治疗仪

线段树维护最长连续段的长度,然后暴力修改,暴力查询,这个复杂度应该是nlogn的。然而我调了好久。。。#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 200010using namespace std;struct Tr { i
原创
发布博客 2016.05.17 ·
943 阅读 ·
0 点赞 ·
0 评论

bzoj 4590: [Shoi2015]自动刷题机

刷题数是关于n单调递减的函数,所以可以二分答案判断。无解有两种情况,一种是无论n是多少都无法ac这么多题,一种是不存在n恰好ac这么多题,判断一下就好。#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 100010using
原创
发布博客 2016.05.17 ·
656 阅读 ·
0 点赞 ·
0 评论

bzoj 4597: [Shoi2016]随机序列

对于一个表达式序列 ****+??????? 一定有一个表达式序列 ****-??????? 与它相加为0,所以对答案有贡献的是第一个非*之前的序列乘上这个序列出现的次数。对于前i个数组成的序列,出现次数=2*3^(n-i-1),前n个数组成的序列出现次数为1.所以用线段树维护这个式子的值就好了,具体实现看代码#include#include#include#include #defi
原创
发布博客 2016.05.17 ·
680 阅读 ·
0 点赞 ·
0 评论

bzoj 4571: [Scoi2016]美味

如果没有加法,这就是一道水水的可持久化trie,有了加法,我们就要用可持久化权值线段树,然后按位贪心,查询变成一个区间内是否存在数字。#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 4000010using namespace
原创
发布博客 2016.05.17 ·
882 阅读 ·
0 点赞 ·
0 评论

bzoj 3569: DZY Loves Chinese II

神题一道。将所有边分为树边和非树边,把所有非树边随机一个权值,然后树边的权值是所有覆盖它的非树边的权值的异或和。如果一个边集的存在一个非空子集的异或和为0,那么树是不连通的。原因是:(1)删除了一条树边和所有覆盖它的非树边,那么这些边的异或和为0(2)一个点的出边只有树边,且删除了所有与它相连的树边,因为这些树边的异或和一定存在一对相同的,所以也对。然后就是如何搞出树边的权
原创
发布博客 2016.05.17 ·
665 阅读 ·
0 点赞 ·
0 评论

bzoj 2708: [Violet 1]木偶

最优策略一定可以把整个序列分成几段,每一段都是像这样子的红线表示不可匹配。所以可以排序后dp[i]表示前i个数最多删掉多少=max(f[j-1]+cal(j,i)) cal(j,i)表示j到i最多删掉多少个。注意是判断红线相连的两个是否能够匹配,而不是第i个和第i+k个能否匹配#include#include#include#include #define ll lon
原创
发布博客 2016.05.11 ·
748 阅读 ·
0 点赞 ·
0 评论

bzoj 3702: 二叉树

发现子树中如何排列对于兄弟节点的逆序对是没有影响的,所以统计兄弟节点之间交换和不交换的逆序对数,取较小值即可。用线段树合并时直接计算逆序对的方式可以搞到nlogn。#include#include#include#include #define ll long long#define inf 1e9#define eps 1e-8#define md#define N 200010
原创
发布博客 2016.05.11 ·
452 阅读 ·
0 点赞 ·
0 评论

bzoj 4000: [TJOI2015]棋盘

矩乘,题意坑爹,那个第一行是中间那一行,所以记录一行的状态就可以了。f[S]表示最后一行状态为S的方案数,然后暴力看能否转移。#include#include#include#include #define ll long long#define ui unsigned int #define inf 1e9#define eps 1e-8#define md#define N 70u
原创
发布博客 2016.05.11 ·
497 阅读 ·
0 点赞 ·
0 评论

bzoj 4569: [Scoi2016]萌萌哒

一种会T的做法:发现并查集加边只会发生n-1次,所以只要一个较小的复杂度完成这n-1次加边即可启发式合并维护并查集,每次暴力修改所有属于小区间的fa值,用vector记录每个连通块内的数,暴力在线段树内修改hash值,复杂度logn,需要进行nlogn次线段树上hash把所有的fa hash起来,然后二分找位置,每次寻找log^2,需要进行On次#include#inclu
原创
发布博客 2016.05.11 ·
897 阅读 ·
0 点赞 ·
0 评论
加载更多