和hdu2204有点像

这题要特别注意精度问题,如pow的精度需要自己搞一下,然后最大的longlong可以设为1<<31

/*
只要求[1,n]范围内的sum即可
那么先枚举幂次k[1,63]
然后求 x^k<=n,x的最大取值sum[i](这里要扩大一下pow的精度)
然后进行容斥,j%i==0,si-=sj
*/
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define INF (ll)1<<31
#define esp 1e-18
ll sum[];
const double inf=1e18+;
/*
ll Pow(ll a,ll b){//防越界的快速幂
ll res=1;
while(b){
if(b%2){
double judge=1.0*inf/res;
if(a>judge)return -1;//必须先判断res*a是否会越界
res=res*a;
}
b>>=1;
if(a>INF && b>0)return -1;//判断a是否越界了
a=a*a;
}
return res;
} ll calc(ll k,ll n){
ll x=(ll)pow(n,1.0/k),t,p;
p=Pow(x,k);
if(p==n)return x;//刚好相等
if(p>n || p==-1) x--;//越界了
else {//判断x是否能再+1
t=Pow(x+1,k);
if(t!=-1 && t<=n)x++;
}
return x;
} */ ll multi(ll a,ll b)//快速乘
{
ll ans=;
while(b){
if(b&){
double judge=1.0*inf/ans;
if(a>judge) return -;
ans*=a;
}
b>>=;
if(a>INF&&b>) return -;
a=a*a;
}
return ans;
}
ll Find(ll x,ll k)//手动扩大pow精度
{
ll r=(ll)pow(x,1.0/k);
ll t,p;
p=multi(r,k);
if(p==x) return r;
if(p>x||p==-) r--;
else
{
t=multi(r+,k);
if(t!=-&&t<=x) r++;
}
return r;
}
ll solve(ll n){
if(n==)return ;
ll res=,Max=;
memset(sum,,sizeof sum);
sum[]=n;
for(ll k=;k<=;k++){
sum[k]=Find(n,k);//求扩精度后的最大的x
if(sum[k])sum[k]--;//1特判
if(sum[k]==){Max=k;break;}
}
//容斥
for(int j=Max;j>=;j--)
for(int i=;i<j;i++)
if(j%i==)sum[i]-=sum[j];
for(int i=;i<=Max;i++)res+=sum[i]*i;
return res;
} int main(){
ll L,R;
while(cin>>L>>R && R)
cout<<solve(R)-solve(L-)<<endl;
}

容斥原理——hdu3208的更多相关文章

  1. hdu4059 The Boss on Mars(差分+容斥原理)

    题意: 求小于n (1 ≤ n ≤ 10^8)的数中,与n互质的数的四次方和. 知识点: 差分: 一阶差分: 设  则    为一阶差分. 二阶差分: n阶差分:     且可推出    性质: 1. ...

  2. hdu2848 Visible Trees (容斥原理)

    题意: 给n*m个点(1 ≤ m, n ≤ 1e5),左下角的点为(1,1),右上角的点(n,m),一个人站在(0,0)看这些点.在一条直线上,只能看到最前面的一个点,后面的被档住看不到,求这个人能看 ...

  3. BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】

    2301: [HAOI2011]Problem b Time Limit: 50 Sec  Memory Limit: 256 MBSubmit: 4032  Solved: 1817[Submit] ...

  4. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

  5. ACM/ICPC 之 中国剩余定理+容斥原理(HDU5768)

    二进制枚举+容斥原理+中国剩余定理 #include<iostream> #include<cstring> #include<cstdio> #include&l ...

  6. HDU5838 Mountain(状压DP + 容斥原理)

    题目 Source http://acm.hdu.edu.cn/showproblem.php?pid=5838 Description Zhu found a map which is a N∗M ...

  7. 【BZOJ-2669】局部极小值 状压DP + 容斥原理

    2669: [cqoi2012]局部极小值 Time Limit: 3 Sec  Memory Limit: 128 MBSubmit: 561  Solved: 293[Submit][Status ...

  8. HDU 2204Eddy's爱好(容斥原理)

    Eddy's爱好 Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Submit Sta ...

  9. CF451E Devu and Flowers (隔板法 容斥原理 Lucas定理 求逆元)

    Codeforces Round #258 (Div. 2) Devu and Flowers E. Devu and Flowers time limit per test 4 seconds me ...

随机推荐

  1. java 读取mysql中数据 并取出

    public static String url = null; public static String username = null; public static String password ...

  2. 关于strtok函数

    函数原型: char *strtok(char * strToken, const char *strDelimit) 参数说明: strToken:源字符串,即待分割的串 strDelimit:st ...

  3. 唯一id

    package com.debug.kill.server.utils; /** * Created by Administrator on 2019/6/20. */ import org.apac ...

  4. OpenLiveWriter博客工具

    1.OpenLiveWriter安装 官网下载地址:http://openlivewriter.org/ 默认安装到:C:\Users\用户\AppData\Local\OpenLiveWriter目 ...

  5. JAVA API about HTTP 3

    package com.han.http; import java.io.IOException; import java.io.UnsupportedEncodingException; impor ...

  6. yii2 vendor/bower/jquery/dist not exist

    查看 vendor 文件夹,只有bower-asset文件夹 手动修改 bower-asset 为bower 倒也可以,yii2项目每次 composer install 成功之后,每次重命名这个文件 ...

  7. CF930E Coins Exhibition

    题意:平面上一共有k个硬币(k<=1e9),给你n个区间这些区间中至少有一个硬币反面朝上,m个区间中至少有一个硬币正面朝上.问有多少种硬币放置方案?n,m<=100005. 标程: #in ...

  8. excel批量删除sql语句

    数据如下表一样 在E1列输入update sql 模板 ="update test set A= '"&A1&"' ,B = '"&B1 ...

  9. Elasticsearch日志之删除索引

    1.查询索引 [root@ecs-- elasticsearch]# curl -XGET http://localhost:9200/* {,,},},},,,},},},,,},},},,,},} ...

  10. Linux课程---15、域名相关

    Linux课程---15.域名相关 一.总结 一句话总结: 先购买域名,再备案,再解析,域名即可使用 1.域名备案是怎么回事(比如二级域名,三级域名)? 每个二级域名需要备案一次,三级域名不需要备案, ...