scau 18087 开始我是拒接的

其实有一个很有用的技巧就是,把gcd = 4的贡献,压去gcd = 2时的贡献,就不需要考虑这么多的了。

例如:

http://www.cnblogs.com/liuweimingcprogram/p/6818754.html

这题的思路是,把每个数字都质因数分解,比如分解成12 = 2 * 3

然后暴力枚举每个质因子选or不选,就能知道,12的所有因子,

#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <algorithm>
#define IOS ios::sync_with_stdio(false)
using namespace std;
#define inf (0x3f3f3f3f)
typedef long long int LL;

#include <iostream>
#include <sstream>
#include <vector>
#include <set>
#include <map>
#include <queue>
#include <string>
#include <bitset>
const int maxn = 100000 + 20;
int prime[maxn][12];
void initPrime() {
    int mx = 0;
    for (int i = 2; i <= maxn - 20; ++i) {
        if (prime[i][0]) continue;
        for (int j = i; j <= maxn - 20; j += i) {
            prime[j][++prime[j][0]] = i;
//            mx = max(mx, prime[j][0]);
        }
    }
}
int num[maxn];
void init(int val) {
    int en = (1 << prime[val][0]) - 1;
    for (int i = 1; i <= en; ++i) {
        int t = 1;
        for (int j = 1; j <= prime[val][0]; ++j) {
            if (i & (1 << (j - 1))) {
                t *= prime[val][j];
            }
        }
        num[t]++;
    }
}
int calc(int val) {
    int ans = 0;
    int en = (1 << prime[val][0]) - 1;
    for (int i = 1; i <= en; ++i) {
        int t = 1;
        int cnt = 0;
        for (int j = 1; j <= prime[val][0]; ++j) {
            if (i & (1 << (j - 1))) {
                t *= prime[val][j];
                cnt++;
            }
        }
        if (cnt & 1) ans += num[t];
        else ans -= num[t];
    }
    return ans;
}
void work() {
//    int out = 3 * 5 * 7;
//    for (int i = 1; i <= prime[out][0]; ++i) {
//        printf("%d ", prime[out][i]);
//    }
    int n, q;
    scanf("%d%d", &n, &q);
    for (int i = 1; i <= n; ++i) {
        int val;
        scanf("%d", &val);
        init(val);
    }
    for (int i = 1; i <= q; ++i) {
        int val;
        scanf("%d", &val);
        printf("%d\n", n - calc(val));
    }
}

int main() {
#ifdef local
    freopen("data.txt", "r", stdin);
//    freopen("data.txt", "w", stdout);
#endif
    initPrime();
    work();
    return 0;
}

时间: 2024-10-13 21:28:23

scau 18087 开始我是拒接的的相关文章

我是如何在一周内拿到4份offer的?

前言 大概一个月没写博客了吧,这段时间事情比较多(家里有事,请了一段时间假,正好利用剩余几天时间面了几次试),也没抽出来时间写博客,还好所有的事情已经处理完了,今天闲来无事就整理一下这几次 面试过程中遇到的问题吧 我大概面试了6,7家公司吧,有大公司也有小公司,最后拿到4家offer,可能有的人看到这样的数据,会说我在吹牛*,我想说的是你做不到的事情不代表别人做不到.现在把我是如何在一周内拿到4份offer的经验和经历做个简单的介绍,分享一下自己的心得,希望对即将找工作的你有些帮助. 面试准备

《我是一只IT小小鸟》读书笔记

大一进来的第一个学期 我对我所读的软件工程专业感到迷茫与不知.就这么昏昏沉沉的度过了一个学期,第二个学期一开始,在上第一节新增加的“大学生创业与指导”课程充满了好奇,在课上老师推荐的一本书<我是一只IT小小鸟>更是让我充满好奇,<我是一只IT小小鸟>的实书没买到,就上网看电子书了,一天就看完了,看得有点仓促,所以理解估计不深…… 这本书说到了大学里面的一些专业的选择与内容:社团活动:竞赛:实验室:实习:求职:出国:技术社区:人际交往:时间管理:压力管理……看看别人在里面如何学习,如

