当前位置:网站首页>AtCoder Beginner Contest 254
AtCoder Beginner Contest 254
2022-07-02 15:03:00 【Not Zhang Pangpang】
List of articles
D - Together Square
The question :
Calculate the number of pairs less than or equal to n ( 1 ≤ n ≤ 2 × 1 0 5 ) n(1 \leq n \leq 2×10^5) n(1≤n≤2×105) Of i , j i,j i,j, Satisfy i × j i×j i×j It's a square number
Ideas :
If i i i It's a square number , that j j j It's also a square number .
otherwise , j j j It should be square times i i i A prime factor with an odd number of occurrences in
#include<bits/stdc++.h>
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int,int> PII;
const int maxn=2e5+7;
int n,vis[maxn];
int main()
{
scanf("%d",&n);
vector<int>v;
for(int i=1;;i++)
{
if(i*i>n) break;
vis[i*i]=1;v.pb(i*i);
}
ll ans=0;
for(int i=1;i<=n;i++)
{
if(vis[i]) ans+=v.size();
else
{
int nn=i;
for(int j=1;j<v.size();j++)
{
while(nn%v[j]==0)
{
nn/=v[j];
}
}
for(int j=0;j<v.size();j++)
{
if(v[j]*nn>n) break;
ans++;
}
}
}
printf("%lld\n",ans);
}
F - Rectangle GCD
The question :
There is a length of n ( 1 ≤ n ≤ 2 × 1 0 5 ) n(1≤n≤2×10^5) n(1≤n≤2×105) Array of A , B ( 1 ≤ A i , B i ≤ 1 0 9 ) A,B(1≤A _i,B_i≤10^9) A,B(1≤Ai,Bi≤109), And one. n × n n×n n×n The square of , The first i i i Xing di j j j The number of columns is A i + B j A_i+B_j Ai+Bj
Yes q ( 1 ≤ q ≤ 2 × 1 0 5 ) q(1≤q≤2×10^5) q(1≤q≤2×105) Time to ask , Ask all the numbers in a rectangular area at a time gcd \gcd gcd
Ideas :
The number in the rectangle is
a i + b j a i + b j + 1 a i + b j + 2 a i + b j + 3 . . . a i + 1 + b j a i + 1 + b j + 1 a i + 1 + b j + 3 a i + 1 + b j + 2 . . . . . . . . . a_i+b_j \quad a_{i}+b_{j+1} \quad a_{i}+b_{j+2} \quad a_{i}+b_{j+3} \quad ...\\ a_{i+1}+b_{j} \quad a_{i+1}+b_{j+1} \quad a_{i+1}+b_{j+3} \quad a_{i+1}+b_{j+2} \quad ...\\ ...... ai+bjai+bj+1ai+bj+2ai+bj+3...ai+1+bjai+1+bj+1ai+1+bj+3ai+1+bj+2.........
Known properties
gcd ( a , b , c , d ) = gcd ( a , b − a , c − b , d − c ) \gcd(a,b,c,d)=\gcd(a,b-a,c-b,d-c) gcd(a,b,c,d)=gcd(a,b−a,c−b,d−c)
So the problem turns into gcd \gcd gcd Array B , A B,A B,A The differential array of
It can be maintained by line tree
#include<bits/stdc++.h>
#define pb push_back
typedef long long ll;
using namespace std;
typedef pair<int,int> PII;
const int maxn=2e5+7;
struct gcd_tree
{
int nums[maxn];
struct tree
{
int l,r,sum;
int mid()
{
return (l+r)/2;
}
}tre[maxn<<2];
void pushup(int num)
{
tre[num].sum=__gcd(tre[2*num].sum,tre[2*num+1].sum);
}
void build(int num,int l,int r)
{
tre[num].l=l,tre[num].r=r;
if(l==r)
{
tre[num].sum=nums[l];return;
}
int mid=tre[num].mid();
build(2*num,l,mid);
build(2*num+1,mid+1,r);
pushup(num);
}
int query(int num,int l,int r)
{
if(tre[num].l==l && tre[num].r==r)
return tre[num].sum;
int mid=tre[num].mid();
if(l>mid)
return query(2*num+1,l,r);
else if(r<=mid)
return query(2*num,l,r);
else
return __gcd(query(2*num,l,mid),query(2*num+1,mid+1,r));
}
}da,db;
int n,m;
int a[maxn],b[maxn];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) scanf("%d",&a[i]);
for(int i=1;i<=n;i++) scanf("%d",&b[i]);
for(int i=1;i<=n;i++) da.nums[i]=abs(a[i]-a[i-1]);
da.build(1,1,n);
for(int i=1;i<=n;i++) db.nums[i]=abs(b[i]-b[i-1]);
db.build(1,1,n);
while(m--)
{
int h1,h2,w1,w2;scanf("%d%d%d%d",&h1,&h2,&w1,&w2);
int ans=a[h1]+b[w1];
if(h2>h1) ans=__gcd(ans,da.query(1,h1+1,h2));
if(w2>w1) ans=__gcd(ans,db.query(1,w1+1,w2));
printf("%d\n",ans);
}
}
边栏推荐
- [apipost] tutorial
- 华为面试题: 没有回文串
- info [email protected] : The platform “win32“ is incompatible with this module.
- Yolov6 training: various problems encountered in training your dataset
- Edit the formula with MathType, and set it to include only mathjax syntax when copying and pasting
- LeetCode 2310. The number of digits is the sum of integers of K
- STM32 standard firmware library function name (I)
- Bit by bit of OpenCV calling USB camera
- Socket and socket address
- Xilinx Vivado set *.svh as SystemVerilog Header
猜你喜欢

LeetCode 2320. Count the number of ways to place the house

Dragonfly low code security tool platform development path

Introduction to mathjax (web display of mathematical formulas, vector)

【C语音】详解指针进阶和注意点(2)

【空间&单细胞组学】第1期:单细胞结合空间转录组研究PDAC肿瘤微环境

【无标题】LeetCode 2321. 拼接数组的最大分数

Tujia muniao meituan has a discount match in summer. Will it be fragrant if the threshold is low?

Advanced C language (learn malloc & calloc & realloc & free in simple dynamic memory management)

mathjax 入门(web显示数学公式,矢量的)

【apipost】使用教程
随机推荐
ONNX+TensorRT:将预处理操作写入ONNX并完成TRT部署
MFC 控制台打印,弹出对话框
【NOI模拟赛】伊莉斯elis(贪心,模拟)
4、数组指针和指针数组
IE 浏览器正式退休
使用mathtype编辑公式,复制粘贴时设置成仅包含mathjax语法的公式
Full of knowledge points, how to use JMeter to generate encrypted data and write it to the database? Don't collect it quickly
taobao.logistics.dummy.send( 无需物流发货处理 )接口,淘宝店铺发货API接口,淘宝订单发货接口,淘宝r2接口,淘宝oAu2.0接口
Socket and socket address
fatal: unsafe repository is owned by someone else 的解决方法
数据库内容输出有问题怎么解决
LeetCode - 搜索二维矩阵
MFC timer usage
tmall.product.schema.get( 产品信息获取schema获取 ),淘宝店铺上传商品API接口,淘宝商品发布接口,淘宝商品上传API接口,店铺上传接口,oAuth2.0接口
C#代码审计实战+前置知识
编译原理课程实践——实现一个初等函数运算语言的解释器或编译器
kityformula-editor 配置字号和间距
[untitled] leetcode 2321 Maximum score of concatenated array
871. 最低加油次数 : 简单优先队列(堆)贪心题
Reuse and distribution