当前位置:网站首页>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);
}
}
边栏推荐
- 复用和分用
- Xilinx Vivado set *. svh as SystemVerilog Header
- socket(套接字)与socket地址
- Obsidian installs third-party plug-ins - unable to load plug-ins
- vChain: Enabling Verifiable Boolean Range Queries over Blockchain Databases(sigmod‘2019)
- Slashgear shares 2021 life changing technology products, which are somewhat unexpected
- 实现一个多进程并发的服务器
- C RichTextBox controls the maximum number of lines displayed
- buuctf-pwn write-ups (7)
- 广州市应急管理局发布7月高温高湿化工安全提醒
猜你喜欢
Simple verification code generator for 51 single chip microcomputer experiment
Xilinx Vivado set *. svh as SystemVerilog Header
复用和分用
【无标题】LeetCode 2321. 拼接数组的最大分数
kityformula-editor 配置字号和间距
Implement a server with multi process concurrency
LeetCode 2310. 个位数字为 K 的整数之和
Tmall product details interface (APP, H5 end)
C语言习题---(数组)
大顶堆、小顶堆与堆排序
随机推荐
一张图彻底掌握prototype、__proto__、constructor之前的关系(JS原型、原型链)
info [email protected]: The platform “win32“ is incompatible with this module.
STM32 standard firmware library function name memory (II)
AtCoder Beginner Contest 254
MFC CString to char*
C thread transfer parameters
Factal: Unsafe repository is owned by someone else Solution
taobao. logistics. dummy. Send (no logistics delivery processing) interface, Taobao store delivery API interface, Taobao order delivery interface, Taobao R2 interface, Taobao oau2.0 interface
PTA题库 ===>复数四则运算,一帮一,考试座位号(7-73)
实用调试技巧
【NOI模拟赛】刮痧(动态规划)
C RichTextBox controls the maximum number of lines displayed
Error: NPM warn config global ` --global`, `--local` are deprecated Use `--location=global` instead.
STM32 standard firmware library function name (I)
btrace-(字节码)动态跟踪工具
Li Chuang EDA learning notes 15: draw border or import border (DXF file)
Arithmetic operations and related exercises in C language
Dragonfly low code security tool platform development path
Ad20 cannot select the solution of component packaging in PCB editor
Leetcode - Search 2D matrix