BZOJ 2301 [HAOI2011]Problem b
2301: [HAOI2011]Problem b
Description
Input
第一行一个整数n,接下来n行每行五个整数,分别表示a、b、c、d、k
Output
共n行,每行一个整数表示满足要求的数对(x,y)的个数
Sample Input
2 5 1 5 1
1 5 1 5 2
Sample Output
3
HINT
100%的数据满足:1≤n≤50000,1≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000
类似BZOJ 1101 [POI2007]Zap,唯一区别是区间的加加减减。
1 /************************************************************** 2 Problem: 2301 3 User: Doggu 4 Language: C++ 5 Result: Accepted 6 Time:10212 ms 7 Memory:1700 kb 8 ****************************************************************/ 9 10 #include <cstdio> 11 #include <algorithm> 12 const int N = 100100; 13 int mu[N], prime[N], ptot; 14 bool vis[N]; 15 void EULER(int n) { 16 mu[1]=1; 17 for( int i = 2; i <= n; i++ ) { 18 if(!vis[i]) prime[++ptot]=i, mu[i]=-1; 19 for( int j = 1; j <= ptot; j++ ) { 20 if((long long)i*prime[j]>n) break; 21 vis[i*prime[j]]=1; 22 mu[i*prime[j]]=mu[i]*(-1); 23 if(i%prime[j]==0) { 24 mu[i*prime[j]]=0; 25 break; 26 } 27 } 28 mu[i]+=mu[i-1]; 29 } 30 } 31 int cal(int n,int m) { 32 if(n>m) std::swap(n,m); 33 int ans=0; 34 for( int a = 1, ed; a <= n; a=ed+1 ) { 35 ed=std::min(n/(n/a),m/(m/a)); 36 ans+=(long long)(mu[ed]-mu[a-1])*(n/a)*(m/a); 37 } 38 return ans; 39 } 40 int main() { 41 EULER(50000); 42 int T, a, b, c, d, k; 43 scanf("%d",&T); 44 while(T--) { 45 scanf("%d%d%d%d%d",&a,&b,&c,&d,&k); 46 a--;c--; 47 a/=k;b/=k;c/=k;d/=k; 48 printf("%d\n",cal(b,d)+cal(a,c)-cal(a,d)-cal(b,c)); 49 } 50 return 0; 51 } 52
转载于:https://www.cnblogs.com/Doggu/p/bzoj2301.html
BZOJ 2301 [HAOI2011]Problem b相关推荐
- BZOJ 2301: [HAOI2011]Problem b
二次联通门 : BZOJ 2301: [HAOI2011]Problem b /*BZOJ 2301: [HAOI2011]Problem b莫比乌斯反演 + 容斥将k除下来后就变为了一道原题后像求二 ...
- 莫比乌斯反演(bzoj 2301: [HAOI2011]Problem b)
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 5322 Solved: 2459 [Submi ...
- bzoj 2302: [HAOI2011]Problem c(DP)
2302: [HAOI2011]Problem c Time Limit: 30 Sec Memory Limit: 256 MB Submit: 937 Solved: 509 [Submit] ...
- BZOJ 2302 HAOI2011 Problem c 动态规划
题目大意:给定nn个人和nn个位置,要求生成一个序列aia_i,然后第1...n1...n个人依次走到第a1...na_{1...n}个位置,如果那个位置已经有人了就走到下一个位置,直到找到一个空位, ...
- BZOJ 2301 Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 7576 Solved: 3643 [Submi ...
- BZOJ2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 6435 Solved: 2986 [Submi ...
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 4032 Solved: 1817 [Submi ...
- 【BZOJ 2298】 2298: [HAOI2011]problem a (DP)
2298: [HAOI2011]problem a Time Limit: 10 Sec Memory Limit: 256 MB Submit: 1326 Solved: 637 Descrip ...
- [POI2007]ZAP-Queries [HAOI2011]Problem b 莫比乌斯反演
1,[POI2007]ZAP-Queries ---题面--- 题解: 首先列出式子:$$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}[gcd(i, j) == d]$ ...
最新文章
- matlab奈馈斯图,matlab关于控制的设计单位负反馈的校正
- 设计模式系列(一)单例模式
- OpenCV反向项目功能用法的实例(附完整代码)
- C语言运算符优先级列表
- linux之如何查看哪些进程在使用某一个so
- 计算机视觉-自定义对象检测器
- php和apache协同,apache和php之间协同工作的配置经验分享
- 玩Elastix遇到的几个问题和解决办法。
- maxscale mysql5.7_Centos7安装maxscale 实现mysql的读写分离
- 一起学爬虫(Python) — 05
- 【禁止套娃】用PPSSPP模拟PSP模拟Neogeo模拟SNK拳皇97
- 【工作感悟】在一家普通互联网公司实习四个月的总结和感想
- java计算机毕业设计高校心理测评管理系统源码+mysql数据库+系统+lw文档+部署
- 降低PNG图片存储大小方法、图片压缩方法
- ABP理论学习之实体类
- FFmpeg命令行工具系列二---转码流程及过滤器
- 费曼:数学与物理学的关系
- 如何判断应变片式压力传感器是否损坏
- 深度学习网络图画图工具
- 20210310 钣金件螺栓螺帽缺失检测汇总 dropout
热门文章
- 续: [转]Oracle 表空间与数据文件
- java 什么是哨兵_Java中的Redis 哨兵高可用性
- 给华为S5700交换机配下链路聚合
- KubeCon 改为线上举办 | 云原生生态周报 Vol. 48
- python中tushare数据可以导出嘛_Python与交易策略分析tushare/baostock库介绍(附代码)...
- python中高阶函数改写学生信息管理程序_python利用高阶函数实现剪枝函数
- win10 安装vc++6.0(亲测可用)
- 手动更改oracle监听,详解Oracle数据库手动注册监听的方法
- java中的最终变量_在lambda表达式中使用的变量应该是最终变量或有效的最终变量。...
- python opencv图像对比度增强_图像增强、锐化, Python-OpenCV 来实现 4 种方法!