- 博客(12)
- 收藏
- 关注
原创 [hdu6063]RXD and math
题目大意给你一个数学式子,要求计(zhao)算(chu)出(jie)来(lun)。显然任意数可唯一表示成a^2*b,其中μ(b)=1\mu(b)=1 式子相当于在枚举b,后面乘的系数是a的范围。 那么每个数都被算一次,答案是n^k。#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)using name
2017-08-21 16:12:16 462
原创 [hdu6105]Gameia
题目大意有一颗n个节点的树,每个节点初始没有颜色。A和B玩游戏,A先手。B有k次小动作,可以在游戏进行的任意时刻使用(可以在A操作前后使用,一次性可以使用多次),每次小动作他会选择切掉一条树边。 两人轮流操作,A每次将一个无色点染白,B每次将一个无色点染黑并将相连点染黑(即使已经有颜色)。当不能操作后,如果存在被染白的点,A胜,否则B胜。双方绝顶聪明,问谁胜。博弈题先给出的结论: 该树如果有完美
2017-08-21 15:07:32 1101 2
原创 func
题目大意f(1)=1,f(2i)=f(i),f(2i+1)=f(i)+f(i+1)。 求f(m)=n的所有m。考虑如何计算一个f(m),先拆二进制位。 用f0和f1表示后面的位做完用多少进位和不进位。 我们只考虑最后一位是1的也就是奇数,那么初始f0=f1=1。 考虑一位上是1因为f(2i+1)=f(i)+f(i+1),所以我们将它减半后可以选择+1。 那么当一位是1时,如果后面没有进位,
2017-08-20 15:56:05 564
原创 merge
题目大意将两个排列随意归并,求能得到多少本质不同的序列。DP直接转移会算重。 手玩+感受一下发现容斥系数是卡特兰数。 详见代码。#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=2000
2017-08-20 15:01:05 348
原创 [bzoj4934]kangroo
题目大意有一个园子,里面有n个草丛排成一排,标号1~n,有一个袋鼠,从s出发,每次跳一步跳到一个其他的草丛,经过 每个草丛恰好一次,最终到达t。显然他会跳跃n-1次为了不被人类发现,袋鼠每次跳跃的方向必须与前一次不同, 具体地,如果他现在在now,他是从prev跳跃一次到达now的,然后他跳跃一次到达next,那么如果prev<nowprev<now,就必 须有now<nextnow<next
2017-08-17 22:28:15 913 1
原创 Sequence
题目大意有两个序列a和b。 每次询问将一个区间a值排名在[x,y]的中找一个b值第k小。做法用主席树将排名的x和y变成具体的值。 接下来可以根据b整体二分,其余部分可以拆区间+扫描线+数据结构完成。#pragma GCC optimize(2)#include<cstdio>#include<algorithm>#define fo(i,a,b) for(i=a;i<=b;i++)usi
2017-08-17 19:20:58 401
原创 Create
题目大意一个序列,有很多询问,每个询问要问区间>=x的数的个数。 现有若干修改操作,区间赋值,每次修改后请你将所有询问得到的答案和输出。颜色段均摊分析颜色段! 可以用set维护颜色段。 然后只需要考虑一个区间全部由x变成y产生代价。 先把询问按x排序做可持久化线段树,然后就很好做。#pragma GCC optimize(2)#include<cstdio>#include<algori
2017-08-17 19:16:09 445
原创 [bzoj4936]Match
题目大意给你一个小写字母字符串。 请构造一个合法括号序,使得匹配的括号在原串中字母相同。 要求字典序最小,且要求判断无解。暴力我们考虑如何判断无解。 你考虑一个栈,顺序扫这个字符串。 假如当前字符和栈顶字符相同消除栈顶字符,否则将这个字符加进栈中。 这可以得到一个合法解,且我们可以证明任意解可以变成这个合法解。 这就是无解判断。 字典序最小的暴力也很简单。一些性质我们设f(l,r)=0
2017-08-16 17:37:33 721 3
原创 神奇的玩具
题意一副无向图,第i条边连接ai和bi。现在你需要选择恰好k个点,对于第i条边,你必须让ai和bi至少一个被选择,如果ai被选择,付出pi的代价,否则付出qi的代价(pi<=qi),求最小代价。搜索可以发现pi是必然代价,qi-pi就是附加代价。 于是产不产生代价只与ai是否没有被选,这方便我们加上最优性剪枝。 一个不选会导致一堆必选。 判掉度数为0和自环,我们可以发现T(n)<=T(n-1)
2017-08-15 19:56:56 366
原创 区间第k小
题目大意给你一个序列元素均在[0,n)内,并给定常数w。 每次在线询问区间第k小,要求忽略区间出现次数>w的数。根号算法我们不妨考虑如何离线。 可以使用莫队+线段树做到 n根号n log n,非常菜鸡。 可以发现我们只有n次询问却有n根号n次插入删除,如果我们使用线段树是很亏的。 考虑经典套路即平衡复杂度: kth是有办法O(1)-O(√n)的,具体做法是维护值域分块,以及一个桶。 值域
2017-08-13 22:43:11 853
原创 决战
题目大意给你一个3*n网格图。 你有m个士兵,每个士兵会对3*3的范围内进行攻击,攻击矩阵初始给定。 有多少种放置士兵的方法,使得士兵互不攻击。DP很显然能dp 这个dp还很显然能NTT优化 但是常数大显然不一定跑得过暴力 于是我们就暴力吧(雾#pragma GCC optimize(2)#include<cstdio>#include<algorithm>#define fo(i,
2017-08-13 22:27:26 376
原创 质数
题目大意设f(i)表示i的不同质因子数量。 求∑ni=12f(i)\sum_{i=1}^n2^{f(i)} n<=10^12推式子我知道你可能会推出一个看起来是n5/6n^{5/6}实际是n2/3n^{2/3}的方法,但肯定还是不能过的,大概能跑10^11这个级别。 首先把式子变成 ∑ni=1∑d|i[(d,i/d)=1]\sum_{i=1}^n\sum_{d|i}[(d,i/d)=1]
2017-08-13 22:23:46 349
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人