自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

不来也不去的一只失忆蝴蝶

曾迷途才怕追不上满街赶路人

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

原创 Informatics Training

题目描述数据结构对每个小组用两个数据结构维护,分别维护体力和刷题量。 对于合并的操作,可以启发式合并。 单个修改直接在对应的数据结构里改。 小组修改可以通过打tag实现,这个tag只有在这个小组被并进另一个小组的时候才下传。注意这个tag是永久化的,因此并进另一个小组时,要把它们对另一个小组的tag进行反作用。 淘汰人可以在对应数据结构进行修改。 为了方便做考核操作,每个小组维护出刷题量最

2017-04-21 15:23:15 421

原创 Travel Plan

题目描述DP按dfs序处理出前缀和后缀背包数组。 设的是f[v]表示纪念品价格的和至少为v所需的最小支出。 询问时two pointer即可。 关于空间可以用unsigned int。 然后我被卡常了???#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for

2017-04-21 15:13:37 554

原创 [bzoj4860]树的难题

题目大意点分治点剖。 每颗子树按最上面那条边的颜色排序。 顺序扫,同颜色的用一颗线段树,其他也用一颗线段树。 每扫过一个颜色合并一下两颗线段树。 这个方法比单调队列不知道低到哪里去了。#include<cstdio>#include<algorithm>#define max(a,b) (a>b?a:b)#define fo(i,a,b) for(i=a;i<=b;i++)using

2017-04-21 15:04:31 1486 2

原创 [bzoj2169]连边

