[cogs 2190]花样游戏
来源:互联网 发布:兵人 淘宝店 编辑:程序博客网 时间:2024/04/20 09:34
FWT
#define MAXN 200010#include <cstdio> using namespace std;typedef long long ll;const int md = 1e9 + 7, inv2 = 500000004;int power_mod(int a, int b = md - 2) { int ret = 1; while(b > 0) { if(b & 1) ret = (ll)ret * a % md; b >>= 1; a = (ll)a * a % md; }return ret;}void fwt(int* A, int n) { for(int k = 1 ; k <= n ; k <<= 1) { int t = k>>1; for(int i = 0 ; i <= n ; i += k) { for(int j = 0 ; j < t ; j ++) { int x = A[i+j], y = A[i+j+t]; A[i+j] = (x + y) % md; A[i+j+t] = (x - y) % md; } } }}void ifwt(int* A, int n) { for(int k = 1 ; k <= n ; k <<= 1) { int t = k>>1; for(int i = 0 ; i <= n ; i += k) { for(int j = 0 ; j < t ; j ++) { int x = A[i+j], y = A[i+j+t]; A[i+j] = (ll)(x + y) * inv2 % md; A[i+j+t] = (ll)(x - y) * inv2 % md; } } }}int f[MAXN], p[MAXN], primes, n, m;bool vis[MAXN];int main() { freopen("srmnim.in", "r", stdin); freopen("srmnim.out", "w", stdout); n = 60000; for(int i = 2 ; i <= n ; ++ i) { if(!vis[i]) p[++ primes] = i; for(int j = 1 ; j <= primes ; ++ j) { if(1ll * i * p[j] > n)break; vis[i * p[j]] = true; if(i % p[j] == 0)break; } } while(~ scanf("%d%d", &n, &m)) { int N = 1; for( ; N <= m ; N <<= 1); for(int i = 0 ; i < N ; ++ i)f[i] = 0; for(int i = 1 ; p[i] <= m ; ++ i) f[p[i]] = 1; fwt(f, N); for(int i = 0 ; i < N ; ++ i) f[i] = power_mod(f[i], n); ifwt(f, N); printf("%d\n", (f[0]+md)%md); } return 0;}
1 0
- [cogs 2190]花样游戏
- COGS 612 摩托车游戏
- COGS 352 数字游戏
- Cogs 876. 游戏(DP)
- Cogs 452. Nim游戏!(博弈)
- COGS 1437. [NOIP2013]转圈游戏 解题报告
- COGS 137. [USACO Feb08] 连线游戏
- COGS 452. Nim游戏!解题报告
- NOI 1997 积木游戏 (COGS 261) DP
- NOIP 2012 国王游戏 贪心 高精度 (COGS 1263)
- Cogs 763. [USACO Open09] 数字的游戏(博弈)
- Console 花样
- 花样ProgressBar
- 花样排序
- 花样ProgressBar
- 花样LED
- 花样灯
- 花样灯
- Ubuntu 14.04/14.10下安装VMware Workstation 11图文教程
- 【NOIP2016提高组A组7.16】第三条跑道
- ubuntu14.04安装http代理squid并设置用户名和密码
- TELNET “no router to host”错误问题解决
- 【Android 基础】反编译工具介绍-【Jadx 大法好】
- [cogs 2190]花样游戏
- 【9401】斐波那契数列
- JQuery中parent(),parents(),parentsUntil()区别和使用技巧
- 关于一只翻车的HowarLi
- android添加support v7
- 19. ubuntu 16.04 LTS 安装mailx
- 在项目中添加Tomcat插件并运行 clean package时发现的错误
- 关于<c:forEach var="item " items="${ns }">中要注意的问题
- Linux添加/删除用户和用户组