BZOJ 4018 小Q的幻想之乡
来源:互联网 发布:资料员软件 编辑:程序博客网 时间:2024/04/29 07:34
题目:http://www.lydsy.com/JudgeOnline/problem.php?id=4018
题意:
题解:
考虑将
首先引入一个记号,令
(最后一步是将
后面那一坨只和
而前面那一坨,令
若
若
若
对于询问,容易看出
代码:
#include <cstdio>#include <algorithm>using namespace std;const int maxn = 2000001, mod1 = 1000000007, mod2 = 1000000009;int t, n, m, p, q, tot, prime[maxn], sf[maxn][2], ans[2];bool vis[maxn];void inc(int &x, int y, int mod){ x += y; if(x >= mod) x -= mod;}int f(int A, int B, int mod){ if(!A || !B) return 0; if(A > B) swap(A, B); int cnt1 = (long long)(A - 1) * A * (A + 1) / 3 % mod; int cnt2 = (long long)A * B * (B - A) / 2 % mod; inc(cnt1, cnt2, mod); return cnt1;}int main(){ sf[1][0] = sf[1][1] = 1; for(int i = 2; i < maxn; ++i) { if(!vis[i]) { prime[tot++] = i; sf[i][0] = mod1 - i + 1; sf[i][1] = mod2 - i + 1; } for(int j = 0; j < tot && (long long)i * prime[j] < maxn; ++j) { vis[i * prime[j]] = 1; if(i % prime[j] == 0) { sf[i * prime[j]][0] = sf[i][0]; sf[i * prime[j]][1] = sf[i][1]; break; } else { sf[i * prime[j]][0] = (long long)sf[i][0] * sf[prime[j]][0] % mod1; sf[i * prime[j]][1] = (long long)sf[i][1] * sf[prime[j]][1] % mod2; } } } for(int i = 2; i < maxn; ++i) { inc(sf[i][0], sf[i - 1][0], mod1); inc(sf[i][1], sf[i - 1][1], mod2); } scanf("%d", &t); while(t--) { scanf("%d%d", &n, &m); if(n > m) swap(n, m); ans[0] = ans[1] = 0; for(int i = 1, j; i <= n; i = j + 1) { j = min(n / (n / i), m / (m / i)); inc(ans[0], (long long)(sf[j][0] - sf[i - 1][0] + mod1) * f(n / i, m / i, mod1) % mod1, mod1); inc(ans[1], (long long)(sf[j][1] - sf[i - 1][1] + mod2) * f(n / i, m / i, mod2) % mod2, mod2); } printf("%d %d\n", ans[0], ans[1]); } return 0;}
0 0
- BZOJ 4018 小Q的幻想之乡
- bzoj 4813 [Cqoi2017]小Q的棋盘
- BZOJ 4813 [Cqoi2017]小Q的棋盘
- bzoj 4815: [Cqoi2017]小Q的表格
- bzoj 4814 [Cqoi2017]小Q的草稿
- BZOJ 4813 [Cqoi2017]小Q的棋盘
- bzoj 3925: [Zjoi2015]地震后的幻想乡
- BZOJ 3925 [Zjoi2015]地震后的幻想乡
- bzoj 3926 [Zjoi2015]诸神眷顾的幻想乡
- BZOJ 4596: [Shoi2016]黑暗前的幻想乡
- BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡
- BZOJ 4596 [Shoi2016]黑暗前的幻想乡
- bzoj 3926 [Zjoi2015]诸神眷顾的幻想乡
- [bzoj]4596: [Shoi2016]黑暗前的幻想乡
- 【BZOJ 3926】【ZJOI 2015】 诸神眷顾的幻想乡
- BZOJ 4017 小Q的无敌异或
- bzoj 4017 小Q的无敌异或
- [BZOJ 4815] [Cqoi2017]小Q的表格 解题报告
- rails 的Helper
- 2014找工作总结-机会往往留给有准备的人
- thinkServer TS240 windows server 2003安装记录
- Rails3处理css和js
- java 正则表达式
- BZOJ 4018 小Q的幻想之乡
- HDU 2083 简易版之最短距离
- EJB到底是什么,真的那么神秘吗??
- 背包问题(天平)——POJ 1837
- 优化SQL查询
- rails3 常用插件
- Ubuntu14.04 安装JDK8
- 日志文件支持unicode字符的做法
- Yii:在ajax刷新中使用CJuiDatePicker日期控件