【0521模拟赛】小Z爱数学
题目描述
小Z想求F(n,k),F(n,k)表示n的所有因数pi中,满足n/pi <= k 的和。
小Z发现还是很水,所以他决定加大难度。
求
小Z还准备了很多个询问。现在你来解决一下吧。
输入输出格式
输入格式:
第一行两个整数m 表示询问的个数
接下来每行两个数ni,ki,表示这个询问的n和k
输出格式:
,
对于每个询问输出一行一个整数,表示对应的答案。
题目理解:F(n,k)表示n的所有因数qi中,满足n/qi<=k的和,
m组,每组给定n和k,求 ;
m<=500000,ni<=100000
解析:k比较大的的答案 包含了k比较小的答案,所以要先把每次询问按k来排序,
然后我们每次回答询问的时候 如果k不同 就把k变大成现在要问的k,
#include<iostream>
#include<cstdio>
#include<algorithm>
#define N 100000
#define ll long long
using namespace std;
inline int read(){
int x=,f=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
}
ll t[N*],ans[N*+];
int m;
struct que{int n,k,id;}e[N*+];
bool cmp(que i,que j){return i.k<j.k;}
ll query(int l,int r){
ll sum=;
l+=N-,r+=N-;
sum+=t[l]+t[r];
if(l==r) return sum-=t[l];
for(;l^r^;l>>=,r>>=){
if(~l&) sum+=t[l^];
if( r&) sum+=t[r^];
}
return sum;
}
void Change(int x,int v){
t[x+=N-]+=v;
while(x) t[x>>=]=t[x<<]+t[x<<|];
}
void sol(int x){
for(int i=;i*x<=N;i++) Change(i*x,i);
}
int main(){
m=read();
for(int i=;i<=m;i++){e[i].n=read();e[i].k=read();e[i].id=i;}
sort(e+,e+m+,cmp);
int j=;
for(int i=;i<=m;i++){
while(j<e[i].k) sol(++j);
ans[e[i].id]=query(,e[i].n);
}
for(int i=;i<=m;i++) printf("%lld\n",ans[i]);
return ;
}
【0521模拟赛】小Z爱数学的更多相关文章
- 【20170920校内模拟赛】小Z爱学习
所有题目开启-O2优化,开大栈空间,评测机效率为4亿左右. T1 小 Z 学数学(math) Description 要说小 Z 最不擅长的学科,那一定就是数学了.这不,他最近正在学习加法运算.老 ...
- 【0521模拟赛】小Z爱划水
题目描述 小Z和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同,那么他 ...
- 小Z爱划水(NOIP信(sang)心(bin)赛)From FallDream
题目: 小Z在机房.他和其它机房同学都面临一个艰难的抉择,那就是 要不要划水? 每个人都有自己的一个意见,有的人想做题,有的人想划水. 当然,每个人只能选择一个事情做.如果一个人做的事情和他想做的不同 ...
- 小Z爱图论(NOIP信(sang)心(bin)赛)From FallDream
题目: 小Z最近喜欢上了图论,于是他研究了一下图的连通性问题.但是他遇到了一个难题. 给定一个n个点的有向图,求有多少点对(i,j)满足从i点出发能到达点j ? 小Z仅会简单的朴素算法,所以他想问问你 ...
- 小Z爱序列(NOIP信(sang)心(bin)赛)From FallDream(粗制单调队列&单调栈的算法解析)
原题: 小Z最擅长解决序列问题啦,什么最长公共上升然后下降然后上升的子序列,小Z都是轻松解决的呢. 但是小Z不擅长出序列问题啊,所以它给了你一道签到题. 给定一个n个数的序列ai,你要求出满足下述条件 ...
- Java 第十一届 蓝桥杯 省模拟赛 小明的城堡
小明用积木搭了一个城堡. 为了方便,小明在搭的时候用的是一样大小的正方体积本,搭在了一个 n 行 m 列的方格图上,每个积木正好占据方格图的一个小方格. 当然,小明的城堡并不是平面的,而是立体的.小明 ...
- Java 第十一届 蓝桥杯 省模拟赛 小明植树(DFS)
小明植树 题目 问题描述 小明和朋友们一起去郊外植树,他们带了一些在自己实验室精心研究出的小树苗. 小明和朋友们一共有 n 个人,他们经过精心挑选,在一块空地上每个人挑选了一个适合植树的位置,总共 n ...
- 2017-10-5模拟赛T2 小Z爱排序(sorting.*)
Description Solution 比赛时找到了规律,但是没有证出来……(当然最后还是AC了……) 显然没有被操作的数在排好序的序列中一定是连续的一段. 所以,没有被操作的数一定从左到右连续地递 ...
- noip模拟赛 小Y的问题
[问题描述]有个孩子叫小 Y,一天,小 Y 拿到了一个包含 n 个点和 n-1 条边的无向连通图, 图中的点用 1~n 的整数编号.小 Y 突发奇想,想要数出图中有多少个“Y 字形”.一个“Y 字形” ...
随机推荐
- 利用HashMap计算一个字符串中每个字符出现的次数
问题描述:计算一个字符串中每个字符出现的次数 问题分析:每个字符串对应着它的次数,且字符串唯一不重复,这让我们想到了HashMap中的键值对. 1.使用Scanner获取字符串 2.遍历字符串,获取每 ...
- requests模块 高级应用
目录 requests模块 高级应用 HttpConnectinPool 问题解决 IP代理 简单使用代理 代理池 cookie的处理 页面中验证码识别 使用 multiprocessing.dumm ...
- CSS-锚点笔记
注意点: position属性 定义建议元素布局所用的定位机制 {position:static/absolute/relative/fixed;} static:默认值,没有定位 absolute: ...
- HTTP协议学习总结
一个web应用程序,往往是通过http协议进行前后端通信的.而作为一个web工程师,掌握HTTP协议因此也是Web开发必备的一项技能了,尤其是在工作了一定年限之后,更是深感该知识点的重要性.因此,将以 ...
- Requests库详细的用法
介绍 对了解一些爬虫的基本理念,掌握爬虫爬取的流程有所帮助.入门之后,我们就需要学习一些更加高级的内容和工具来方便我们的爬取.那么简单介绍一下 requests 库的基本用法 安装 利用 pip 安装 ...
- Hybris产品主数据的价格折扣维护
登录Hybris backoffice的产品管理界面,进入price标签页,点击Create new Discount Row按钮: 在Discount下拉地段里选择10%的折扣,这个产品原来的单价是 ...
- 代码实现排列组合【Java】
一.代码实现 package zhen; import java.util.Arrays; public class Arrangement { /** * 计算阶乘数,即n! = n * (n-1) ...
- day 02 预科
目录 什么是编程语言 什么是编程 为什么要编程 计算机的组成 CPU 存储器 I/O设备(Input/Output设备) 输入设备 输出设备 多核CPU 32位和64位 机械硬盘工作原理 机械手臂 磁 ...
- selenium三个等待方法
为什么需要等待时间:页面加载需要时间,如果页面没有加载完成,直接去定位,可能定位不到元素 1.强制等待: import time time.sleep(2) 不管有没有完成加载,必须等待2秒 2.隐式 ...
- JavaScript笔记01_基本操作
目录 1. JS代码编写的位置 2. 为什么JavaScript中代码要以分号结束 3. 字面量和变量 4. 数据类型 5. 类型装换 6. ++a和a++ 7. 逻辑运算符 8. 相等运算符 9. ...