随笔分类 -  数据结构

摘要:这个题一看就是树剖的模型但是有一些问题,比如权值的乘机太大了,可能会爆long long一种解决的方法:我们考虑到,v=10^18 我们可以直接将其变为一个特殊的值(例如-1)表示“足够大”,这种情况直接输出0若不够,我们有一个结论: [[a/b]/c] = [a/b... 阅读全文
posted @ 2017-10-30 22:06 扩展的灰(Extended_Ash) 阅读(114) 评论(0) 推荐(0)
摘要:“我有个愿望,我希望穿越一切找到你。”这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)):1、我可以走到(x+1,y)2、我可以走到(x,y+1)3、我可以走到... 阅读全文
posted @ 2017-10-30 22:00 扩展的灰(Extended_Ash) 阅读(110) 评论(0) 推荐(0)
摘要:“我有个愿望,我希望穿越一切找到你。”这是个二维平面世界,平面上有n个特殊的果实,我从(0,0)点出发,希望得到尽量多的果实,但是出于某种特殊的原因,我的运动方式只有三种(假设当前我在(x,y)):1、我可以走到(x+1,y)2、我可以走到(x,y+1)3、我可以走到... 阅读全文
posted @ 2017-10-30 22:00 扩展的灰(Extended_Ash) 阅读(83) 评论(0) 推荐(0)
摘要:(I DO NOT like matrix!!!)首先我们可以暴力 O(nmq)考虑压位(bitset)可以得到60pts正解:我们发现,这些操作如果用边连接起来会形成一颗树(每个节点必然入度为1)那我们考虑用离线方法,将所有的操作连接起来,dfs遍历整颗操作树,每个... 阅读全文
posted @ 2017-10-30 21:46 扩展的灰(Extended_Ash) 阅读(92) 评论(0) 推荐(0)
摘要:(I DO NOT like matrix!!!)首先我们可以暴力 O(nmq)考虑压位(bitset)可以得到60pts正解:我们发现,这些操作如果用边连接起来会形成一颗树(每个节点必然入度为1)那我们考虑用离线方法,将所有的操作连接起来,dfs遍历整颗操作树,每个... 阅读全文
posted @ 2017-10-30 21:46 扩展的灰(Extended_Ash) 阅读(94) 评论(0) 推荐(0)
摘要:夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?这道题我们拷打数据范围后知道应该是折半搜索了但是似乎不是那么好做我们考虑如何搜索,显然每个人有三种状态,在队... 阅读全文
posted @ 2017-10-30 17:00 扩展的灰(Extended_Ash) 阅读(103) 评论(0) 推荐(0)
摘要:夏令营有N个人,每个人的力气为M(i)。请大家从这N个人中选出若干人,如果这些人可以分成两组且两组力气之和完全相等,则称为一个合法的选法,问有多少种合法的选法?这道题我们拷打数据范围后知道应该是折半搜索了但是似乎不是那么好做我们考虑如何搜索,显然每个人有三种状态,在队... 阅读全文
posted @ 2017-10-30 17:00 扩展的灰(Extended_Ash) 阅读(87) 评论(0) 推荐(0)
摘要:一眼就可以看出是贪心,问题就是怎么去操作首先一个很显然的思路就是,开一个小根堆,每次对于一个价格x,如果低于堆顶我们就将其丢进去,否则将堆顶y取出,获得x-y的贡献但是这样是有问题的,我们会发现有反例: 1 4 2 3 用这种方法求出的答案是1但是正确答案应该是2所以... 阅读全文
posted @ 2017-10-30 07:49 扩展的灰(Extended_Ash) 阅读(107) 评论(0) 推荐(0)
摘要:一眼就可以看出是贪心,问题就是怎么去操作首先一个很显然的思路就是,开一个小根堆,每次对于一个价格x,如果低于堆顶我们就将其丢进去,否则将堆顶y取出,获得x-y的贡献但是这样是有问题的,我们会发现有反例: 1 4 2 3 用这种方法求出的答案是1但是正确答案应该是2所以... 阅读全文
posted @ 2017-10-30 07:49 扩展的灰(Extended_Ash) 阅读(127) 评论(0) 推荐(0)
摘要:给你一个1~n的排列A,询问一些区间内有多少对x,y使得A[x]|A[y]我们考虑将所有的询问按照r排序,让后分成两部分计算:1.A[i]|A[j] 且i>j2.A[i]|A[j] 且i#include#include#define N 200020using nam... 阅读全文
posted @ 2017-10-26 21:14 扩展的灰(Extended_Ash) 阅读(130) 评论(0) 推荐(0)
摘要:给你一个1~n的排列A,询问一些区间内有多少对x,y使得A[x]|A[y]我们考虑将所有的询问按照r排序,让后分成两部分计算:1.A[i]|A[j] 且i>j2.A[i]|A[j] 且i#include#include#define N 200020using nam... 阅读全文
posted @ 2017-10-26 21:14 扩展的灰(Extended_Ash) 阅读(117) 评论(0) 推荐(0)
摘要:在麦克雷的面前出现了一个有n*m个格子的矩阵,每个格子用“.”或“#”表示,“.”表示这个格子可以放东西,“#”则表示这个格子不能放东西。现在他拿着一条1*2大小的木棒,好奇的他想知道对于一些子矩阵,有多少种放木棒的方案。(不是填满)我们考虑用前缀和的方式求出答案,这... 阅读全文
posted @ 2017-10-26 20:49 扩展的灰(Extended_Ash) 阅读(142) 评论(0) 推荐(0)
摘要:在麦克雷的面前出现了一个有n*m个格子的矩阵,每个格子用“.”或“#”表示,“.”表示这个格子可以放东西,“#”则表示这个格子不能放东西。现在他拿着一条1*2大小的木棒,好奇的他想知道对于一些子矩阵,有多少种放木棒的方案。(不是填满)我们考虑用前缀和的方式求出答案,这... 阅读全文
posted @ 2017-10-26 20:49 扩展的灰(Extended_Ash) 阅读(102) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(149) 评论(0) 推荐(0)
摘要:更新中//Templates From Extended_Ash/Cooevjnz/JacaJava/Tubbcrafft//To be continued...//Suffix Automationchar str[N]; int s[N][26],mx[N],f... 阅读全文
posted @ 2017-10-25 22:06 扩展的灰(Extended_Ash) 阅读(211) 评论(0) 推荐(0)
摘要:这个题意很简单,就是问你连一条边会增加多少双联通点对按照一般的方法,先用Tarjan缩点化为一颗树,每次连起来就在树上找路径统计答案答案的统计方法,设树上节点i(原图的一个双联通块)的大小为v[i]那么一条路径[x,y]的端点被连接起来,贡献应该是(Σv[i])^2-... 阅读全文
posted @ 2017-10-25 19:01 扩展的灰(Extended_Ash) 阅读(119) 评论(0) 推荐(0)
摘要:这个题意很简单,就是问你连一条边会增加多少双联通点对按照一般的方法,先用Tarjan缩点化为一颗树,每次连起来就在树上找路径统计答案答案的统计方法,设树上节点i(原图的一个双联通块)的大小为v[i]那么一条路径[x,y]的端点被连接起来,贡献应该是(Σv[i])^2-... 阅读全文
posted @ 2017-10-25 19:01 扩展的灰(Extended_Ash) 阅读(154) 评论(0) 推荐(0)
摘要:我们发现前四个操作可以用双向链表维护,而最后一个操作有一个限制就是1#include#include#define N 1000010using namespace std;int l[N],r[N],s[N]; char c[5];int w[N],f[N]={-1... 阅读全文
posted @ 2017-10-24 20:34 扩展的灰(Extended_Ash) 阅读(126) 评论(0) 推荐(0)
摘要:我们发现前四个操作可以用双向链表维护,而最后一个操作有一个限制就是1#include#include#define N 1000010using namespace std;int l[N],r[N],s[N]; char c[5];int w[N],f[N]={-1... 阅读全文
posted @ 2017-10-24 20:34 扩展的灰(Extended_Ash) 阅读(151) 评论(0) 推荐(0)
摘要:额这个题么有一个很关键的点:结点个数依然为2N-1(证明可以看sam的讲稿)不难发现以下性质:区间定位个数+区间所覆盖的节点个数=2*区间长度所以问题变为,一个区间覆盖了多少个节点?我们可以求出所有的节点,然后这个问题就是一个二维偏序计数问题了具体用离线+按照r排序套... 阅读全文
posted @ 2017-10-23 19:49 扩展的灰(Extended_Ash) 阅读(120) 评论(0) 推荐(0)