首页 > 其他分享 >HDU 4135 Co-prime

HDU 4135 Co-prime

时间:2022-10-25 14:01:57浏览次数:75  
标签:prime tmp HDU Co int ll cnt ans include


题目链接:​​传送门​

多组数据问区间内与互质的数的个数
区间问题显然要转化成两个区间相减的问题
也就是的答案减去的答案
这里反过来求不互质的数的个数
筛法可以提示我们
分解质因数,通过质因子来筛数
所以我们存下这个的质因子
用二进制的方法枚举每种情况
但是这样筛可能会有重复
比如会被各筛一遍
这就用到了容斥原理奇数加偶数减
不互质的数的个数直接质因子相乘做除法就好了
然后
就没了

#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <complex>
#include <algorithm>
#include <climits>
#include <queue>
#include <map>
#include <set>
#include <vector>
#include <iomanip>
#define
#define

using namespace std;
typedef long long ll;
int pri[A], n, T;
ll a, b;
ll sol(ll n, int cnt, ll ans = 0) {
for (int i = 1; i < (1 << cnt); i++) { //二进制枚举所有情况
int tmp = 1, js = 0;
for (int j = 0; j < cnt; j++) {
if ((i >> j) % 2 == 0) continue;
js++; tmp *= pri[j];
}
if (js & 1) ans += n / tmp;
else ans -= n / tmp;
}
return n - ans;
}

int main(int argc, char const *argv[]) {
cin >> T;
for (int k = 1; k <= T; k++) {
cin >> a >> b >> n; int cnt = 0;
for (int i = 2; i * i <= n; i++) //筛质因子
if (n % i == 0) {
while (n % i == 0) n /= i;
pri[cnt++] = i;
}
if (n != 1) pri[cnt++] = n;
cout << "Case #" << k << ": " << sol(b, cnt) - sol(a - 1, cnt) << endl;
}
}


标签:prime,tmp,HDU,Co,int,ll,cnt,ans,include
From: https://blog.51cto.com/lyle/5794675

相关文章

  • Luogu P2859 [USACO06FEB]摊位预订Stall Reservations
    题目链接:​​传送门​​很明显的要贪心从左右端点考虑先排序保证单调性每次往后看有没有能接上的单调性才保证了这个往后看的复杂度于是就很好写了/***@Date:2019......
  • 构建 Flutter 应用程序的10个最佳 VSCode 插件
    构建Flutter应用程序的10个最佳VSCode插件在本文中,我们将分享使用VisualStudio代码(VSCode)IDE的经验。我们的开发团队更喜欢使用某些插件,这里我们将解释原因......
  • CodeChef Match the Streams
    题目链接:​​传送门​​题目中的pdf翻译:题目描述:给定两个序列和。定义序列和的相似度为满足的下标的数量。你需要回答个询问。每个询问给定参数,你需要将更改为,然后计算序......
  • Jenkins新建任务时,输入远程仓库地址设置,选择凭证后一直提示连不上 jenkins stderr:
    我的jenkins是docker部署的需要在jenkins的容器里执行以下命令访问git上的仓库地址,把git的主机添加到/root/.ssh/known_hosts(执行命令前known_hosts这个文件是不存在的,......
  • k8s之serviceAccount创建
    1、创建serviceAccountvim serviceAccount.yaml---apiVersion:v1kind:ServiceAccountmetadata:name:springcloud-kubernetesnamespace:dev---kind:Rol......
  • D. Min Cost String
    传送门题意:构造一个字符串,长度为n,只能出现前k个小写字符,要求花费最小,花费为对于\(i<j,s[i]==s[j]且s[i+1]==s[j+1]\)则就记为一个花费思路:首先,想一个问......
  • HDU 3349 Consumer
    ​​题目链接​​题目背景有依赖的背包,下面用我常用的变量和说法。题目大意有个主件和块钱,每个主件都有费用和对应的个附件,附件也有费用与价值,购买主件后才能购买附件,问怎......
  • LOJ #6175. 「美团 CodeM 初赛 Round B」黑白树
    题目链接:​​传送门​​一个很贪心的数位dp显然从叶节点开始染色是优的因为相比更靠上的节点来说会染到更多的节点那就先去染叶节点,在他的父亲节点处判断是否被覆盖如果......
  • LOJ #2012. 「SCOI2016」背单词
    题目链接:​​传送门​​显然第一个情况和第二个情况不如第三个更优并且他们可以避免,所以尽量构造第三种情况将每个字符倒着插入trie树,因为先放后面的字符串是更优的然后......
  • Python报错-UnicodeDecodeError: 'gbk' codec can't decode byte 0x81 in position 35
    问题描述:读文件报错  【代码】:withopen("D:\Code\Python\data.txt")asfile_object:contents=file_object.read()print(contents)【报错提示】:Trace......