#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=55;
int t,n,m,x,vis[N];
intmain(){
for (scanf("%d",&t);t;--t)
{
RI i; for (scanf("%d%d",&n,&m),i=1;i<=m;++i) vis[i]=0;
for (i=1;i<=n;++i)
{
scanf("%d",&x); int mi=min(x,m+1-x),mx=max(x,m+1-x);
if (!vis[mi]) vis[mi]=1; else vis[mx]=1;
}
for (i=1;i<=m;++i) putchar(vis[i]?'A':'B'); putchar('\n');
}
return0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int t,n,x,f[N][2];
intmain(){
for (scanf("%d",&t);t;--t)
{
RI i; for (scanf("%d",&n),i=1;i<=n;++i) f[i][0]=f[i][1]=0;
for (i=1;i<=n;++i)
scanf("%d",&x),f[x][i&1]=f[x][(i&1)^1]+1;
for (i=1;i<=n;++i)
printf("%d%c",max(f[i][0],f[i][1]),i==n?'\n':' ');
}
return0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=100005;
int t,n,h[N]; longlong pre[N],suf[N],ans;
inlineintfix(CI x){
returnmax(max(h[x-1],h[x+1])-h[x]+1,0);
}
intmain(){
for (scanf("%d",&t);t;--t)
{
RI i; for (scanf("%d",&n),i=1;i<=n;++i) scanf("%d",&h[i]);
if (ans=0,n&1)
{
for (i=2;i<n;i+=2) ans+=fix(i);
} else {
for (i=2;i<n;i+=2) pre[i>>1]=pre[i-2>>1]+fix(i);
for (suf[n>>1]=0,i=n-1;i>1;i-=2) suf[i>>1]=suf[i+2>>1]+fix(i);
for (ans=1e18,i=0;i<(n>>1);++i) ans=min(ans,pre[i]+suf[i+1]);
}
printf("%lld\n",ans);
}
return0;
}
#include<cstdio>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
constint N=3005;
int t,n,m,ans,a[N];
intmain(){
for (scanf("%d",&t);t;--t)
{
RI i,j; for (scanf("%d%d",&n,&m),i=1;i<=n;++i) scanf("%d",&a[i]);
for (ans=a[n],i=0;i<=a[1];++i)
{
int pos=0; for (j=1;j<=n;++j)
pos=max(pos,a[j]/min(i?a[j]/i:m,m)); ans=min(ans,pos-i);
}
printf("%d\n",ans);
}
return0;
}
#include<cstdio>#include<vector>#include<algorithm>#include<iostream>#define RI register int#define CI const int&usingnamespace std;
typedef vector <int>::iterator VI;
constint N=100005;
int t,n,m,ans,a[N],pos[N];
vector <int> s; VI L,R;
intmain(){
for (scanf("%d",&t);t;--t)
{
RI i,l,r; for (scanf("%d%d",&n,&m),i=1;i<=n;++i)
scanf("%d",&a[i]); for (i=0;i<=a[n];++i)
pos[i]=i; for (i=1;i<=n;++i)
{
s.clear(); for (l=1;l<=min(m,a[i]);l=r+1)
{
int ret=a[i]/l; s.push_back(ret);
r=ret?a[i]/ret:a[i];
}
s.push_back(0); reverse(s.begin(),s.end()); s.push_back(1e9);
for (L=R=s.begin(),++R;R!=s.end();++L,++R)
pos[*L+1]=max(pos[*L+1],*R);
}
for (ans=1e9,i=1;i<=a[n];++i)
pos[i]=max(pos[i],pos[i-1]),ans=min(ans,pos[i]-i);
printf("%d\n",ans);
}
return0;
}
#include<cstdio>#include<iostream>#include<algorithm>#define RI register int#define CI const int&usingnamespace std;
constint N=200005;
structedge{
int x,y;
}e[N]; int t,n,m,q,l,r,tot,val[N];
namespace DSU
{
int fa[N];
inlinevoidclear(void){
for (RI i=1;i<=n;++i) fa[i]=i;
}
inlineintgetfa(CI x){
return fa[x]==x?x:fa[x]=getfa(fa[x]);
}
inlineboolquery(CI x,CI y){
returngetfa(x)==getfa(y);
}
};
namespace T
{
structedge {
int to,nxt;
}e[N<<1]; int cnt,head[N],dep[N],anc[N][20];
inlinevoidaddedge(CI x,CI y){
e[++cnt]=(edge){y,head[x]}; head[x]=cnt;
e[++cnt]=(edge){x,head[y]}; head[y]=cnt;
};
inlinevoidclear(void){
RI i,j; for (i=1;i<=tot;++i) for (j=0;j<19;++j)
if (anc[i][j]) anc[i][j]=0; elsebreak;
for (i=1;i<=tot;++i) head[i]=val[i]=0; cnt=0; tot=n;
}
inlinevoidlink(int x,int y,CI id){
val[++tot]=id; DSU::fa[tot]=tot; x=DSU::getfa(x); y=DSU::getfa(y);
addedge(x,tot); addedge(y,tot); DSU::fa[x]=DSU::fa[y]=tot;
}
#define to e[i].toinlinevoidDFS(CI now=tot,CI fa=0){
dep[now]=dep[anc[now][0]=fa]+1; RI i; for (i=0;i<19;++i)
if (anc[now][i]) anc[now][i+1]=anc[anc[now][i]][i]; elsebreak;
for (i=head[now];i;i=e[i].nxt) if (to!=fa) DFS(to,now);
}
inlinevoidDEBUG(CI now=tot,CI fa=0){
printf("%d : ",now); RI i;
for (i=head[now];i;i=e[i].nxt) if (to!=fa) printf("%d ",to); putchar('\n');
for (i=head[now];i;i=e[i].nxt) if (to!=fa) DEBUG(to,now);
}
#undef toinlineintgetlca(int x,int y){
if (dep[x]<dep[y]) swap(x,y); RI i;
for (i=19;~i;--i) if (dep[anc[x][i]]>=dep[y]) x=anc[x][i];
if (x==y) return x; for (i=19;~i;--i)
if (anc[x][i]!=anc[y][i]) x=anc[x][i],y=anc[y][i];
return anc[x][0];
}
};
namespace RMQ
{
int log[N],mx[N][20];
inlinevoidinit(void){
RI i,j; for (i=2;i<n;++i) log[i]=log[i>>1]+1;
for (i=1;i<n;++i) mx[i][0]=val[T::getlca(i,i+1)];
for (j=1;(1<<j)<n;++j) for (i=1;i+(1<<j)-1<n;++i)
mx[i][j]=max(mx[i][j-1],mx[i+(1<<j-1)][j-1]);
}
inlineintquery(CI l,CI r){
int k=log[r-l+1]; returnmax(mx[l][k],mx[r-(1<<k)+1][k]);
}
};
intmain(){
//freopen("CODE.in","r",stdin); freopen("CODE.out","w",stdout);for (scanf("%d",&t);t;--t)
{
RI i; scanf("%d%d%d",&n,&m,&q); DSU::clear(); T::clear();
for (i=1;i<=m;++i) scanf("%d%d",&e[i].x,&e[i].y);
for (i=1;i<=m;++i) if (!DSU::query(e[i].x,e[i].y)) T::link(e[i].x,e[i].y,i);
for (T::DFS(),RMQ::init(),i=1;i<=q;++i)
scanf("%d%d",&l,&r),printf("%d%c",l==r?0:RMQ::query(l,r-1),i==q?'\n':' ');
}
return0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-07-29 Luogu P6620 [省选联考 2020 A 卷] 组合数问题
2020-07-29 Luogu P6631 [ZJOI2020] 序列
2020-07-29 Luogu P6630 [ZJOI2020] 传统艺能
2020-07-29 Luogu P6633 [ZJOI2020] 抽卡
2018-07-29 数列分块入门九题(二):LOJ6280~6282
2018-07-29 数列分块入门九题(一):LOJ6277~6279