Code:

#include <cstdio>
#include <algorithm>
#include <cstring> #define ll long long
#define setIO(s) freopen(s".in","r",stdin),freopen(s".out","w",stdout)
const long long mod = 2147483648;
const long long N = 100008;
const int maxn = 100009 ; using namespace std; struct M{
int delta;
int id;
}opt[maxn]; int prime[maxn],tot,vis[maxn],mu[maxn],g[maxn],answer[maxn];
int cmp2(M a,M b){ return a.delta < b.delta; }
void Init(){
mu[1] = 1;
for(int i=2;i < maxn; ++i) {
if(!vis[i]) prime[++tot] = i, mu[i] = -1;
for(int j=1;j <= tot && (ll)i * prime[j] <= N; ++j) {
vis[i * prime[j]] = 1;
if(i % prime[j]==0) {
mu[i * prime[j]] = 0;
break;
}
mu[i*prime[j]]=-mu[i];
}
}
for(int i=1;i<maxn;++i)
for(ll j=1;(ll)j*i<=N;++j) g[i*j] += i;
for(int i=1;i<maxn;++i) opt[i].delta=g[i],opt[i].id=i;
sort(opt+1,opt+maxn,cmp2);
}
struct BIT{
ll C[maxn];
int lowbit(int t) { return t & (-t); }
void update(int x,ll k) {
while(x < maxn) {
C[x]+=k, C[x]%=mod;
x+=lowbit(x);
}
}
ll query(int x){
ll sum=0;
while(x>0) sum+=C[x],sum%=mod,x-=lowbit(x);
return sum;
}
}tree;
ll work(int n,int m,int p) {
if(n>m) swap(n,m);
long long sum=0;
for(int i=1,j;i <= n;i=j+1) {
j=min(n/(n/i),m/(m/i));
sum+=(n/j)*(m/j)*(tree.query(j)-tree.query(i-1));
sum%=mod;
}
return sum;
}
struct P{ int n,m,a,id; }node[maxn];
int cmp(P a,P b){ return a.a<b.a; }
void oper(int p){ for(int i=1;i*opt[p].id<=N;++i) tree.update(opt[p].id*i,((ll)opt[p].delta*mu[i]+mod)%mod); }
int main(){
//setIO("input");
Init();
int T;
scanf("%d",&T);
for(int i=1;i<=T;++i) scanf("%d%d%d",&node[i].n,&node[i].m,&node[i].a),node[i].id=i;
sort(node+1,node+1+T,cmp);
int last=1;
for(int i=1;i<=T;++i) {
int j=last;
while(opt[j].delta <= node[i].a) oper(j),++j;
last=j;
answer[node[i].id]=(int)work(node[i].n,node[i].m,node[i].a);
}
for(int i=1;i<=T;++i) printf("%d\n",(answer[i]+mod)%mod);
return 0;
}

  

最新文章

  1. Enterprise Achitect使用与类的关系的简单介绍
  2. chrome 浏览器命令
  3. MTK6515 android打版软件配置(DrvGen.exe 使用)
  4. JVM学习笔记(二)------Java代码编译和执行的整个过程
  5. Css3 Media Queries移动页面的样式和图片的适配问题(转)
  6. Server Error The server encountered an error and could not complete your request. 新建站点模版失败
  7. Google设计理念
  8. SQL Server 中关于EXCEPT和INTERSECT的使用方法
  9. 硝烟中的Scrum和XP-我们如何实施Scrum 4 (Part 1/2)
  10. 【.Net】文件并发(日志处理)--队列--Redis+Log4Net
  11. ViewPager引导
  12. 【NET】Winform分页控件初探
  13. openstack中dashboard页面RuntimeError: Unable to create a new session key. It is likely that the cache is unavailable.
  14. Orcle导入导出dmp文件
  15. leetcode第一刷_Populating Next Right Pointers in Each Node II
  16. storm集群配置
  17. Qthread的使用方法
  18. InnerClass annotations are missing corresponding EnclosingMember annotations. Such InnerClas...
  19. Linux操作系统安装与VMTools的安装
  20. 使用yum时出现的404

热门文章

  1. JDBC连接MySQL数据库(一)——数据库的基本连接
  2. centos7安装nginx(基础篇)
  3. Python数据分析4------------数据变换
  4. 通过js 实现 向页面插入js代码并生效,和页面postMessage通讯
  5. linux一些简单的操作命令
  6. Ubuntu环境搭建svn服务器
  7. python中的and、or 操作符
  8. 在 CentOS7 上配置 nginx 虚拟主机
  9. pandas之cut(),qcut()
  10. Ubuntu下安装Tensorflow