【题解】【HAOI2011】Problem b
\(Luogu2522\)
题目大意:求下面式子的值:
\]
这个东西直接求不好求,考虑差分,从\([1,n]\)的范围求,然后相减。
那么考虑:
\]
同时除以\(k\):
\]
枚举\(d|gcd(i,j)\),套上反演套路,并且将\(d\)提到前面:
\]
\]
\]
这玩意到此结束,后面数论分块即可,\(O(\sqrt{n})\).
套一个差分即可。
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int MAXN=6e4+10;
int n,m;
int prime[MAXN],mu[MAXN];
int fg[MAXN],tot,sum[MAXN];
void screen(){
mu[1]=1;
for(int i=2;i<=MAXN;++i){
if(!fg[i])prime[++tot]=i,mu[i]=-1;
for(int j=1;j<=tot&&i*prime[j]<=MAXN;++j){
fg[i*prime[j]]=1;
if(i%prime[j]==0){
mu[i*prime[j]]=0;
break;
}
mu[i*prime[j]]=-mu[i];
}
}
for(int i=1;i<=MAXN;++i)sum[i]=sum[i-1]+mu[i];
}
int solve(int x,int y,int k){
int ans=0,M;
M=min(x,y);
for(int l=1,r;l<=M;l=r+1){
r=min(x/(x/l),y/(y/l));
ans+=(x/(l*k))*(y/(l*k))*(sum[r]-sum[l-1]);
}
return ans;
}
int main(){
scanf("%d",&n);
screen();
for(;n;n--){
int k,a,b,c,d;
scanf("%d%d%d%d%d",&a,&b,&c,&d,&k);
printf("%d\n",solve(b,d,k)-solve(a-1,d,k)-solve(b,c-1,k)+solve(a-1,c-1,k));
}
return 0;
}
【题解】【HAOI2011】Problem b的更多相关文章
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
- bzoj 2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 3757 Solved: 1671 [Submit] ...
- HAOI2011 problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 1047 Solved: 434[Submit][ ...
- BZOJ 2298: [HAOI2011]problem a 动态规划
2298: [HAOI2011]problem a Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnli ...
- 【BZOJ2302】[HAOI2011]Problem C(动态规划)
[BZOJ2302][HAOI2011]Problem C(动态规划) 题面 BZOJ 洛谷 题解 首先如果\(m=0\)即没有特殊限制的话,那么就和这道题目基本上是一样的. 然而这题也有属于这题的性 ...
- [POI2007]ZAP-Queries && [HAOI2011]Problem b 莫比乌斯反演
1,[POI2007]ZAP-Queries ---题面---题解: 首先列出式子:$$ans = \sum_{i = 1}^{n}\sum_{j = 1}^{m}[gcd(i, j) == d]$$ ...
- 【BZOJ2298】[HAOI2011]problem a DP
[BZOJ2298][HAOI2011]problem a Description 一次考试共有n个人参加,第i个人说:“有ai个人分数比我高,bi个人分数比我低.”问最少有几个人没有说真话(可能有相 ...
- [luogu] P2519 [HAOI2011]problem a (贪心)
P2519 [HAOI2011]problem a 题目描述 一次考试共有n个人参加,第i个人说:"有ai个人分数比我高,bi个人分数比我低."问最少有几个人没有说真话(可能有相同 ...
- BZOJ 2301: [HAOI2011]Problem b 莫比乌斯反演
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 1007 Solved: 415[Submit][ ...
- 2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4164 Solved: 1888[Submit] ...
随机推荐
- Matrix4x4
Unity3D开发之Matrix4x4矩阵变换 https://www.cnblogs.com/hewei2012/p/4190282.html Matrix4x4 4x4矩阵 http://wiki ...
- oracle数据库创建数据库实例-九五小庞
oracle数据库创建数据库实例
- 【译】Object Storage on CRAQ 上篇
摘要 大型存储系统通常会在许多可能出故障的组件上进行数据复制和数据分区,从而保证可靠性和可扩展性.但是许多商业部署系统为了实现更高的可用性和吞吐量,牺牲了强一致性,特别是那些实时交互系统. 本论文介绍 ...
- redis基础数据结构及编码方式
redis基础数据结构和编码方式 一.基础数据结构 1)简单动态字符串 2)双端链表 3)字典 4)跳跃表 5)整数集合 6)压缩列表 二.对象类型与编码 在redis的数据库中创建一个新的键值对时, ...
- C007:输入美元数量,用最少的20美元,10美元,5美元和1美元付款
代码: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int amount; do{ printf(&quo ...
- 转载:Window配置Redis环境和简单使用
原作:https://www.cnblogs.com/wxjnew/p/9160855.html 我自己的尝试:https://www.cnblogs.com/xiandedanteng/p/1214 ...
- AI研讨会直播:《人工智能开发前沿》实战系列公开课第1期
报名链接:https://www.slidestalk.com/m/276 活动背景 业务需求.数据.算法.算力等因素,决定人工智能技术走向产业落地面临各种挑战.博客园联合示说网以及产业内人工智能技术 ...
- 【新阁教育】基于Log4Net实现日志信息双向存储(含源码)
1.引言 在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪.初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些 ...
- sudo提权,ansible批量给所有主机创建系统账户,授权
sudo(superuser or another do)让普通用户可以以超级管理员或其他人的身份执行命令. sudo基本流程如下: 1.管理员需要先授权(修改/etc/sudoers文件) 2.普通 ...
- sqli-labs 1-10关
学习sql注入的必做靶场我终于来尝试一下下了. 第一关 ?id=1'时出现 在测试?id=1' and '1'='1,页面正常 ?id=1' and '1'='2 页面错误 判断存在单引号字符型注入 ...