当前位置:网站首页>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);
}
}
边栏推荐
- MFC A对话框调用B对话框函数并传参
- SQL 后计算的利器 SPL
- tmall. product. schema. Get (product information acquisition schema acquisition), Taobao store upload commodity API interface, Taobao commodity publishing interface, Taobao commodity upload API interf
- MathML to latex
- 1、编辑利器vim
- 大顶堆、小顶堆与堆排序
- 广州市应急管理局发布7月高温高湿化工安全提醒
- HUSTPC2022
- kityformula-editor 配置字号和间距
- PTA题库 ===>复数四则运算,一帮一,考试座位号(7-73)
猜你喜欢

Implement a server with multi process concurrency

【apipost】使用教程

Thoroughly master prototype__ proto__、 Relationship before constructor (JS prototype, prototype chain)

Tmall product details interface (APP, H5 end)

关于网页中的文本选择以及统计选中文本长度

大顶堆、小顶堆与堆排序

LeetCode 209. 长度最小的子数组

forEach的错误用法,你都学废了吗

Onnx+tensorrt: write preprocessing operations to onnx and complete TRT deployment

Obsidian installs third-party plug-ins - unable to load plug-ins
随机推荐
广州市应急管理局发布7月高温高湿化工安全提醒
LeetCode 2320. Count the number of ways to place the house
LeetCode 2320. 统计放置房子的方式数
Add vector formula in rich text editor (MathType for TinyMCE, visual addition)
C code audit practice + pre knowledge
tmall.product.schema.get( 产品信息获取schema获取 ),淘宝店铺上传商品API接口,淘宝商品发布接口,淘宝商品上传API接口,店铺上传接口,oAuth2.0接口
一张图彻底掌握prototype、__proto__、constructor之前的关系(JS原型、原型链)
Have you learned the wrong usage of foreach
【apipost】使用教程
可视化搭建页面工具的前世今生
电脑怎么设置扬声器播放麦克风的声音
复用和分用
jmeter脚本参数化
为什么只会编程的程序员无法成为优秀的开发者?
PTA question bank== > complex four operations, one for one, examination seat number (7-73)
CodeCraft-22 and Codeforces Round #795 (Div. 2)D,E
华为面试题: 没有回文串
表格响应式布局小技巧
Bit by bit of OpenCV calling USB camera
Ad20 cannot select the solution of component packaging in PCB editor