BZOJ 3823 定情信物【脑推公式/找规律,线性求逆元,坑爹的数论题细节x
2016-11-08 23:53
197 查看
如果用f[i][j]表示i维空间里的j维元素有多少个,有公式 f[i][j] = C(i,j) * 2^(i-j)
……看题解似乎都是找规律的啊……sro mhy orz
考虑j维向量的方向有C(i,j)个,对于每个方向的向量,可以放置的位置的数量 显然就是剩下的几维随便填的方案数,2^(i-j)
毛神他们加的数据……大概就是当n>p的时候……p的倍数没有逆元这样的毒瘤数据,稍微记一下有多少个p就好了
……
哦还有线性地求1~n的逆元……私觉得Miskcoo大爷讲得很稳
传送门:http://blog.miskcoo.com/2014/09/linear-find-all-invert
代码:
……看题解似乎都是找规律的啊……sro mhy orz
考虑j维向量的方向有C(i,j)个,对于每个方向的向量,可以放置的位置的数量 显然就是剩下的几维随便填的方案数,2^(i-j)
毛神他们加的数据……大概就是当n>p的时候……p的倍数没有逆元这样的毒瘤数据,稍微记一下有多少个p就好了
……
哦还有线性地求1~n的逆元……私觉得Miskcoo大爷讲得很稳
传送门:http://blog.miskcoo.com/2014/09/linear-find-all-invert
代码:
#include<bits/stdc++.h> #define MAXN 10000007 using namespace std; int n,p; int inv[MAXN]; int cf2[MAXN]; int rec_fac = 1,rec_fac_p; inline void init(){ inv[1] = 1 ; for(register int i=2;i<=min(n,p-1);++i) inv[i] = 1ll * (p - p/i) * inv[p%i] % p; cf2[0] = 1 ; for(register int i=1;i<=n;++i) cf2[i] = cf2[i-1] * 2 % p; } int ans = 0; inline void work(){ int now = 1; ans = cf2 ^ 1; for(register int i = 1; i<n;++i,now = now*2 % p){ int k = n - i + 1; while(!(k%p)) ++rec_fac_p,k/=p; rec_fac = 1ll * rec_fac * k % p; k = i ; while(!(k%p)) --rec_fac_p,k/=p; rec_fac = 1ll * rec_fac * inv[k%p] % p; if(!rec_fac_p) ans ^= (int)(1ll * rec_fac * cf2[n-i] % p); // printf("%d\n",ans); } printf("%d",ans); } int main(){ scanf("%d%d",&n,&p); init(); work(); return 0; }
相关文章推荐
- 【BZOJ3823】【East!模拟赛_Round5T1】定情信物 推公式+线性筛逆元(推公式法比出题人简)
- 【bzoj2186】[Sdoi2008]沙拉公主的困惑 数论 线性筛逆元
- [数学 找规律] BZOJ 3823 定情信物
- bzoj 3823: 定情信物 线性筛逆元
- [bzoj2813]奇妙的Fibonacci数列 (数论+线性筛)
- BZOJ-1013 球形空间产生器sphere 高斯消元+数论推公式
- 【数论】【枚举】【莫比乌斯反演】【线性筛】bzoj2818 Gcd
- [数论]线性求所有逆元的方法
- 数论知识总结(乘法逆元,欧拉函数,线性筛,快速幂,快速乘等)
- 【codevs2301】【BZOJ2186】沙拉公主的困惑,数论练习之逆元与φ
- 【数论】【莫比乌斯反演】【线性筛】bzoj2301 [HAOI2011]Problem b
- bzoj 3823: 定情信物
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
- BZOJ 3823: 定情信物
- Bzoj 2186: [Sdoi2008]沙拉公主的困惑 乘法逆元,线性筛,欧拉函数,数论
- [BZOJ3823]定情信物
- Kickstart Round A 2017 Problem A. Square Counting 公式、数论逆元、除法取模
- BZOJ-2190 仪仗队 数论+欧拉函数(线性筛)
- 定情信物(bzoj 3823)
- BZOJ2186 [Sdoi2008]沙拉公主的困惑 【数论,欧拉函数,线性筛,乘法逆元】