09 2018 档案
摘要:GYM 101908F Music Festival 做法:将节目按照右端点排序,dp[i][st][0/1]表示前i个节目,选择的stage的状态用一个n位二进制数表示为st,第i个节目选或不选的最大值,转移时用线段树优化一下。 c++ include define pb push_back
阅读全文
摘要:Codeforces1045G 做法:按半径r从大到小枚举,对于每个q,枚举对应位置可能的q值,对每个q,维护出现的坐标x,每次查询半径内的已经出现的坐标的数目即可。需要实现一个插入单点加,查询区间和的操作,动态开点线段树即可。看来还是要学习一下pb_ds了。 c++ include typedef
阅读全文
摘要:Codeforces1045I 做法:如果至多有一种字母出现奇数次,则合法,因此把整个串用一个26位2进制数表示,对于每一个数,枚举可能的对应串的状态即可。 c++ include typedef long long ll; inline int read() { char c = getchar(
阅读全文
摘要:GYM 101669F Binary Transformations 做法:如果不存在一个位置p (a[p]=1,b[p]=1),那么答案就是贪心的先把所有的1,按价值从大到小变为0,所有的0,按价值从小到大变为1。如果存在一些位置p,我们就枚举一开始把多少p转成0,显然价值越大的p越优。现在考
阅读全文
摘要:HDU6223 Infinite Fraction Path 做法1:枚举每个串取最大值,只用判断前20位,如果前20位都相同,可以认定两个串相同。因为很容易进入循环节,且循环节不太大。 c++ include define pb push_back typedef long long ll; co
阅读全文
摘要:HDU5119 Happy Matt Friends 做法:拆成两堆数,分别暴力出两组的所有异或值A,B,枚举A, 将B全部插入Trie树,通过枚举的数每一位的值,确定异或后构成的新树,然后在新树上统计比m大的值的个数即可。 c++ include define pb push_back typed
阅读全文
摘要:HDU5120 Intersection 做法:答案就是A1∩B1A2∩B1A1∩B2+A2∩B2,圆形面积交码了好久,先把两个圆转到x轴上,大的放到原点,小的放在大圆的左边,计算一下交点坐标,然后讨论即可。 c++ include define
阅读全文
摘要:HDU5877 Weak Pair 做法:dfs的时候,用树状数组维护当前节点到跟节点的权值树状数组,离散化一下即可,类似统计树上逆序对。此题数据范围好像是假的,节点数开到200000可过。 c++ include define pb push_back typedef long long ll;
阅读全文
摘要:HDU5874 Friends and Enemies 题意:m个人,n种颜色的石头,两个人不是朋友就是敌人,朋友之间至少有一个同种颜色的石头,敌人之间不能有相同的石头,问用最多种的石头的情况下,n能否满足要求 做法:通过构造发现,对于一张完全的二分图来说,两个集合之间的边都会对答案贡献1,那么构造
阅读全文
摘要:HDU5875 Function 做法:st表+二分的经典题。不能使用数学函数log,否则会tle,需要预处理 c++ include define rep(i,a,b) for(int i=a;i=b; i) define mem(a,b) memset(a,b,sizeof(a)) define
阅读全文
摘要:HDU6038 Function 做法: 展开后有,f(i)=bf(ai)=bbf(aai)=...=bb..bf(i),可以发现当 ai 所在的循环节中确定一个时,整个循环都确定了,根据这个式子还可以发现,对于一个ai所
阅读全文
摘要:HDU5573 做法:本题的关键在于题目限制了n≤2^k,如果可以不选的话,我就会用最左边的1,2,4...凑出n,这里需要用减法,于是先把所有的数都加到答案里,这个值与n的插值,就是我们要消除的。选择一些数的和,等于这个插值除二即可。如果n是个奇数,直接可以计算。如果是偶数,先把n减一,然后在做第
阅读全文
摘要:HDU5514 Frogs 题意:将[0,m)所有符合a[i]t mod m的值求和 做法: 1. a[i]t mod m 会在 gcd(a[i],m) 的倍数出现,因此问题等价与求: $$ \sum_{i=1}^{m 1} [ [(a[1],m)|i] or [(a[2
阅读全文
摘要:HDU5442 做法:把原串复制一份加在后边,中间插特殊入个特殊字符,再把翻转后的串加在后边,同样复制一份。然后做后缀数组,按题意处理细节即可。 c++ include include include include include include include include include i
阅读全文
摘要:ACM ICPC 2018 徐州赛区网络预赛 D. EasyMath 做法: $$f(m,n) = \sum _{i=1}^{m} \mu(in) = \sum_{i=1}^{m}[gcd(i,n)=1]\mu(i)\mu(n) = \mu(n)\sum_{d|n}\mu(d)f(\frac{m}{
阅读全文