- 博客(6)
- 收藏
- 关注
原创 HDU 2588 欧拉函数
题目链接题意很简单,思路却有点难想。从已知条件一步步来分析: 因 GCD(X,N)>=MGCD(X,N) >= M 而 1<=X<=N 1 <= X <= N 可得出结论1,也是该题重要的突破口: GCD(X,N)一定是N的约数这个条件可以给我们一定启发,因为 N 的约数一定是很有限的,我们可不可以枚举N的约数 PP(随便给的名字= =),且 P>=MP >= M呢?假设我们已经得到了
2017-06-26 19:42:36 676 4
原创 HDU 1695 数论 容斥 欧拉函数 || 莫比乌斯反演
题目链接思路: 想了两个小时才想出容斥的思路….(真是太弱了AC之后搜题解发现是一个莫比乌斯的入门题,准备最近抽时间学习一下AC之后再来补上莫比乌斯的思路(占坑(更新见下容斥: 此题可以等价为: 从【1,n】中选出一个 X 从【1,m】中选出一个 Y 问有多少对不重复的 X,Y 满足 GCD(X,Y) == K?首先 我们可以从上述问题中提取出以下条件: 1 .1<=X<=n 1 <=
2017-06-26 17:04:05 789
原创 HDU 3501 数论 欧拉函数的应用
题目链接题意:已知一个数n,求小于n且与其gcd不为1的所有数的和思路: 首先第一感觉便是正难则反,可以先求小于n且与n互质的数的和。但是已知的欧拉函数是求个数的,但如何来求和呢?这里涉及了一个公式: Sum(n)=ϕ(n)∗n/2 Sum(n) = \phi(n)*n / 2 \ 为什么有这个公式呢 其实理解起来很简单:我们求两个数的GCD是常用的是辗转相除法,但同时还有一个古老的
2017-06-26 14:36:34 478
原创 Codeforces Round #418 (Div. 2) C 预处理/思维题
题目链接题意很简单,我一开始的思路是填两个相同字母之间的缝隙: 预处理每个字母出现的位置,然后在线处理询问,从左到右枚举起点,用可以填补的字母填补缝隙,维护最长长度。加上各种优化以后复杂度O(NQ),但可能卡了常数,虽然初测花样AC,但最终还是倒在了某一组极限数据上。 (当晚终测前czy623和S10问我解题思路时我还非常自信地认为是能够卡过的,因为BNU的Q神也是这个复杂度,结果…… 果然还是
2017-06-09 14:55:52 352
原创 DFS序 及 手动扩栈指令
概念 DFS序是转树型结构为线型结构的经典方法。 具体实现网上优秀博客很多,就不赘述了…. 因为涉及DFS,同时此类题普遍节点的规模都在1e5以上,而HDOJ好像是基于Windows的服务器,很容易爆栈,故我们需要添加一个手动扩栈指令,并用C++提交。 #pragma comment(linker, “/STACK:1024000000,1024000000”) 经典题HDOJ 3887题
2017-06-05 00:40:03 807
原创 乘法逆元 小结
概念: 使得 a∗x≡1(mod m)a*x \equiv 1(mod\ m) 成立的x称为a对m的逆元 方法总结:一.拓展欧几里德算法适用条件:a与m互质 即 gcd(a,m) = 1 代码:void exgcd(int a,int b,int &x,int &y){ if(b==0){ x=1,y=0; return; } exgcd
2017-06-02 22:08:12 656
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人