摘要: 考虑树状数组区间修改(只对其子树的答案有影响)点查询,每个点记录的是它到根路径上的权值异或和。答案时query(L)^query(R)^a[lca]。这种方法在支持区间加法、减法的树上询问的时候可以避免树链剖分。可能爆栈,考虑手动开栈。(诶诶Tarjan预处理lca的时候怎么没手动开栈?不要在意^_... 阅读全文
posted @ 2015-03-09 21:26 AutSky_JadeK 阅读(464) 评论(0) 推荐(0) 编辑
摘要: 预处理出每个点到根节点的土路数,插到一个树状数组里,然后每次修改只会对子树中的节点造成影响,于是相当于区间修改、点查询了。#includeusing namespace std;#define N 250001int n,en,v[N<<1],next[N<<1],first[N],m;void A... 阅读全文
posted @ 2015-03-09 14:48 AutSky_JadeK 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 裸题,树状数组区间修改+单点查询。当然要稍微讨论一下链的左右端点是否修改的情况咯。#include#include#includeusing namespace std;#define N 300001int en,v[Nsiz[son[U]]) son[U]=v[i]; ... 阅读全文
posted @ 2015-03-09 13:53 AutSky_JadeK 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 离线后以宗教为第一关键字,操作时间为第二关键字排序。块状树,线下ac,线上tle……#include#include#include#include#includeusing namespace std;queueq;int f,c;inline void R(int &x){ c=0;f=1... 阅读全文
posted @ 2015-03-09 07:57 AutSky_JadeK 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 裸题,但是因为权在边上,所以要先把边权放到这条边的子节点上,然后进行链更新/查询的时候不能更新/查询其lca。#include#include#includeusing namespace std;#define N 100001#define BN 320#define INF 214748364... 阅读全文
posted @ 2015-03-08 17:33 AutSky_JadeK 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 裸题,直接上。复杂度O(n*sqrt(n)*log(n))。//Num[i]表示树中的点i在函数式权值分块中对应的点//Map[i]表示函数式权值分块中的点i在树中对应的点#include#include#includeusing namespace std;#define N 80001#defi... 阅读全文
posted @ 2015-03-08 11:11 AutSky_JadeK 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 先把整个矩阵处理成b[n][m-K+1]、c[n][m-K+1]大小的两个矩阵,分别存储每行每K个数中的最大、最小值,然后再通过b、c处理出d、e分别表示K*K大小的子矩阵中的最大、最小值即可。单调队列暴力。#include#includeusing namespace std;#define N ... 阅读全文
posted @ 2015-03-07 09:47 AutSky_JadeK 阅读(196) 评论(0) 推荐(0) 编辑
摘要: 用两个单调队列维护序列中的最大值和最小值即可。poi~#include#includeusing namespace std;int m,n,head[2]={1,1},tail[2]={1,1},q[2][3000001],a[3000001],ans;int main(){ scanf("%d%... 阅读全文
posted @ 2015-03-07 07:47 AutSky_JadeK 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 枚举每个数,计算以其为次大数的最大区间,显然,只需要用这个区间的答案 对 答案进行更新即可。找到每个数右侧、左侧第1、2个比它大的数,然后分类讨论一下即可。找到的过程中把数sort以后,从大到小把它们的位置插入set,稍微维护一下即可。#include#include#includeusing na... 阅读全文
posted @ 2015-03-07 06:53 AutSky_JadeK 阅读(187) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2015-03-06 15:00 AutSky_JadeK 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 对原序列取前缀异或值,变成pre[1...N],然后询问等价于求max{a[N]^x^pre[i]}(l-1#define INF 2147483647#define N 300001#define MAXBIT 25int root[N=0;--i) { int Bit=(... 阅读全文
posted @ 2015-03-06 11:30 AutSky_JadeK 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 总算找到个能看懂的了,orz Lavender。#define INF 2147483647#define N 100001#define MAXBIT 31int root[N],ch[N*(MAXBIT+1)][2],sz[N*(MAXBIT+1)],tot;int query(int L,in... 阅读全文
posted @ 2015-03-04 16:52 AutSky_JadeK 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 先把两个矩阵全都mod3。S[i][j][k]表示第i(0/1)个矩阵的行/列的第k位是不是j(1/2)。然后如果某两个矩乘对应位上为1、1,乘出来是1;1、2:2;2、1:2;2、2:1。然后分这四种情况把bitset and 起来,然后用count()数一下个数,计算下对答案矩阵该位置的贡献即可... 阅读全文
posted @ 2015-03-03 21:00 AutSky_JadeK 阅读(122) 评论(0) 推荐(0) 编辑
摘要: 模板题。S[i][j]表示i是否存在于第j个集合里。妈蛋poj差点打成poi(波兰无关)是不是没救了。#include#includeusing namespace std;int n,m,x,y;bitsetS[10001];int main(){ scanf("%d",&n); for(int ... 阅读全文
posted @ 2015-03-03 20:11 AutSky_JadeK 阅读(121) 评论(0) 推荐(0) 编辑
摘要: C++ bitset类的使用与简介 有些程序要处理二进制位的有序集,每个位可能包含的是0(关)或1(开)的值。位是用来保存一组项或条件的yes/no信息(有时也称标志)的简洁方法。标准库提供了bitset类使得处理位集合更容易一些。要使用bitset类就必须要包含相关的头文件。在本书提供的例子中,假... 阅读全文
posted @ 2015-03-03 18:50 AutSky_JadeK 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 枚举每个文章里已经在Trie中被标记为可能是分割处的字符,然后再从此处跑Trie,继续向后标记。由于单词数很少,因此复杂度可以接受,O(n*m*Len)。#include#includeusing namespace std;int n,m,L;char s[1024*1024+100];int c... 阅读全文
posted @ 2015-03-02 16:30 AutSky_JadeK 阅读(219) 评论(0) 推荐(0) 编辑
摘要: f(i)=min{f(j)+(D(j)using namespace std;#define N 1000001struct Point{int x,y;};bool operator =b.y;}int n,m,K,q[N];Point dp[N];int main(){ scanf("%d",&... 阅读全文
posted @ 2015-02-28 20:46 AutSky_JadeK 阅读(171) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;#define N 1000001int n,K,a[N],head=1,tail=1,q[N],ans[N];int main(){ scanf("%d%d",&n,&K); for(int i=1;i=head) --tail; q[... 阅读全文
posted @ 2015-02-28 16:31 AutSky_JadeK 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 因为所有点权都是正的,所以对每个结点u来说,每条从根到它的路径上只有最多一个结点v符合d(u,v)=S。所以我们可以边dfs边把每个结点的前缀和pre[u]存到一个数据结构里面,同时查询pre[u]-S是否存在。数据结构用set、hashtable(随便卡)(需要支持删除,由于总是删掉最后一个,因此... 阅读全文
posted @ 2015-02-18 15:18 AutSky_JadeK 阅读(198) 评论(0) 推荐(0) 编辑
摘要: 模板题。#include#include#include#includeusing namespace std;#define MAXN 20001#define INF 2147483647typedef pair Point;int n,K,ans,T[3];int v[MAXN<<1],w[M... 阅读全文
posted @ 2015-02-16 09:08 AutSky_JadeK 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 同poj1741。换了个更快的姿势,不会重复统计然后再减掉什么的啦~#include#include#includeusing namespace std;#define MAXN 40001#define INF 2147483647typedef pair Point;int n,K,ans;i... 阅读全文
posted @ 2015-02-15 20:35 AutSky_JadeK 阅读(192) 评论(0) 推荐(0) 编辑
摘要: 给nlog2n随便过的跪了,不得已弄了个哈希表伪装成nlogn(当然随便卡,好孩子不要学)……不过为啥哈希表的大小开小点就RE啊……?必须得超过数据范围一大截才行……谜#include#include#includeusing namespace std;int f,c;inline void R(... 阅读全文
posted @ 2015-02-15 20:26 AutSky_JadeK 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 思路比较裸,但是要把答案存到哈希表里面,这里需要一定技巧,否则会被K=1且点权全是1的数据卡飞。预处理乘法逆元。TLE了一天。换了种点分治的姿势……#pragma comment(linker,"/STACK:102400000,102400000")#include#include#include... 阅读全文
posted @ 2015-02-15 10:39 AutSky_JadeK 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 求树上点权积为立方数的路径数。显然,分解质因数后,若所有的质因子出现的次数都%3==0,则该数是立方数。于是在模意义下暴力统计即可。当然,为了不MLE/TLE,我们不能存一个30长度的数组,而要压成一个long long。存储状态用map即可,貌似哈希表可以随便卡掉……?手动开栈……当然这样有可能M... 阅读全文
posted @ 2015-02-14 09:08 AutSky_JadeK 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 点分治好题。①手动开栈。②dp预处理每个点被哪个市场控制,及其距离是多少,记作pair数组p。③设dis[u].first为u到重心s的距离,dis[u].second=u,到在统计的时候,若dis[u] 3 #include 4 #include 5 #include 6 using na... 阅读全文
posted @ 2015-02-13 15:22 AutSky_JadeK 阅读(322) 评论(0) 推荐(0) 编辑
摘要: 三道题都很类似。给出1741的代码#include#include#includeusing namespace std;#define MAXN 10001typedef pair Point;int n,K,ans;int v[MAXN<<1],w[MAXN<<1],first[MAXN],ne... 阅读全文
posted @ 2015-02-11 12:42 AutSky_JadeK 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 3.千石抚子的三维积木(nadeko.cpp/in/out)3.5s512MB10*10=100分p.s.本题含有一些(本人)黑历史,请自动过滤题目背景…==自从蛇切绳被搞掉之后,抚子认识到普通的蛇其实是很和谐的东西。于是她开始养蛇,有天在家无聊就开始用蛇堆积木。由于她是驯蛇高手所以它们都很听话堆上... 阅读全文
posted @ 2015-02-10 07:30 AutSky_JadeK 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 如题。#include#include#includeusing namespace std;#define N 200001#define BN 451int n,m,a[N],b[N],sumv[BN],l[N],num[N],num2[N],Lim,siz[BN],anss[N];struct... 阅读全文
posted @ 2015-01-27 16:22 AutSky_JadeK 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 学习这位神犇的:http://blog.csdn.net/jiangyuze831/article/details/41476865注意:①排序时第一关键字是左端点所在块编号(块状树),第二关键字是右端点dfs序。②维护的当前链不能包括lca(l,r),但最后要计算上lca(l,r)的答案。③对l-... 阅读全文
posted @ 2015-01-25 13:37 AutSky_JadeK 阅读(195) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;int T,n,m,x,y;long long sum[100001],ans,d[100001];int main(){ scanf("%d",&T); for(;T;--T) { scanf("%d%d",&n,&m); f... 阅读全文
posted @ 2015-01-25 07:31 AutSky_JadeK 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 对一棵树黑白染色一定符合题意。图一定有生成树。因此,仅有一个孤立节点的联通块不合题意。DFS。#includeusing namespace std;int n,m,en,x,y,v[1000001],first[500001],next[1000001],cnt;bool vis[500001];... 阅读全文
posted @ 2015-01-25 07:29 AutSky_JadeK 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 类似某noip国王游戏。考虑交换两个题目的顺序,仅会对这两个题目的贡献造成影响。于是sort,比较时计算两个题目对答案的贡献,较小的放在前面。#include#includeusing namespace std;typedef long long ll;struct Point{ll T,K;}a... 阅读全文
posted @ 2015-01-24 21:29 AutSky_JadeK 阅读(145) 评论(0) 推荐(0) 编辑
摘要: #includeusing namespace std;int T=0;long long h,a,b,k;int main(){ freopen("bzoj3856.in","r",stdin); while(1) { scanf("%lld%lld%lld%lld",&h,&a,... 阅读全文
posted @ 2015-01-24 18:42 AutSky_JadeK 阅读(100) 评论(0) 推荐(0) 编辑
摘要: 不带修改主席树裸题莫队+权值分块裸题。复杂度O(m*sqrt(n))。P.S.题目描述坑爹,第二个数是权值的范围。#include#include#includeusing namespace std;#define N 300001#define M 10001int f,c;inline voi... 阅读全文
posted @ 2015-01-24 15:00 AutSky_JadeK 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 由于子弹的轨迹是可逆的,因此我们可以枚举所有敌人的位置,然后统计他们能打到的位置,这些位置也就是能打到他们的位置咯。O(n*k)。#includeusing namespace std;int n,m,a[101][101],x,y,ans;int main(){ scanf("%d%d",&n,&... 阅读全文
posted @ 2015-01-24 14:07 AutSky_JadeK 阅读(186) 评论(0) 推荐(0) 编辑
摘要: 引用题解:http://hzwer.com/5153.html当然,二分可以换成哈希表。#include#include#includeusing namespace std;#define MOD 2501typedef unsigned long long ull;const ull seed1... 阅读全文
posted @ 2015-01-24 11:41 AutSky_JadeK 阅读(211) 评论(0) 推荐(0) 编辑
摘要: 引用题解:http://blog.csdn.net/popoqqq/article/details/41084047#include#includeusing namespace std;typedef unsigned long long ull;int n,m,a,b,q;const ull s... 阅读全文
posted @ 2015-01-24 11:11 AutSky_JadeK 阅读(453) 评论(0) 推荐(0) 编辑
摘要: #include#includeusing namespace std;typedef vector::iterator VER;#define MOD 100007vectorv[MOD];int n,m,t;int main(){ scanf("%d%d",&n,&m); for(int i=1... 阅读全文
posted @ 2015-01-23 22:04 AutSky_JadeK 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 二分答案,然后搞出hash值扔到哈希表里。期望复杂度O(n*log(n))。next数组版哈希表#include#includeusing namespace std;typedef unsigned long long ull;const ull seed=29;#define MOD 2007u... 阅读全文
posted @ 2015-01-23 21:34 AutSky_JadeK 阅读(177) 评论(0) 推荐(0) 编辑
摘要: #include#include#includeusing namespace std;#define N 50001#define SQRT 227int n,m,xs[N],ys[N],ks[N],op[N],en,ma[100001],en2,a[100001];int num[N],l[SQ... 阅读全文
posted @ 2015-01-21 17:34 AutSky_JadeK 阅读(206) 评论(0) 推荐(0) 编辑
TVアニメ「Charlotte(シャーロット)」公式サイト TVアニメ「Charlotte(シャーロット)」公式サイト