自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 51Nod 1675 莫比乌斯反演

题目链接思路: 对于abxa_{b_x},可以看成一个新的序列cc,即: ab1,ab2,ab3...<==>c1,c2,c3....a_{b_1},a_{b_2},a_{b_3} ... <==> c_1,c_2,c_3.... 对于bayb_{a_y},同理可看成一个新的序列dd。故问题等价于,求有多少对合法的下标x,yx,y,满足: gcd(x,y)=1gcd(x,y) = 1 且 c

2017-08-28 10:28:21 484 3

原创 51Nod 1535 思维+DFS

51Nod 1535思路: 根据图的性质,一定是在一棵树的基础上有一个环,故边的条数一定等于点的数目。然后再DFS判断一下是否连通即可。代码:#include<cmath>#include<string>#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>using namespace std;co

2017-08-27 20:27:54 285

原创 51Nod 1335 思维

题目链接思路: 根据题意,要求最终字符串的字典序最小,则要求原字符串的小字符尽量换到前面,大的字符换到后面。考虑将字符串从小到大排序,则与原字符一一比较后的第一个不同的字符一定是交换的起点,假设其在原串的位置为pospos。然后考虑枚举交换的终点,因为原字符串的终点字符一定是排序后新串的第pospos个位置的字符。若存在多个,则模拟翻转,与答案比较并更新。总复杂度:O(Tn2)O(Tn^2)代码:

2017-08-27 19:34:59 333

原创 51Nod 1524 | Codeforces VK Cup 2015 - Finals F题 DP+数论

题目链接: 51Nod Codeforces思路: 一个直接的思路是可以考虑枚举每个数,再枚举每一个数的倍数,正向搜索,易发现其为O(nloglogn)O(nloglogn)的复杂度而我的思路是逆序DPDP。设dp[i]dp[i]是当ii这个数为合法解中的最小值时,包含的数的个数。 比如对于三个数:6,12,246,12,24 则: dp[6]=3dp[6] = 3 dp[12]=2d

2017-08-27 09:48:38 319

原创 HDU 6166 二进制分解 + 最短路

题目链接题意: 有nn个点mm条边的有向图,选出其中kk个点成为一个集合,集合中任意选一对跑最短路(不能是自己到自己),问其中距离的最小值是多少。思路: 首先一个明显的思路就是想办法转化成多起点多终点的最短路,然后建立一个超级起点和超级终点,跑一次得到答案。但此题起点集和终点集都来自一个集合,所以只能想办法将集合进行分组。考虑二进制分解,对于每两个不等的数,至少有一个二进制位不一样,这样我们可以

2017-08-23 09:56:38 616

原创 HDU 6169 Senior PanⅡ 数论+DP

题目链接题意:给定区间[L,R][L,R]和一个整数KK,问区间内所有满足其最小因子(11除外)为KK的数的和。 限制:L,R,K(&lt;=1e11)L,R,K(&lt;=1e11)思路: 首先考虑当KK不是素数时,其一定可以分解为更小的数的乘积,这样任何以KK为因子的数的最小因子一定不是KK,故直接特判0。然后考虑K的大小的限制。 对于任意一个[L,R][L,R]的区间,令PP为大于等于KK的第一个素

2017-08-22 19:56:53 1340 6

原创 HDU 6155 DP+矩阵+线段树

题目链接思路: 设dp[i][0/1]dp[i][0/1]是前ii个字符能组成的以0/10/1结尾的子串个数。若第ii个字符为00,则: dp[i][0]=dp[i−1][0]+dp[i−1][1]+1dp[i][0] = dp[i-1][0] + dp[i-1][1] + 1 dp[i][1]=dp[i−1][1]dp[i][1] = dp[i-1][1]怎么来理解这个递推式呢?考虑把第ii

2017-08-21 17:15:22 508

原创 HDU 6138 AC自动机

