tb的数数问题(牛客小白月赛)

思路:首先好的数一定在A数组里面,之后我们就可以判断哪些数是好数,如果一个数的所有约数都在A里面,那就是一个好数,这个问题我们可以用调和级数暴力来解决,就是当一个数x的约数个数等于其位于A数组中的约数的个数时就是好数。

我们用f[i]来代表,数i的约数个数,用h[i]表示数i位于A数组中的约数个数。

cpp 复制代码
const int maxn = 1000100;
 
ll n, m, a[maxn], f[maxn], g[maxn], h[maxn];
 
void solve() {
    scanf("%lld", &n);
    for (int i = 1; i <= n; ++i) {
        scanf("%lld", &a[i]);
        m = max(m, a[i]);
        g[a[i]] = 1;
    }
    for (int i = 1; i <= m; ++i) {
        for (int j = i; j <= m; j += i) {
            ++f[j];
            h[j] += g[i];
        }
    }
    ll ans = 0;
    for (int i = 1; i <= m; ++i) {
        ans += (f[i] == h[i]);
    }
    printf("%lld\n", ans);
}
相关推荐
想逃离铁厂的老铁2 分钟前
Day45 >> 115、不同的子序列 + 583. 两个字符串的删除操作 + 72. 编辑距离
算法·leetcode
cyyt7 分钟前
深度学习周报(1.12~1.18)
人工智能·算法·机器学习
范纹杉想快点毕业12 分钟前
C语言核心机制全解:内存、地址、数组与指针,共计30000字
算法
Σίσυφος190037 分钟前
RANSAC算法原理与应用
算法
我星期八休息1 小时前
MySQL数据可视化实战指南
数据库·人工智能·mysql·算法·信息可视化
程序员-King.1 小时前
day144—递归—平衡二叉树(LeetCode-110)
算法·leetcode·二叉树·递归
老鼠只爱大米1 小时前
LeetCode经典算法面试题 #739:每日温度(单调栈、动态规划等多种实现方案详解)
算法·leetcode·面试·动态规划·单调栈·每日温度
老鼠只爱大米1 小时前
LeetCode经典算法面试题 #394:字符串解码(递归、双栈、迭代构建等五种实现方案详解)
算法·leetcode·面试·递归··字符串解码
独自破碎E1 小时前
【回溯+剪枝】字符串的排列
算法·机器学习·剪枝
Smart-佀1 小时前
FPGA入门:CAN总线原理与Verilog代码详解
单片机·嵌入式硬件·物联网·算法·fpga开发