【记录】loj2967「COCI 2010.03.06」PROGRAM

作为回归题挺有意思的。

这个求和级数需要了解一下:

so 暴力即可,相同的 可以搞个 cnt 优化一下。

cpp 复制代码
#include<bits/stdc++.h>
using namespace std;

typedef long long LL;
const int N = 1e6 + 10;
int cnt[N];
int n, K;
LL s[N];
vector<int> G;

int main () {
    ios::sync_with_stdio(false);
    cin.tie(0);

    cin >> n >> K;
    memset(cnt, 0, sizeof(cnt));
    for (int i = 1; i <= K; i ++) {
        int x;
        cin >> x;
        if (cnt[x] == 0) {
            G.push_back(x);
        }
        cnt[x] ++;
    }

    sort(G.begin(), G.end());
    memset(s, 0, sizeof(s));
    for (int i : G) {
        for (int j = 0; j <= n; j += i) {
            s[j] += cnt[i];
        }
    }
    for (int i = 1; i <= n; i ++) {
        s[i] += s[i - 1];
    }

    int q;
    cin >> q;
    while (q --) {
        int l, r;
        cin >> l >> r;
        if (l != 0) {
            cout << s[r] - s[l - 1] << "\n";
        }
        else {
            cout << s[r] << "\n";
        }
    }

    return 0;
}
相关推荐
可编程芯片开发8 分钟前
基于FOC控制器的BLDC无刷直流电机控制系统matlab编程与仿真
算法
瓶中怪13 分钟前
ROS2 机器人软件系统
linux·c++·python·ubuntu·vmware·ros2·机器人软件开发
从零开始的代码生活_34 分钟前
NAT、代理服务与内网穿透详解
linux·服务器·网络·c++·http·智能路由器
aaaameliaaa36 分钟前
进制练习题【找出只出现一次的数字、交换两个变量(不创建临时变量)、统计二进制中1的个数、打印整数二进制的奇数位和偶数位、求两个数二进制中不同位的个数】
c语言·数据结构·笔记·算法
charlie1145141911 小时前
Cinux: 加载第一个内核:从 bootloader 跳进 C++
linux·开发语言·c++·嵌入式
QiLinkOS2 小时前
第三视觉理解徐玉生与他的商业活动(28)
大数据·c++·人工智能·算法·开源协议
星夜夏空992 小时前
C++学习(2) —— 类与对象基础
开发语言·c++·学习
wabs6663 小时前
关于动态规划【力扣1143.最长公共子序列的思考】
算法·leetcode·动态规划
剑挑星河月3 小时前
54.螺旋矩阵
java·算法·leetcode·矩阵
Robot_Nav3 小时前
MPPI 局部规划器实验设计讲解
人工智能·算法·mppi