hdu2841Visible Trees 容斥原理
来源:互联网 发布:外卖订餐软件潍坊 编辑:程序博客网 时间:2024/05/29 13:14
//给定一个n*m的方格,农场主从(0 , 0 )开始看 , 只能看到
//一条直线上的第一个格子,问农场主能看到几个格子
//对于任意的坐标(x,y) ,与其在同一条直线上的坐标有(k*x , k*y)
//故而可以枚举所有的x,找其在(1,m)有多少个互质的数
#include<cstring>
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std ;
typedef __int64 ll ;
const int maxn = 100010 ;
int isp[maxn] ;
vector<int> vec[maxn] ;
void set()
{
memset(isp , 0 , sizeof(isp)) ;
for(int i = 2;i < maxn;i+=2)
vec[i].push_back(2) ;
for(int i = 3;i < maxn;i+=2)
{
if(isp[i])continue ;
for(int j = i;j < maxn;j+=i)
{
isp[j] = 1;
vec[j].push_back(i) ;
}
}
}
int dfs(int pos , int x , int num)
{
int ans = 0 ;
for(int i = pos ;i < vec[x].size() ;i++)
ans += num/vec[x][i] - dfs(i+1 , x , num/vec[x][i]) ;
return ans ;
}
int main()
{
int n , m ;
set() ;
int T;scanf("%d" ,&T) ;
while(T--)
{
scanf("%d%d" , &n, &m) ;
ll ans = m;
for(int i = 2;i <= n;i++)
ans +=( m - dfs(0 , i , m)) ;
printf("%I64d\n" , ans) ;
}
return 0 ;
}
//一条直线上的第一个格子,问农场主能看到几个格子
//对于任意的坐标(x,y) ,与其在同一条直线上的坐标有(k*x , k*y)
//故而可以枚举所有的x,找其在(1,m)有多少个互质的数
#include<cstring>
#include<iostream>
#include<cstdio>
#include<vector>
using namespace std ;
typedef __int64 ll ;
const int maxn = 100010 ;
int isp[maxn] ;
vector<int> vec[maxn] ;
void set()
{
memset(isp , 0 , sizeof(isp)) ;
for(int i = 2;i < maxn;i+=2)
vec[i].push_back(2) ;
for(int i = 3;i < maxn;i+=2)
{
if(isp[i])continue ;
for(int j = i;j < maxn;j+=i)
{
isp[j] = 1;
vec[j].push_back(i) ;
}
}
}
int dfs(int pos , int x , int num)
{
int ans = 0 ;
for(int i = pos ;i < vec[x].size() ;i++)
ans += num/vec[x][i] - dfs(i+1 , x , num/vec[x][i]) ;
return ans ;
}
int main()
{
int n , m ;
set() ;
int T;scanf("%d" ,&T) ;
while(T--)
{
scanf("%d%d" , &n, &m) ;
ll ans = m;
for(int i = 2;i <= n;i++)
ans +=( m - dfs(0 , i , m)) ;
printf("%I64d\n" , ans) ;
}
return 0 ;
}
0 0
- hdu2841Visible Trees 容斥原理
- hdu2841Visible Trees
- Hdu 2841 Visible Trees 容斥原理
- HDU2841 Visible Trees (容斥原理)
- hdu 2841 Visible Trees(容斥原理)
- HDU 2841 - Visible Trees (容斥原理)
- hdu 2841 Visible Trees【容斥原理】
- hdu 2841 Visible Trees (容斥原理)
- HDU2841 Visible Trees【容斥原理】
- hdoj 2841 Visible Trees 【容斥原理】
- hdu2841 Visible Trees(容斥原理)
- HDOJ 2841 isible Trees (容斥原理)
- 【容斥原理】HDU2841 Visible Trees
- HDU 2841 Visible Trees(容斥原理)
- hdu2848 Visible Trees (容斥原理)
- hdu2841 Visible Trees(容斥原理)
- [HDU 2841]Visible Trees:容斥原理
- Visible Trees(容斥原理)
- ssh反向连接 (SSH中继)
- GLIB 常用数据结构介绍 4
- hdu 1166---线段树入门题目
- php+nginx+ffmpeg 完成后台截图转码功能
- c#基础知识——06
- hdu2841Visible Trees 容斥原理
- 凑算式
- 语义分析语义关联挖掘
- 敏感词过滤
- Linux进程间通信——使用命名管道
- c++ 时间类型详解 time_t
- Json转换利器Gson之实例三-Map处理(上)
- opencart 为品牌管理增加检索名称和状态项
- SSO单点登录