《我是一只IT小小鸟》读后感

作为一名普通的软件工程大学生,我也算是身处IT行业了.读过<我是一只IT小小鸟>这本书之后我发现,这个曾经火热的行业,虽然经历过一次次的人才补给,但是它和别的行业一样需要有新的血液补充.而我,就立志要成为这新的血液,而且是不一样的血液. 要成为新血液,就要先充实自己,充实自己最好的途径就是学习.最适合学习的地方就是大学. 学习之前,要先搞清楚自己的兴趣是什么.俗话说得好,想“兴趣是最好的老师.”有兴趣的自主学习往往比被迫的被动学习有效的多.兴趣不仅是学习的老师,也是在投入IT行业之后全身心工作

大家好我是新人以后多多关照

大计划,这是我发的第一篇帖子,现在网络实在是太方便了,能发布各种各样的内容,也能结识更多的朋友. 大家好我是新人以后多多关照,布布扣,bubuko.com

我是平民:一个平民怎样投资房产致富

我反问:"房价是不是没有跌7你没有告诉我你要买房,否则我会让你再等两个月." 后来房价上涨速度非常之快.其实不到半年,他的房价涨幅已经超过了税款的额度. 我看透明售房系统 又如透明售房系统.杭州向上海学习,于2004年下半年启动了透明售房系统,推动新建楼盘的公平销售.挤走房产投机者.一般人看来,这个系统必定给消费者以公平的机会,但是实际上并不完全是这样的. 我一直关注下沙的小户型房产.2005年元旦.下沙的"十六街区"即将开盘,我收到房产公司的邀请专门去听了他们的楼

我是如何对网站CSS进行架构的

一.写在前面的 都是自己积累形成的一些东西,可能带有明显的个人印记.不是专业内容,不是权威指南,只是展示一点自己的观点,借此希望能与各位优秀的同行交流看法,见解.以得到进步与提高. 二.我所知的一些过往的做法 关于如何处理网站的CSS,各个网站做法都不一样,这随着网站的性质及大小不同,公司前人留下的规范不同,以及CSS工程师的眼界不同而有所不同.由于我从业经历有限,所知甚浅,只能说些肤浅业余的内容,不准确之处欢迎指出. 就CSS文件而言,有的网站分为header.css, body.css, f

我是如何从一个xss到某个浏览器的远程命令执行

0x01 前言:其实我是个小白平时就喜欢瞎搞,无意间碰到一个浏览器就想一探究竟,好了废话不多说开始!!! 0x02 可以看到我打开的新标签是怎么一个链接页面,既然是页面我是不可以XSS它呢? 于是我就打开了控制器输入XSS代码如下图: 输入payload发现能成功弹窗,我们来假设如果这个浏览器的本地域既然能弹XSS是不可以弹出其他的呢? 没错确实能弹出其他的,如图: 没错我弹出了他的CMD窗口,我们来ipconfig一下 可以看到成功弹出了,我们再来弹出它的计算器试试如图: 是不是很神奇就出来了

夫妻笑话_逗牙搞笑网_姐,我是带多长的刀过来

老公的表哥与他老婆吵架了,婆婆要老公去劝劝.老公求助我,我说不了解情况,爱莫能助.老公循循善诱:“如果我们吵架了,你希望收到你弟弟发什么样的短信给你呢?”复古其我装摸做样扮思考状,说:“姐,我是带多长的刀过来?” 转载:http://www.idouya.xin/html/9-12/12852.htm

【转载】我是一个线程(修订版)

原文:我是一个线程(修订版) 第一回 初生牛犊 我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴. 我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹.把包裹处理完以后还得马上回到这里,否则可能永远回不来了.” 我一脸懵懂,“包裹,什么包裹?” “不要着急,马上你就会明白了,我们这里是不养闲人的.” 果然,没多久,屋子的门开了, 一个面貌凶恶的家伙吼道:“0x3704 ,出来!” 我一出