BZOJ 2301
来源:互联网 发布:苏梅岛用什么地图软件 编辑:程序博客网 时间:2024/05/24 06:28
BZOJ 2301
文章来自我的新博客
Description:
Solution:
Code:
#include <cstdio>#include <cstdlib>#include <cstring>#include <cmath>#include <algorithm>#include <iostream>using namespace std;long long A,B,C,D,K;int mu[50010]={0};int hash[50010]={0};int prime[50010]={0};int pp=0;void Pre_(){ mu[1]=1; for(int i=2;i<=50000;i++) { if(hash[i]==0) { prime[++pp]=i; mu[i]=-1; } for(int j=1;j<=pp && i*prime[j]<=50000;j++) { hash[i*prime[j]]=1; if(i%prime[j]==0) { mu[i*prime[j]]=0; break; } mu[i*prime[j]]=-mu[i]; } mu[i]+=mu[i-1]; } return;}long long Calc(long long N,long long M){ if(N>M) swap(N,M); long long returnd=0; int last=0; for(int i=1;i<=N;i=last+1) { long long T1=N/i,T2=M/i; last=min(N/T1,M/T2); returnd+=(mu[last]-mu[i-1])*T1*T2; } return returnd;}int main(){ int T; cin>>T; Pre_(); for(;T>0;T--) { int a,b,c,d,k; scanf("%d%d%d%d%d",&a,&c,&b,&d,&k); A=a,B=b,C=c,D=d,K=k; long long ans=Calc(C/K,D/K)-Calc((A-1)/K,D/K)-Calc(C/K,(B-1)/K)+Calc((A-1)/K,(B-1)/K); printf("%lld\n",ans); } return 0;}
0 0
- BZOJ 2005 & BZOJ 2301
- BZOJ 2301
- BZOJ 2301
- bzoj-2301 Problem b
- 【BZOJ】2301 Problem b
- BZOJ 2301 Problem b
- bzoj 2301(Mobius)
- [BZOJ ]
- BZOJ****-****
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- BZOJ
- poj 1003&&HDU 1056 && nyoj 156 Hangover【水题】
- Cocos2dx — (二) 笔记
- jsp中获得路径的两个方法和获得url路径的方法
- LeetCode之Number of Digit One
- C++使用模板类
- BZOJ 2301
- Java心得30
- Android面试自我介绍
- 黑马程序员——C语言之排序方法
- 如何阅读Java源码 阅读java的真实体会
- C++引用浅析以及引用和指针的区别
- IntelliJ IDEA 快捷键
- UVA 10118 紫书习题9—2
- iOS系统 查看设备序列号 获取UDID