HDU6069 2017 Multi-University Training Contest
来源:互联网 发布:mac 设置的快捷方式 编辑:程序博客网 时间:2024/06/04 00:37
题目大意:
求L到R范围内,每个数K次方的因数个数之和。
思路:
唯一分解定理
不要对L-R之间内的数一次次地进行分解质因数,要把质因数的循环放外面,去试除L-R的每个数,这样才能做到一大波常数优化。
#include<bits/stdc++.h>using namespace std;#define pii pair<int, int>typedef long long ll;typedef unsigned long long ull;const int maxn = 1000105;const ll mod = 998244353;int prim[maxn], p[maxn], cnt = 0;void init(){ for(ll i = 2; i <= 1000000; i++) if(prim[i] == 0) { p[++cnt] = i; for(ll j = i*i; j <= 1000000; j += i) prim[j] = 1; }}ll number[maxn], val[maxn], tol[maxn];int main(){ init(); int t; ll l, r, k; scanf("%d", &t); while(t--) { cin >> l >> r >> k; for(ll i = l; i <= r; i++) number[i-l+1] = i, val[i-l+1] = 1; for(ll i = 1; i <= cnt; i++) { if(r < p[i]) break; ll t1 = (l / p[i]) * p[i]; for(; t1 <= r; t1 += p[i]) if(t1 >= l) { ll cou = 0; while(number[t1-l+1] % p[i] == 0) { cou++; number[t1-l+1] /= p[i]; } val[t1-l+1] = val[t1-l+1] * (cou * k + 1) % mod; } } for(ll i = l; i <= r; i++) if(number[i-l+1] != 1) val[i-l+1] = val[i-l+1] * (k + 1) % mod; ll ans = 0; for(ll i = l; i <= r; i++) ans = (ans + val[i-l+1]) % mod; cout << ans << endl; } return 0;}
阅读全文
0 0
- HDU6069 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest 4 1003 || HDU6069
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 国家集训队论文分类整理
- bootstrap table和tableExport导出支持中文的Excel和pdf等表格
- /data/anr/traces.txt下获取ANR日志
- 软测实用六法
- jquery easyui 使用注意事项
- HDU6069 2017 Multi-University Training Contest
- Hbase超详细介绍
- onload事件
- Java主动调用GC方法
- bootstrap typeahead 3
- Eclipse项目上存在红叉 Problems出现errors:Target runtime XXX is not defined
- Spring Boot(一):添加任务管理的解决办法
- 解决EntityFrameworkCore “无法将“Add-Migration”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。”
- B