
数论
文章平均质量分 72
IED98
这个作者很懒,什么都没留下…
展开
-
bzoj2190: [SDOI2008]仪仗队 莫比乌斯反演
这不是裸的反演吗。。。。直接上nlogn的方法#include #include #include #include #include using namespace std;#define maxn 41000int f[maxn],n;int main(){ scanf("%d",&n);n--; for(int i=n;i;i--) {原创 2015-03-20 10:56:48 · 895 阅读 · 1 评论 -
bzoj3043: IncDec Sequence 差分
明显要求最后差分数列除第一项都是0的情况。然而为什么答案是只用统计上升和下降的差分呢????有个比较牵强的说法,>0的差分其实是指后面连续一段降的话只需要上升的差分这么多。而如果你升高的话只能连续升高,或下降的话只能连续下降。因为上升的话后面所有的数都上升了,如果你再下降的话,就会有重复的多余操作。下降同理。#include#include#include#include#原创 2015-07-13 12:09:21 · 722 阅读 · 0 评论 -
bzoj2877: [Noi2012]魔幻棋盘 树套数+差分
神题,只能膜拜题解。然后发现了差分这个东西,所谓差分就是sigma{a[i]}=b[i]; a[i]=b[i]-b[i-1];(是不是和辗转相减很像。。。。。)我们再来看一下二维的怎么做。。然后我们换一种维护的方法。因为题目要求一定会查询到守护者a[x, y],所以我们以(x, y)为原点,建立直角座标系。二维的一样是得差分,对于第四象限的点:b[i, j] = a[i, j] - a[i-1原创 2015-07-13 11:41:18 · 1454 阅读 · 0 评论 -
bzoj2876: [Noi2012]骑行川藏 拉格朗日插值
大神题,依然不知道lyp讲的贪心+调整是怎么搞的。所以还是拉格朗日插值+牛顿迭代求解搞,不懂拉格朗日插值的同学请自行百度,估计NOI再不会考这种结论这么强的题目,所以了解一下就好。还有牛顿迭代法,这个可以学一学,还是蛮好用的,精度也很高。#include #include #include #include using namespace std;#define maxn 11000d原创 2015-07-13 11:13:20 · 1355 阅读 · 0 评论 -
bzoj2432: [Noi2011]兔农 快速幂+数论
不难发现,这个题就是求斐波那契数列改化,由于有一个很强的结论,斐波那契数列取模是一个周期数列,所以我们可以去找循环节,然后找到循环节后把这第一个循环节处理出来。 其实vfk说的很详细了,注意这里mod的数不一定是个质数,我们只能用拓展欧几里得求逆元。。。。http://vfleaking.blog.163.com/blog/static/174807634201341721051604/#原创 2015-07-13 10:14:23 · 1980 阅读 · 0 评论 -
bzoj1407: [Noi2002]Savage
这个题,把式子列出来,就不难发现是个拓展欧几里得求线性解,然后分类讨论一下解得情况就可以了。#include #include #include #include #include using namespace std;int gcd(int a,int b){ if(a<0) a=-a; if(b<0) b=-b; if(b==0) {原创 2015-07-13 10:01:56 · 843 阅读 · 0 评论 -
bzoj3992: [SDOI2015]序列统计 NTT+快速幂
第一次自己切NTT,感觉NTT就是FFT的取模版本,具体可以看 http://blog.youkuaiyun.com/acdreamers/article/details/39026505 讲得很清楚然后系数本来是可以 预处理出来,时间可以缩很多,但我为了模板的简洁还是在想求系数了。说了那么多废话,下面我们进入正题:题目最简单的dp可以设做dp[i][j]:前i位积mod m 为j的方案数。由于乘法再原创 2015-07-12 20:05:54 · 3254 阅读 · 0 评论 -
bzoj2179: FFT快速傅立叶 FFT裸题
FFT可以看具体数学 和ACdreamer的博客。 模板果然还是黄学长的短#include #include #include #include #include #include using namespace std;#define maxn 1000000#define pi acos(-1.0)typedef complex E;int n,m,L;char ch[m原创 2015-07-12 21:29:57 · 853 阅读 · 0 评论 -
bzoj2820: YY的GCD 莫比乌斯反演
给定N, M,求1以前的容斥原理解法必然TLE,这里就得用到莫比乌斯函数(了解莫比乌斯函数请戳这里)对于这题而言,枚举质数也会是TLE的节奏。。。#include#include#include#include#include#include#include#include#include#include#include#defin原创 2015-03-20 13:26:01 · 644 阅读 · 0 评论 -
bzoj2301: [HAOI2011]Problem b 莫比乌斯反演
裸的反演+一个区间的容斥#include #include #include #include #include using namespace std;#define maxn 50100bool vis[maxn];int sum[maxn],mu[maxn],prim[maxn],tot;void init(){ mu[1]=1; for(int i=原创 2015-03-20 11:41:24 · 586 阅读 · 0 评论 -
bzoj1101: [POI2007]Zap 莫比乌斯反演
裸的反演,公式网上到处都是自行yy。#include #include #include #include #include using namespace std;#define maxn 51000bool vis[maxn];int sum[maxn],prim[maxn];short mu[maxn];int tot;void init(){ mu[1]=1原创 2015-03-20 11:40:06 · 711 阅读 · 0 评论 -
bzoj2005: [Noi2010]能量采集 莫比乌斯反演
直接求出函数值加个系数就可以了。。。#include #include #include #include #include using namespace std;long long f[110000];int n,m;long long ans;int main(){ scanf("%d%d",&n,&m); if(n>m) swap(n,m); f原创 2015-03-20 11:18:41 · 1225 阅读 · 0 评论 -
bzoj1257: [CQOI2007]余数之和sum
直接按取整相同的数分块就可以了,可以证明不会大于sqrt(n)块。#include #include #include #include #include using namespace std;long long n,k,pos;long long ans;int main(){ scanf("%lld%lld",&n,&k); long long tmp=原创 2015-03-20 11:38:17 · 587 阅读 · 0 评论 -
bzoj3629: [JLOI2014]聪明的燕姿 搜索好题
题目大意:令f(x)=Σi (i|x) 给定n,求所有的x,使f(x)=n首先约数和公式令n=p1^a1*p2^a2*...*pk^ak则f(n)=(1+p1+p1^2+...+p1^a1)*(1+p2+p2^2+...+p2^a2)*...*(1+pk+pk^2+...+pk^ak)于是我们枚举质数p,采取DFS的方式求出所有值#include #include #inclu原创 2015-07-13 12:41:08 · 628 阅读 · 0 评论