ABC274 题解
A
题目:给定
简答题,和A+B problem 一样,除一除,保留一下小数。
B
题目:给定一个
暴力遍历每一行进行统计。
C
题目:给定
按题意模拟即可,注意可能亲代编号比当前的大,用搜索实现。
D
题目:给定数列
。 与 的距离为 。 为 。
题目等同与将点
发现当
数据范围较小,对两位分别进行
E
题目:给定平面直角坐标系上
发现
F
河中有
考虑钦定一条鱼在这个区间的右端点上,正确性显然。现在就有这个区间在第
将鱼以
复杂度为
G
给定一个
下面用 0 指代'.',用 1 指代'#'。
发现最优答案一定可以被以下方式构造:在一个 0 的极长横向连续段的左端放置一个向右监控,在一个 0 的极长纵向连续段顶端放置一个向下的监控。正确性显然。
记
容易想到二分图最小点覆盖,使用网络流解决,复杂度
Ex
题目:定义函数
首先考虑运算是
那么我们现在想要一个哈希函数
考虑使用异或与 Nim 积,即
关于 Nim 积可以阅读 这篇 和 这篇 博客。
剩下的内容就是二分了,复杂度为
点击查看代码
#include<bits/stdc++.h>
#define reg register
#define int long long
using namespace std;
inline int read(){
int k=1,x=0;char ch=getchar();
while (ch<'0'||ch>'9') {if (ch=='-') k=-1; ch=getchar();}
while (ch>='0'&&ch<='9') x=(x<<3)+(x<<1)+ch-48,ch=getchar();
return k*x;
}
inline int cmin(reg int x,reg int y){return x<y?x:y;}
const int N=5e5+10;
int n,m,A[N];
#define ull unsigned long long
ull f[300][300],hsh[N],pw[N],base;
mt19937_64 rnd(333);
inline ull Nimp(reg ull x,reg ull y,reg int p){
if (x<=1||y<=1) return x*y; if (p<8&&f[x][y]) return f[x][y];
reg ull a=x>>p,b=((1ull<<p)-1)&x,c=y>>p,d=((1ul<<p)-1)&y;
reg ull bd=Nimp(b,d,p>>1),ac=Nimp(Nimp(a,c,p>>1),1ull<<p>>1,p>>1),res;
res=((Nimp(a^b,c^d,p>>1)^bd)<<p)^ac^bd;
if (p<8) return f[x][y]=res; return res;
}
inline ull query(reg int l,reg int r){return hsh[r]^Nimp(hsh[l-1],pw[r-l+1],64);}
signed main(){
for (reg int i=0;i<256;i++) for (reg int j=0;j<256;j++) f[i][j]=Nimp(i,j,8);
n=read();m=read();
for (reg int i=1;i<=n;i++) A[i]=read();
pw[0]=1,hsh[0]=0,base=rnd();
for (reg int i=1;i<=n;i++) hsh[i]=Nimp(hsh[i-1],base,64)^A[i],pw[i]=Nimp(pw[i-1],base,64);
while (m--){reg int a=read(),b=read(),c=read(),d=read(),e=read(),f=read();
reg int l=0,r=cmin(b-a+1,f-e+1)+1,ans=0;
while (l+1<r){ reg int mid=l+r>>1; query(a,a+mid-1)^query(c,c+mid-1)^query(e,e+mid-1)?r=mid:l=mid,ans=mid;} ans=l;
if (e+ans-1==f) puts("No"); else{
if (a+ans-1==b||(A[a+ans]^A[c+ans])<A[e+ans]) puts("Yes"); else puts("No");
}
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· .NET10 - 预览版1新功能体验(一)