题目描述有N个点(编号1到N)组成的无向图,已经为你连了M条边。请你再连K条边,使得所有的点的度数都是偶数。求有多少种连的方法。要求你连的K条边中不能有重边,但和已经连好的边可以重。不允许自环的存在。求连边的方法数。我们只关心它模10007的余数。DP设f[i,j]表示无顺序的连了i条边,有j个度数为奇数的点。 f[i,j]=1i(f[i−1,j−2]∗C2n−j+2+f[i−1,j]∗j∗(n−

2017-04-20 17:25:20 1046

原创 [bzoj4861]魔法咒语

题目描述瞎做显然是AC自动机dp。 小的直接dp大的矩阵乘法。#include<cstdio>#include<algorithm>#include<cstring>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;const int maxn=200+10,mo=1000000007

2017-04-20 16:53:04 878

原创 [bzoj4828][HNOI2017]大佬

题目描述人们总是难免会碰到大佬。他们趾高气昂地谈论凡人不能理解的算法和数据结构,走到任何一个地方,大佬的气场就能让周围的人吓得瑟瑟发抖,不敢言语。你作为一个OIER,面对这样的事情非常不开心,于是发表了对大佬不敬的言论。大佬便对你开始了报复,你也不示弱,扬言要打倒大佬。 现在给你讲解一下什么是大佬,大佬除了是神犇以外,还有着强大的自信心,自信程度可以被量化为一个正整数C(1<=C<=10^8),想

2017-04-19 22:30:16 1445

原创 [bzoj4826][HNOI2017]影魔

题目描述影魔,奈文摩尔,据说有着一个诗人的灵魂。事实上,他吞噬的诗人灵魂早已成千上万。千百年来,他收集了各式各样 的灵魂,包括诗人、牧师、帝王、乞丐、奴隶、罪人,当然,还有英雄。每一个灵魂,都有着自己的战斗力,而影魔,靠 这些战斗力提升自己的攻击。奈文摩尔有 n 个灵魂,他们在影魔宽广的体内可以排成一排,从左至右标号 1 到 n。 第 i个灵魂的战斗力为 k[i],灵魂们以点对的形式为影魔提供

2017-04-19 16:22:09 1356

原创 [bzoj4825][HNOI2017]单旋

题目描述H 国是一个热爱写代码的国家,那里的人们很小去学校学习写各种各样的数据结构。伸展树(splay)是一种数据 结构,因为代码好写,功能多,效率高,掌握这种数据结构成为了 H 国的必修技能。有一天,邪恶的“卡”带着 他的邪恶的“常数”来企图毁灭 H 国。“卡”给 H 国的人洗脑说,splay 如果写成单旋的,将会更快。“卡”称 “单旋 splay”为“spaly”。虽说他说的很没道理,但还

2017-04-19 16:04:38 1140

原创 GDOI冲刺训练模拟赛第二套总结

DAY 1这次选择了使用新策略。 上来觉得t130好拿在,直接写了,另30应该能拿,回来再想。 t2看起来有点难,但是暴力打点可以很多分。 t3直接看出来FFT可做,暴力也好写先写了。 t4不是很会。 接着就去写了t3,然后拍没什么问题。 然后去思考了下t1,不是很会,想了想另30分,发现是简单的扫描线+数据结构,然后写了之后和前30对拍了一下。 然后写了t2暴力,可以跑40分,n=7

2017-04-18 16:08:44 579

原创 奶酪

题目描述CJY很喜欢吃奶酪,于是YJC弄到了一些奶酪,现在YJC决定和CJY分享奶酪。 YJC弄到了n-1块奶酪,于是他把奶酪挂在了一棵n个结点的树上,每根树枝上挂一块奶酪,每块奶酪都有重量。 YJC和CJY决定这样分奶酪:首先砍掉一根树枝,把树分成两部分,每人取一部分,然后各自在自己取的那部分树上选择一条路径并取走路径上的奶酪,然后把剩下的奶酪拿去喂老鼠。 两人都想让自己取走总重量尽量大的奶

2017-04-18 11:33:37 1987

原创 蛋糕

题目大意CJY很喜欢吃蛋糕,于是YJC弄到了一块蛋糕,现在YJC决定和CJY分享蛋糕。 这块蛋糕上有n^2颗葡萄干,排成了一个n*n的点阵,每颗葡萄干互不相同且被编号为1~n^2。YJC决定沿着一条直线把蛋糕切成两份。YJC和CJY都很喜欢吃葡萄干,所以切出的两份蛋糕必须都包含至少一颗葡萄干。同时他们都不希望吃到不完整的葡萄干,所以切的时候不能经过任意一颗葡萄干。CJY喜欢1号葡萄干,所以他选择了

2017-04-18 11:32:40 663

原创

题目描述有n个点,它们从1到n进行标号,第i个点的限制为度数不能超过A[i]. 现在对于每个s (1 <= s <= n),问从这n个点中选出一些点组成大小为s的有标号无根树的方案数。DPprufer序DP裸上#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;t

2017-04-18 11:30:41 482

原创 中位数

题目大意定义一个序列a的特征值: 如果n=1则a[1]即为特征值 否则构造序列b,bi为ai、ai-1、ai+1的中位数。 a的特征值等于b的特征值。 求特征值为k的长度为n的排列a有多少种。做转化为>=k 那么只有0和1 从中间0101交替往两边对称,直到不对称时,两个数是多少决定了特征值是0还是1。 因此可以枚举对称长度,剩余组合数。#include<cstdio>#includ

2017-04-18 11:20:40 497

原创 开房间

题目描述A君与B君正在玩一款闯关游戏,游戏共有n关,每一关的目标只有一个:开房间。 每一关都会有m个房间(从1~m进行编号),A君与B君每关各打开一个房间即可过关,但两人不能打开同一个房间。 通过每一关后,m个房间会重新关上,在第i关打开第j个房间需要消耗t[i][j]的体力值。并且无论A君还是B君,除了第一关外,若上一关自己开了a号房间,这一关开了b号房间,则需要额外消耗K*|a-b|点体力值

2017-04-18 11:16:49 582

原创 航海舰队

题目描述Byteasar 组建了一支舰队!他们现在正在海洋上航行着。 海洋可以抽象成一张n×m 的网格图,其中有些位置是“.”,表示这一格是海水,可以通过;有些位置是“#”,表示这一格是礁石,不可以通过;有些位置是“o”,表示这一格目前有一艘舰,且舰离开这一格之后,这一格将变为“.”。 这些“o” 表示Byteasar 的舰队,他们每天可以往上下左右中的一个方向移动一格,但不能有任何一艘舰驶出地

2017-04-18 11:14:58 1007

原创 最长路径

题目描述在Byteland 一共有n 个城市,编号依次为1 到n,它们之间计划修建n(n-1)/2条单向道路,对于任意两个不同的点i 和j,在它们之间有且仅有一条单向道路,方向要么是i 到j,要么是j 到i。换句话说,这是一个n 个点的竞赛图。 Byteasar 居住在1 号城市,他希望从1 号城市出发,沿着单向道路不重复地访问一些城市,使得访问的城市数尽可能多。 请写一个程序,帮助Byteas

2017-04-18 11:11:02 1570

原创 树上路径

题目描述给定一颗n个结点的无根树,树上的每个点有一个非负整数点权,定义一条路径的价值为路径上的点权和-路径的点权最大值。 给定参数p,我们想知道,有多少不同的树上简单路径,满足它的价值恰好是p的倍数。 注意:单点算作一个路径;u ≠ v时,(u,v)和(v,u)只算一次。题解随便点分治 同一个分治中心按到根最大值排序,然后维护桶 裸题#include<cstdio>#include<alg

2017-04-18 10:43:46 656

原创 旅游路线

题目描述A君准备在Z国进行一次旅行,Z国中有n个城市,城市从1到n进行编号,其中1号城市为Z国首都。Z国的旅行交通网由n-1条单向道路构成,并且从任何一个城市出发都可以通过旅行网到达首都。 一条旅行交通网中的旅行线路,可以用线路上所经过的城市来描述,如{v1,v2,v3,……,vm},它表示一条经过了m个城市的旅行路线,且城市vi到城市vi+1有一条单向道路相连。 两个城市是相似的,当且仅当他们

2017-04-18 10:37:16 708

原创 [bzoj4161]Shlw loves matrixI

题目大意常系数齐次递推生成函数构造特征多项式 然后用快速幂做多项式取模 多项式乘法暴力即可#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define lowbit(x) (x&-x)using namespace std;typedef long long ll;const int max

2017-04-18 10:35:28 1059

原创 [51nod1238]最小公倍数之和

题目大意出一个数N,输出小于等于N的所有数,两两之间的最小公倍数之和。题解太懒了 这里写的很好#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;typedef long long ll;const int maxn=10000000+10,maxha=1000

2017-04-18 10:31:24 829

原创 颜色树

题目大意树上每个节点均有颜色。 求有多少条路径包含了所有k种颜色。k<=10点分治点分治后处理到根的二进制状态表示包含的颜色。 问题转化成插入若干个二进制数,查询包含某个二进制数的二进制数有多少个。 可以插入O(1)查询O(2^k) 考虑综合插入和查询的复杂度。 设f[A,B]表示有多少二进制数前一半为A后一半包含B。 插入时A是确定的,枚举包含的B,O(2^(k/2)) 查询时B是确

2017-04-15 16:59:14 637

原创 GDOI冲刺训练模拟赛第一套总结

DAY 1拿到题一看,第一题显然是水题,跳。 第二题看起来非常不好做,想了一会儿没思路,看了一下暴力70分可能是可以离散化后跑最短路的,跳。 第三题这种路径表示的问题一般用点分,可是之后的部分好像只会2^k。思考了一会儿发现和以前做过的一道题很像,就知道怎么做了。 第四题没什么头绪,一档都不会,先跳。 回去想了下第二题发现很容易用扫描线+线段树做。 然后按1-3-2的顺序做完了。第1第2题

2017-04-14 12:22:02 513

原创 腐女的生日

题目描述腐女要过生日了,pty 想给腐女送礼物,但是腐女所在的教室离pty 的教室太远了,于是pty就拜托会动归和A星的djy帮忙送礼物。djy在学校建立了一个平面直角坐标系,他站在了(0,0)点,腐女在(x0,y0)点,djy每次只能往上下左右四个方向移动一步,中间有n栋矩形教学楼,每个教学楼给出两个对角的坐标,并且保证每栋教学楼的周围区域(如图所示)不会有别的教学楼,即djy可以绕一个教学楼走不

2017-04-12 22:40:00 541

原创 IQ测试

题目描述PTY进行IQ测试,测试的项目是判断一个序列是否是另外一个序列删除若干个数字之后得 到的,PTY 深知自己的IQ 低于sqrt(-1),所以他请来了智商超高的你来替他解决问题。乱做水题#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)#define fd(i,a,b) for(i=a;i>=b;

2017-04-12 22:05:01 1065

原创 [bzoj3812]主旋律

题目大意问多少边的子集仍然是强联通的。DP设f[i]表示点集为i有多少边的子集强联通。 考虑补集转化,如果不是强联通,缩点后会形成一个DAG。用总的减去非法。 考虑容斥,枚举出度为0的点的点集j,那么如果包含奇数个强连通分量,则表示至少j个出度为0,容斥系数为负,否则容斥系数为正。 那么,我们可以设g[i]表示点集为i有多少边的子集形成奇数个互相之间没有边的强联通分量 ,h[i]表示点集为i有

2017-04-09 09:09:25 768

原创 [bzoj3283]运算器

题目大意数论题三合一。 第一问求yz%py^z\% p 第二问求yx%p=zy^x\%p=z的最小非负整数x 第三问求Cyz%pC_z^y\%p第一问谁都会做第二问大步小步法。 假设解决这样一个问题 ax≡b(modp)a^x\equiv b(\mod p) 首先考虑a与p互质的情况。那么显然是有循环节的。只需要考虑p以内。 设x=Ap√−BA\sqrt p-B aAp√−B≡b(m

2017-04-08 11:57:49 610

原创 [bzoj2530]Party

题目大意一个n个节点的图,保证存在大小至少为23n\frac{2}{3}n的团。 请输出任意一个大小为13n\frac{1}{3}n的团。构造将任意无边相连的两个点删去。 只有1/3n个点不在那个2/3n大小的团上,那么我们会把这些点连同一些在团上的1/3n个点删去。 还剩下1/3n个点在团上,即可输出。#include<cstdio>#include<algorithm>#define

2017-04-07 17:19:20 577

原创 [bzoj4762]最小集合

题目描述定义一个非空集合是合法的,当且仅当它满足以下两个条件。 1、集合内所有元素and和为0 2、它的非空子集中仅有它本身满足1 给出一个集合S,求它的合法非空子集数。DP先把给定集合所有数取反。 比如有效位数是4位,1101就变成0010。 那么问题变成,所有元素or和为1023,而去掉任意一个元素后or和均不为1023。 那么接下来我们来设一个诡异的状态。 因为要知道去掉一个人元

2017-04-07 16:38:38 1214

原创 [CF785D]Anton and School - 2

题目大意一个括号序列,问有多少非空子序列是回文合法括号序(这个回文是几何回文,如(()))。瞎做可以枚举最后一个左括号,假如它左边有A个左括号,右边有B个右括号。 贡献为∑Ct−1A∗CtB=∑Ct−1A∗CB−tB\sum C_A^{t-1}*C_B^t=\sum C_A^{t-1}*C_B^{B-t} 从组合数的意义去考虑,相当于从A+B个数中选B-1个数。 也可以这样考虑。 (1+x)

2017-04-07 16:07:41 674

原创 [bzoj3451]Tyvj1953 Normal

题目大意点分治过程中每次随机选择分治中心。 求期望复杂度。期望的线性性容易知道可以单独考虑每个点的贡献。 对于x和y,我们考虑y能否给x带来1的贡献,即y是否是x在点分树上的祖先。 那么Y必须是x到y上第一个被选择为分治中心的点。 一条路径上每个点成为第一个被选择的点概率均等,因此贡献为1dis(i,j)\frac{1}{dis(i,j)} 答案就是∑ni=1∑nj=11dis(i,j)\

2017-04-07 09:39:30 1192

原创 [bzoj4503]两个串

题目大意兔子们在玩两个串的游戏。给定两个字符串S和T,兔子们想知道T在S中出现了几次, 分别在哪些位置出现。注意T中可能有“?”字符,这个字符可以匹配任何字符。FFT我们把T串反过来。 设a表示S串(把字符转成不为0的数字) b表示T串,其中问号可以用一个0表示 设c[j+m−1]=∑(a[j+i]−b[m−i−1])2∗a[j+i]∗b[m−i−1]c[j+m-1]=\sum (a[j+i

2017-04-06 22:12:30 570

原创 [bzoj3328]PYXFIB

题目大意求 ∑⌊nk⌋i=0Ci∗kn∗Fi∗k\sum_{i=0}^{\lfloor\frac{n}{k}\rfloor}C_n^{i*k}*F_{i*k} F表示斐波那契数列一点思路这个形式很眼熟? ∑ni=1Cin∗xi=(1+x)n\sum_{i=1}^nC_n^i*x^i=(1+x)^n 那么同样,我们知道Fi=Ai[0][0]F_i=A^i[0][0] A是一个2*2的矩阵,满

2017-04-06 17:18:16 830

原创 [bzoj3727]PA2014 Final Zadanie

题目大意一颗n个节点的树。 bi=∑nj=1aj∗dis(j,i)bi=\sum_{j=1}^naj*dis(j,i) 给定b,请求出a。好题设size表示子树的a值和。设x表示整颗树a值和。 那么对于i是j的父亲,有 b[i]−size[j]+x−size[j]=b[j]b[i]-size[j]+x-size[j]=b[j] x−2∗size[j]=b[j]−b[i]=c[j]x-2*s

2017-04-06 14:37:45 669

原创 数字格

题目描述菁菁堂有一块数字格,那是王解体最喜欢去的地方。 传说中,这条气势磅礴的数字格,有N行N列,每一个格子里均有一个数。 敢于挑战自己的王解体决定来挑战这道通过率为百分之九十九的题目。 格子的第一行及第一列均是给定的: F[k,1]=l[k](k=1,2,3,…,N)F[k,1]=l[k](k=1,2,3,…,N) F[1,k]=t[k](k=1,2,3,…,N)F[1,k]=t[k](

2017-04-06 09:52:05 737

原创 机器人游戏

题目描述小A和小B在一个R行S列的棋盘上玩游戏,棋盘上的每一个棋格都有一个方向标记(上、下、左或右)。游戏按如下方式进行: 小A先将K个棋格涂上黑色(初始为白色),并且他不能涂黑最后一列的棋格;随后,小B在第一列的任意一个棋格上放一个小机器人;此时,小机器人将会不停地沿着他所在的棋格所指示的方向走到一个相邻的棋格,直到他到达最后一列的棋格,游戏结束。 游戏胜负规则如下: ●如果小机器人最终到达

2017-04-06 09:49:16 537

原创 无限棋盘

题目描述无聊的小A在一个无限大的棋盘上玩游戏,这个棋盘由一个M*N的模板不停重复生成。例如,当模板为: honi hsin 时,我们会生成如下棋盘: …honihonihonihoni… …hsinhsinhsinhsin… …honihonihonihoni… …hsinhsinhsinhsin… 其中,该棋盘在任意一个方向都可以无限延伸。 现在小A在棋盘上随机挑选一个位置,又随

2017-04-06 09:46:33 694

原创 [JZOJ5041]游戏

题目描述有一天小A和小B在一棵有N个节点的树上玩游戏,初始时1号节点上有一枚硬币。游戏以如下方式进行: ●每一轮,小A选取一个节点,并在该节点上画一个叉 ●紧接着,小B将硬币移动到一个相邻的、没有被画叉的节点 ●小B在硬币原来所在的节点上画一个叉 以上三步不停重复,直到小B无法再移动硬币。而在游戏过程中,小A全程被戴上眼罩,因此小A无法准确地知道每一个时刻硬币在哪一个节点上。他只知道树的形态

2017-04-06 09:43:41 513

原创 查询

题目描述给出若干条线段,用(x1,y1),(x2,y2)表示其两端点坐标,现在要求支持两种操作: 0 x1 y1 x2 y2 表示加入一条新的线段,(x1,y1)-(x2,y2) 1 x0 询问所有线段中,x坐标在x0处的最高点的y坐标是什么,如果对应位置没有线段,则输出0。分治考虑CDQ分治,问题转化为先做0操作再做1操作。 按照横坐标建线段树,在一个线段树节点上线段可当直线用。 维护

2017-04-06 09:34:32 451

原创 [WerKeyTom_FTD的模拟赛]Sone0

题目描述有一颗n个节点的树,每个节点有编号与权值。有m次操作,每种操作都有独特的编号。 编号为1的操作,会切断当前树上存在的一条边,并新加一条边,保证操作完成后仍然是树。 编号为2的操作,会改变这颗树的根节点(初始根节点为1)。 编号为3的操作,会给树上一条路径上所有点的权值都增加x。 编号为4的操作,会对树上一条路径上点的权值信息进行轮换,如果是对j到k这条路径操作,从j走

2017-04-06 09:28:08 2971 6

原创 Bestcoder2017.4.1瞎打

A贪心一段一段选,每次越大越好。 证明? 设f[i]表示前i个至少多少下。 f显然有单调性。 那么对于一个i找到一个最大的j,然后f[i]=f[i-j]+1 这样看看就是贪心啊。#include<cstdio>#include<algorithm>#include<map>#define fo(i,a,b) for(i=a;i<=b;i++)using namespace std;

2017-04-01 22:06:14 559 1

空空如也

空空如也

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

TA关注的人

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