题目链接比赛时队友轻松切掉的水题= =,但我是最近抽时间学了一下AC自动机才理解了此题的正确思路。个人感觉AC自动机就是一棵升级的TrieTrie树,构造的思想又和KMPKMP雷同,入门还是非常容易的~思路: 将所有串都丢进AC自动机,每个节点记录一下深度。 每个询问对自动机询问两次,第一次询问进行染色,第二次询问针对染色过的节点更新答案。代码:#include<queue>#include<

2017-08-20 19:30:29 555

原创 HDU 6158 笛卡尔定理 + 韦达定理

题目链接感谢ICPCCamp的题解,链接送上:CCPC 2017网络赛题解题解已经讲得非常清楚了,补充一点细节吧。(1).关于笛卡尔定理对于此题,只需要了解这么一个性质:(来自wiki 用的谷歌翻译,若有偏差还请指出~)定义一个圆的曲率k=±1rk =\pm \frac{1}{r},其中rr是其半径。 若平面有两两相切,且有66个独立切点的四个圆,设其曲率为k1,k2,k3,k4k_1,k_2,k

2017-08-20 16:18:35 5237

原创 HDU 4773 圆的反演(经典

题目链接 参考博客题意:给定两个相离的圆和圆外定点PP,求过点PP且与已知的两个圆外切的所有圆。思路: 圆的反演变换入门题。 掌握两个关于圆反演的性质即可解决该问题。一是相切两圆的反相仍相切,若反相均为直线,则平行。 二是经过反演中心的圆,其反相为直线。故我们可以以P为反演中心,任意值为反演半径。先求出两个已知圆的反演圆,则与两个反演圆外切的直线,其反演后一定满足: (1).与两个圆的原形

2017-08-20 13:33:55 1057

原创 HDU 6136 模拟 + 优先队列

题目链接题意:一个圆形跑道,nn个人跑步,每个人有不同的起始点和速度(大小和方向均可能不同),标号1-n,当两个人相遇,标号小的将会被淘汰,问最后还剩一个人时的时间。思路: 直接模拟,首先将n个人按起点的大小排序,考虑第i个被淘汰的人,一定是与其相邻的两个人中的一个相遇,故每次可以找到最快相遇的一对选手,将其中标号小的人淘汰,模拟整个过程即可。其中时间的最小值可用优先队列维护,细节见代码注释。代码

2017-08-17 21:23:46 820

原创 HDU 6134 莫比乌斯反演

题目链接题意: 已知n<=1e6n<=1e6,求: f(n)=∑i=1n∑j=1i⌈ij⌉[gcd(i,j)==1]f(n) = \sum_{i=1}^n\sum_{j=1}^i \lceil\frac{i}{j}\rceil[gcd(i,j) == 1]思路: 首先套上莫比乌斯反演的经典转化: ∑d|nμ(d)=[n==1]\sum_{d|n}\mu(d) = [n == 1]得: f(

2017-08-17 18:59:48 1921 3

原创 HDU 6121 思维 + DFS

题目链接题意: 有一棵n个点的k叉树,标号为0到n-1。求所有子树大小的异或和。思路: 首先从顶向下进行预处理,得出每一种高度的完全k叉树的各个参量,对于此题我是用三个数组保存: cnt[i]:cnt[i]: 完全kk叉树第ii层的节点个数 sum[i]: sum[i]: 有ii层的完全kk叉树的所有节点个数 Xor[i]:Xor[i]: 有ii层的完全kk叉树所有子树的异或和然后我们

2017-08-16 15:32:26 557

原创 HDU 3430 置换群 + 同余方程组

题目链接思路: 设第一个序列为变换序列,第二个序列为目标序列。首先可以快速排除不合法的情况。 (1).对于变换序列中能够相互到达的集合,如n = 4时,如果{1,3}能够相互置换,{2,4}能够相互置换,目标序列应该与变换序列保持一致,即也应该是{1,3}相互置换,{2,4}相互置换。若不一致,则不合法。(2).在每一个能够相互置换的元素的集合里,其相对顺序在变换序列和目标序列中也应该保持一致。

2017-08-07 20:38:25 480

原创 HDU 6084 | 2017百度之星资格赛 1005 卡特兰数 + 分块打表

题目链接思路: 卡特兰数的变形,此题的公式还是比较好推的。熟悉卡特兰数的同学应该一眼就能看出来,对于长度为lenlen的0101偏串: 设n=len2n = \frac{len}{2} 则其构成的方案数为卡特兰数的第nn项 即hnh_n对于此题,一个重要的突破口便在于想清楚这么一个事实: 一个长度为nn的01偏串,从其中任意去掉一个小的01偏串,剩下的串拼在一起仍然是一个合法的01偏串由01

2017-08-07 10:55:41 1200

原创 积性函数的性质及证明 + 线性筛

引言在数论问题中,积性函数有着广泛的应用。 如在莫比乌斯反演问题中,函数变换之后如何快速维护前缀和往往是最重要也是最难的一步。如果维护的函数具有积性,那就可以尝试利用线性筛在O(n)O(n)的时限内完成预处理,从而达到优化复杂度的神奇作用。 本文的大部分相关性质及公式来自: 《线性筛与积性函数》−贾志鹏《线性筛与积性函数》- 贾志鹏 博主将试着证明其中的性质公式,严谨性可能欠缺,其目的主要是

2017-08-06 15:02:36 4323 2

原创 HDU 6070 二分+线段树

题目链接首先二分答案,记答案为AnsAns。 设区间[L,R][L,R]不同的值的个数为Size(L,R)Size(L,R) 则: Ans<=Size(L,R)R−L+1Ans <= \frac{Size(L,R)}{R-L+1}移项变形得: Size(L,R)+L∗Ans<=Ans(R+1)Size(L,R) + L*Ans <= Ans(R+1)故可以枚举每个区间的右端点RR 线段树每

2017-08-04 15:16:31 399

原创 HDU 6061 快速数论变换

题目链接思路: 设sum=−∑aisum = -\sum a_i故对于最终函数的第kk项,有: Ansk=∑i=knciCki(−sum)i−kAns_k = \sum_{i=k}^nc_iC_{i}^{k}(-sum)^{i-k}将组合数展开: Ansk=∑i=knci(−sum)i−ki!k!(i−k)!Ans_k = \sum_{i=k}^nc_i(-sum)^{i-k}\frac{i!

2017-08-03 23:51:54 839

原创 HDU 6069 数论 区间素数筛 + 赛后反思

题目链接设 x=pa11pa22....pannx = p_1^{a_1}p_2^{a_2}....p_n^{a_n} 则d(x)=(1+a1)(1+a2)...(1+an)d(x) = (1+a_1)(1+a_2)...(1+a_n) d(xk)=(1+ka1)(1+ka2)(1+ka3)...(1+kan)d(x^k) = (1+ka_1)(1+ka_2)(1+ka_3)...(1+ka_n

2017-08-03 23:28:58 1107

原创 HDU 4609 快速傅里叶变换

题目链接题意:已知n条边的长度,任取三条不同的边能够组成三角形的概率。很经典的FFT 如果已知任意两条边的和的情况,那么枚举第三条边可以在O(n)O(n)的复杂度下得出总方案数。难点便在于如果枚举两条边求和,其复杂度是不可承受的O(n2)O(n^2)考虑用FFT优化该过程。 构造多项式,xnx^n的系数是长度为n的边的条数。 类似于生成函数求方案数的思想。 该多项式与自身相乘便能得出任意两条

2017-08-03 10:23:08 956

原创 HDU 1402 快速傅里叶变换

题目链接每一个整数都可以看成x=10x = 10的多项式。这样就可以利用FFTFFT快速求解了。 DFT:O(nlogn)DFT:O(nlogn ) 乘法:O(n):O(n) DFT−1:O(nlogn)DFT^{-1}:O(nlog n) 总复杂度:O(nlogn)O(nlog n)代码:#include&amp;lt;cstdio&amp;gt;#include&amp;lt;cstdlib&amp;gt;#include&amp;lt;algorit

2017-08-02 20:37:00 574

空空如也

空空如也

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

TA关注的人

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