Description

CX老湿经常被人黑,被黑得多了,自己也就麻木了。于是经常听到有人黑他,他都会深情地说一句:禽兽啊!

一天CX老湿突发奇想,给大家出了一个难题,并且声称谁能够准确地回答出问题才能继续黑他,否则他就要反击了。

这个难题就是:

给出两个数p和q,接下来q个询问,每个询问给出两个数A和B,请分别求出:

一、有多少个有序数对(x,y)满足1<=x<=A,1<=y<=B,并且gcd(x,y)为p的一个约数;

二、有多少个有序数对(x,y)满足1<=x<=A,1<=y<=B,并且gcd(x,y)为p的一个倍数。

Input

只有一组测试数据。

第一行两个数:p和q。(1<p<10^7 ,1<q<1000。)

接下来有q行,每行两个数A和B。(1<A,B<10^7)

Output

输出共q行。每行两个数。用空格隔开。

分别表示题目描述中的两个对应的答案。

(x,y)=(2,3)和(x,y)=(3,2)被视为两个不同有序数对哦!

Sample Input

6 3 8 8 15 32 13 77

Sample Output

58 1 423 10 883 24

HINT

对于64位整型请用lld,或者cin,cout。T_T

CSU_LQ

Source

 
题解:
1.对于第二个答案,就是(a/p)*(b/p);
2.对于第一个答案,要用到莫比乌斯函数,比如如统计gcd(x,y)=3的情况,(假设p=10),将会有3,6,9这三种情况,如果算(10/3)*(10/3)的话将会有重复计算的;
如果在上面乘以莫比乌斯系数的话就不会了,他们的系数分别为 1,-1,-1,则结果就是:1*(10/3)*(10/3)-1*(10/6)*(10/6)-1*(10/9)*(10/9);
所以要对莫比乌斯系数打表,比赛的时候,一个大神用一个神码A了这个题;无比的膜拜!!!OTL
分享一个:
 #include<cstdio>
#define maxn 10000001
#define ll long long
using namespace std;
int a,b,cnt[maxn];
ll getans(int l,int r)
{
if(l>r)return ;
if(a/l==a/r&&b/l==b/r)
return (ll)(cnt[r]-cnt[l-])*(a/l)*(b/l);
return getans(l,(l+r)/)+getans((l+r)/+,r);
} int main()
{
int p,q;
scanf("%d%d",&p,&q);
for(int i=;i<maxn;i++)
{
if(p%i==)cnt[i]++;
if(cnt[i]!=)for(int j=i+i;j<maxn;j+=i)
cnt[j]-=cnt[i];
cnt[i]+=cnt[i-];
}
while(q--)
{
scanf("%d%d",&a,&b);
printf("%lld %d\n",getans(,maxn-),(a/p)*(b/p));
}
return ;
}

csu 10月 月赛 H 题 A Very Hard Problem的更多相关文章

  1. csu 10月 月赛 I 题 The Contest

    Description 殷犇有很多队员.他们都认为自己是最强的,于是,一场比赛开始了~ 于是安叔主办了一场比赛,比赛有n个题目,每个题目都有一个价值Pi和相对能力消耗Wi,但是有些题目因为太坑不能同时 ...

  2. csu 10月 月赛 J 题

    Description CSU又到了一年中评奖学金的时候了……各大学霸都或多或少地拿到了各种奖学金(你们自己看着办吧). 在这里,评奖学金有个很奇怪的规矩——每个同学得到的奖学金数一定满足相邻的两个非 ...

  3. csu 10月 月赛 D 题 CX and girls

    Description CX是要赶去上课,为了不迟到必须要以最短的路径到达教室,同时CX希望经过的路上能看到的学妹越多越好.现在把地图抽象成一个无向图,CX从1点出发,教室在N号点,告诉每个点上学妹的 ...

  4. csu 10月 月赛 B 题 Scoop water

    一个卡特兰数的应用: 卡特兰数主要有以下几个用途: 1.不同的出栈入栈数: 2.n个点组成的不同的二叉树的数目: 3.凸多边形的三角剖分划分: 4.括号化问题: 通项公式是:h(n) = C(2n-2 ...

  5. csu 10月 月赛 F 题 ZZY and his little friends

    一道字典树异或的题,但是数据比较水,被大家用暴力给干掉了! 以前写过一个类似的题,叫做the longest xor in tree: 两个差不多吧! 好久没写字典树了,复习一下! 代码: #incl ...

  6. csu 10月 月赛 A 题

    Welcome to CSU OnlineJudge Problem A: Small change Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 15 ...

  7. Contest2037 - CSU Monthly 2013 Oct(中南大学2013年10月月赛水题部分题解)

    Problem A: Small change 题解:http://www.cnblogs.com/crazyapple/p/3349469.html Problem B: Scoop water 题 ...

  8. 【LGR-054】洛谷10月月赛II

    [LGR-054]洛谷10月月赛II luogu 成功咕掉Codeforces Round #517的后果就是,我\(\mbox{T4}\)依旧没有写出来.\(\mbox{GG}\) . 浏览器 \( ...

  9. CSU 2018年12月月赛 H(2220): Godsend

    Description Leha somehow found an array consisting of n integers. Looking at it, he came up with a t ...

随机推荐

  1. html5 meta标签属性整理

    声明文档使用的字符编码 <meta charset='utf-8'> 声明文档的兼容模式 //指示IE以目前可用的最高模式显示内容<meta http-equiv="X-U ...

  2. 如何注册ActiveX打印控件

    一.看系统是32位还是64位的.(以64位为例) 二.先找到你的wfPrint.OCX文件所在路径 三.找到SysWOW64所在的命令控制符 四.最后在该cmd下注册 就可以了.

  3. MVC中的统一验证机制

    using MvcApplication2.Models;using System;using System.Collections.Generic;using System.ComponentMod ...

  4. FOR XML PATH 转换问题

    以下我带大家了解关于 FOR XML PATH 首先我们看下所熟悉的表数据 之后转换 <骨牌编号>1</骨牌编号> <骨牌颜色>橙</骨牌颜色> < ...

  5. 百度地图API调用实例之地址标注与位置显示

    之前弄了个谷歌地图API标注的调用实例,后来要求改成百度地图. 感谢主,通过网上资料(百度地图API,百度地图API详解之地图标注)收集及研究, 终于把百度地图标注和显示功能实现出来了,具体实现方法如 ...

  6. phaser源码解析(二) Phaser.Utils类下pad方法

    /** *#填充字符串方法 * Javascript string pad http://www.webtoolkit.info/. * pad = the string to pad it out ...

  7. 04_XML_04_XMLDTD语法

    [DTD语法约束细节] * 元素定义 * 属性定义 * 实体定义 [1.元素定义] 在DTD文档中使用ELEMENT声明一个XML元素,语法格式如下所示: <!ELEMENT   元素名称  元 ...

  8. MongoDB笔记(三)启动命令mongod的参数

    上一节有关访问权限的笔记,是由启动命令mongod的参数auth引发的有关问题,这节就来看看mongod的其他参数 MongoDB启动命令mongod参数说明: 基本配置 --quiet # 安静输出 ...

  9. php文件锁解决少量并发问题

    阻塞(等待)模式: <?php $fp = fopen("lock.txt", "r"); if(flock($fp,LOCK_EX)) { //..处理 ...

  10. stream_context_create解决file_get_contents超时处理

    stream_context_create作用:创建并返回一个文本数据流并应用各种选项,可用于fopen(),file_get_contents()等过程的超时设置.代理服务器.请求方式.头信息设置的 ...