![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
文章平均质量分 71
Hivoodoo
这个作者很懒,什么都没留下…
展开
-
hdu5454 Excited Database (线段树)
hdu5454 Excited Database线段树区间更新 关键是想到和怎么用比赛是想的二维线段树之类的 苦于不知道怎么斜着更新所以就弃了题解上说的维护a[i]*i 和a[i] 其实是这样的:对于一个矩形的X+Y的值2 3 43 4 54 5 65 6 7x+y 2 3 4 56 7个数 1 2 3 32 1递增原创 2015-09-24 16:22:42 · 1077 阅读 · 0 评论 -
hdu1166
///ST#include #include const int MAXN = 50005;int save[MAXN];struct ST{ int left,right,mid,val;}node[3*MAXN];void make(int l,int r,int num){ node[num].left = l ; node[num].right原创 2014-07-07 14:31:45 · 567 阅读 · 0 评论 -
poj2528(线段树+离散化)
#include #include #include #include #define gl l,(l+r)>>1,num<<1#define gr ((l+r)>>1)+1,r,num<<1|1const int MAXN = 20005;using namespace std;int pa[10005][2],save[MAXN];short dis[10000005];原创 2014-08-01 10:06:05 · 1046 阅读 · 0 评论 -
hdu1575 Tr A
矩阵快速幂取模[code]#include #include using namespace std;int x,n,k,mod=9973;struct Matrix{ int pos[11][11]; friend Matrix operator*(Matrix a,Matrix b) { M原创 2014-05-25 15:00:49 · 486 阅读 · 0 评论 -
POJ3254 Corn fiedls
#include #include #include using namespace std;const int MAXS = 65535,MAXN = 15 , mod = 100000000;int dp[MAXN][MAXS],line[MAXS],map[MAXN],m,n,s;int init(){ memset(dp,0,sizeof(dp)); s=0原创 2014-06-06 21:16:01 · 639 阅读 · 0 评论 -
URAL1297 最大回文字串
URAL 1297本来这道题打算用原创 2014-08-03 16:15:50 · 574 阅读 · 0 评论 -
hdu2222 ac自动机模板题
ac自动机模板原创 2014-09-25 15:50:06 · 474 阅读 · 0 评论 -
hdu5058 BestCoder12 A
水题一枚 10min才A这说明什么..水啊..#include #include #include using namespace std;int a[200],b[200];int main(){ int n; while(scanf("%d",&n)!=EOF) { for(int i=0;i原创 2014-10-05 22:27:24 · 496 阅读 · 0 评论 -
hdu4691 后缀数组求lcp
hdu4691hdu 是不能用 long long 吗..原创 2014-09-29 20:41:39 · 842 阅读 · 0 评论 -
我的ac自动机模板
定义:CH 取const int NODE = 100005,CH = 128;int chd[NODE][CH],val[NODE],f[NODE];int sz;char s[10005];原创 2014-07-25 18:08:11 · 652 阅读 · 0 评论 -
hdu1588
以后遇到这种数原创 2014-07-26 14:27:32 · 873 阅读 · 0 评论 -
哈夫曼编码
哈夫曼编码:哈夫曼是一种用于原创 2014-10-03 17:26:24 · 818 阅读 · 0 评论 -
hdu3117Fibonacci Numbers
写了一天的斐波那契你这是要我死啊原创 2014-07-21 19:28:17 · 639 阅读 · 0 评论 -
poj2828 经典线段树应用 逆序插入
之前用纸正#include #include #include #define lson num<<1#define rson num<<1|1#define gl l,(l+r)>>1,lson#define gr ((l+r)>>1)+1,r,rsonusing namespace std;const int maxn = 200原创 2014-09-06 17:35:56 · 690 阅读 · 0 评论 -
UVALive 5886 The Grille (模拟,数组旋转)
UVALive 5886原创 2014-08-15 20:10:11 · 619 阅读 · 0 评论 -
模板
比赛用 模版原创 2015-09-02 15:15:42 · 843 阅读 · 1 评论 -
SPOJ QTREE Query on a tree 树链剖分
新的树链剖分模板实验原创 2015-10-15 20:16:56 · 769 阅读 · 0 评论 -
模板v2.0.0
v2.0.1原创 2015-10-16 12:55:24 · 724 阅读 · 0 评论 -
hdu5459 Jesus Is Here 递推
hdu5459 Jesus Is Here这道题题解上写的难度系数2 ,但是我们比赛的时候并没有写出来 - -思路:考虑s[n-2]与s[n-1]合并的时候应该需要什么,需要什么我们就求什么例如:s[5]+s[6] 我们把每个cff往后连算一对,假设我们已经把s[5]和s[6]的答案已经求出来了那么s[5]中的2个cff需要连到s[6]中的3个cff上,也就是说s[6]中的原创 2015-09-21 19:28:27 · 1154 阅读 · 2 评论 -
SGU 347 Join the Strings 字符串 排序 思维
SGU 347 Join the Strings题意:把n个字符串连起来使字典序最小思路:题目很简单但是这种思路真的非常重要 考虑已经连接的串字典序是最小的 那么交换任意两个都有可能使字典序变大 那么反向考虑 若使每次交换能使字典序变小 那就可以交换. 这样我们就能写出比较函数, 之后依此排个序就行了#include <bits/stdc++.h>using namespace std原创 2015-10-10 21:25:52 · 450 阅读 · 0 评论 -
HDU 4902 Nice boat 线段树 区间更新
HDU 4902 Nice boat题意:一个序列, 两种操作. 1. 把一个区间全部更改为x2. 把一个区间比x大的数全部修改为gcd(ai,x)思路:lazy tagpushDown的原则是把该节点所有tag都推到子节点所以分情况讨论一下即可 最后到叶节点直接更新数列#include #define lson num<<1#define原创 2015-10-09 15:28:08 · 471 阅读 · 0 评论 -
UESTC 87 Easy Problem With Numbers 线段树区间更新 逆元 分解质因数
UESTC 87 Easy Problem With Numbers线段树 逆元 分解质因数原创 2015-10-09 16:12:54 · 765 阅读 · 0 评论 -
Codeforces Round #271 (Div. 2) F - Ant colony 线段树 + GCD
Codeforces Round #271 (Div. 2) F - Ant colony题意:给定一个序列 有M个提问每次提问求 给定区间中有多少个数 不能整除区间中其他的数 至少有一次.思路:题意转化一下就是求区间中有多少个数能整除其他数.其实这个数就是区间的gcd 于是我们只要在求出区间中这个数的个数即可.对于后者 学习到一个新方法 记原创 2015-10-08 21:16:51 · 586 阅读 · 0 评论 -
Aizu 2450 Do use segment tree (树链剖分)
Aizu 2450 Do use segment tree树链剖分 + 线段树区间更新,就是用线段树求区间最大连续子序列和。求区间最大连续子序列和 的 区间更新 都很好实现。要注意的是最后询问的时候多个区间合并的顺序和正反的问题(就是后面swap那儿)一开始线段树初始化那儿写残了调了好久 - ---------孙大大的板子好长啊 - -原创 2015-10-02 19:46:24 · 676 阅读 · 0 评论 -
Acdream 1019 Palindrome 树状数组 + 字符串hash
Acdream 1019 Palindrome这道题也算是卡了很久了 - -最近才发现有些细节没考虑到。思路是用两颗树状数组维护HASH前缀和 (一正一反两个反向)坑1:线段树不是MLE就是TLE坑2:在查出两个串后 多项式的幂是不一样的(s[3] * 1331 ^ 3 + s[4] * 1331 ^ 4 + s[5] * 1331 ^ 5 和 s[3] * 1331 ^原创 2015-10-03 13:16:12 · 461 阅读 · 0 评论 -
SCU 4438 Censor(KMP / HASH)
过滤敏感词其实就是找子串 就是记录答案的时候不一样用一个类似于栈的容器记录已经匹配过的就行了 遇到匹配成功的出栈n个就行了KMP 为了出栈后能继续之前的匹配 多一个数组记录栈中当前元素的失配位置 - -KMP:#include using namespace std;const int MAXN = 5e6+10;struct KMP{ int f原创 2015-10-01 16:04:55 · 1295 阅读 · 0 评论 -
hdu1757
#include #include #define ff(i,n) for(int i=0;in;i++)int M;struct Mat{ int m[10][10]; friend Mat operator*(Mat a,Mat b) { Mat c; memset(c.m,0,sizeof(c.m)); f原创 2014-07-26 19:49:54 · 676 阅读 · 0 评论 -
hdu3306
推倒是重点#include #include #define ff(i,n) for(int i=0;i<n;i++)const int mod = 10007;struct Mat{ int m[5][5]; friend Mat operator*(Mat a,Mat b) { Mat c原创 2014-07-25 11:51:10 · 783 阅读 · 0 评论 -
hdu4787 在线ac自动机
#include #include #define ff(i,n) for(int i=0;i<n;i++)const int CH = 2,NODE = 100005;int idx(char x){ return x-'0';}int queue[NODE];struct DFA{ int ch[NODE][CH],f[NODE],val[NODE],la原创 2014-07-29 18:26:47 · 1067 阅读 · 0 评论 -
zoj3818 字符串hash 求lcp
学长的代码原创 2014-09-10 15:33:39 · 1132 阅读 · 0 评论 -
Codeforces Round #278(Div2) A B C
比赛的时候写了的三个 结果原创 2014-11-12 20:15:04 · 653 阅读 · 0 评论 -
HDU 5122 树状数组应用
HDU 51222014北京站 J题题意: 给你一个1~N序列 随机选一个数 sort(向上交换 直到要交换的数比他大)问: 最好的情况要sort几次 才能变为升序列大的 在后面的 肯定要先换 不然就会档着后面的数所以用树状数组逆序插入 插入之前先查找 如果出现了比他小的数就ans++#include #include #inc原创 2014-11-30 17:05:56 · 552 阅读 · 0 评论 -
hdu2665/poj2104;poj2761 区间第k小 函数式线段树
题目骗了啊!!什么 kth big number啊!! 明明是区间第k小啊!!-----------------------------------------THE 函数式 线段树 赶紧补基础 - -#include #include #include #define lson st[num].ls#define rson st[num].rsusing n原创 2015-03-11 18:17:44 · 546 阅读 · 0 评论 -
spoj 3267 DQUIRY主席树
主席树的应用 若该位置的数出现过就把该版本的之前的位置-1 再把该版本的该位置+1,否则直接+1查询的时候 有点像zkw线段树那种 - -(哎呀..遭不住了啊..手真是贱啊..总是写错..花了一个小时debug真是菜啊TAT)#include #include #include #define lson st[num].ls#define rson st[n原创 2015-03-12 20:57:19 · 933 阅读 · 0 评论 -
Codeforces Round #296 (Div. 2) + 今天的收获
A:辗转相减转辗转相除 看到这样分的题大概就是跟gcd有关的吧 - -C:切玻璃每次输出最大的面积 只要找到最大的长区域和最大的宽区域就行我用的是线段树存点 但是别人的方法是 set存点 multiset存线段今天的收获(挖坑):rope.pb_ds.nth_element()求中位数是时候看看algorithm了 - -原创 2015-03-18 23:24:58 · 538 阅读 · 0 评论 -
hdu5371 Hotaru's problem (Manacher)
/*像我这种菜鸡果然还是要写写博客,不然有的题目真是过去就过去了的状态。自己在硬盘里的代码也不太好管理,等以后写个软件来搞就好了 - - */题意:给出一个串,找出满足以下条件的最长子串:1. the first part is the same as the thrid part,第一个部分和第三个部分一样。2. the first part and the second原创 2015-08-12 11:47:01 · 475 阅读 · 0 评论 -
hdu4644 BWT(KMP)
这道题首先还原了BWT(T)以后就是KMP了。至于怎么还原 还是网上找的资料(BWT简介)其实吧。。若没有资料感觉也是能找出规律的 首先排序求第一列是肯定的(不觉得和后缀数组构造很像?) 之后比一比就能找出来在不行就根据关系建一建并查集 - -#include using namespace std;const int MAXN = 2000010;st原创 2015-08-27 15:00:38 · 639 阅读 · 0 评论 -
hdu5442 Favorite Donut(最大表示法+KMP)
头一次比赛中遇到最大(最小)表示法的题目因为这个算法可以把字典序最大(最小)的串的最小的起始位置求出来,所以以为正着跑一遍 反着跑一遍就OK了。其实反着跑的时候我是把字符串翻转的,所以求出来的其实是最大的起始位置 - -WA了N次 还以为是题意理解错了 - -#include using namespace std;int n;int f(char wo原创 2015-09-14 16:16:35 · 584 阅读 · 0 评论 -
hdu5443 The Water Problem(线段树)
求区间最大值 写了一颗线段树比赛的时候第一眼就看见了这个 - -但是手速太慢了还是写了8分多钟#include #define lson num<<1#define rson num<<1|1#define gl l,m,lson#define gr m+1,r,rson#define PARA int l=1,int r=n,int num=1usin原创 2015-09-14 16:20:20 · 462 阅读 · 0 评论 -
hdu5444 Elven Postman(SBT)
就是一颗SBT的插入 插入的时候路径。最后询问的时候输出该路径即可。比赛的时候读错题了 以为已经输出过的节点不能再输出了 浪费了很多时间。写了个BFS - -为了省编码时间最后改成求路径也是BFS搞的 - -好菜啊TAT#include using namespace std;const int MAXN=2000;struct Node{ N原创 2015-09-14 16:25:10 · 441 阅读 · 0 评论