A

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
void solve()
{
int n;cin>>n;
string s;cin>>s;
int x=0,y=0;
rep(i,0,s.size()-1){
if(s[i]=='B') y=i;
}
fep(i,s.size()-1,0){
if(s[i]=='B') x=i;
}
cout<<y-x+1<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
B

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
void solve()
{
int n;
cin>>n;
vector<int>a(n+1);
rep(i,1,n) cin>>a[i];
map<int,set<char>>kk;
for(char i='a';i<='z';++i){
kk[0].insert(i);
}
string ans;
rep(i,1,n){
int cnt=a[i];
char c=*kk[cnt].begin();
kk[cnt].erase(c);
kk[cnt+1].insert(c);
ans+=c;
}
cout<<ans<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
C

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
void solve()
{
int n,m,k;
cin>>n>>m>>k;
vector<int>a(n+1),b(m+1);
set<int>s1,s2;
rep(i,1,n){
cin>>a[i];
s1.insert(a[i]);
}
rep(i,1,m){
cin>>b[i];
s2.insert(b[i]);
}
if(s1.size()<k/2||s2.size()<k/2){
cout<<"No"<<endl;
return;
}
int cnta=0,cntb=0,cntss=0;
rep(i,1,k){
if(s1.count(i)&&s2.count(i)){
cntss++;
}else if(s1.count(i)&&!s2.count(i)){
cnta++;
}else if(!s1.count(i)&&s2.count(i)){
cntb++;
}else{
cout<<"No"<<endl;
return;
}
}
if(cnta<k/2){
cntss-=(k/2-cnta);
}
if(cntb<k/2){
cntss-=(k/2-cntb);
}
if(cntss<0){
cout<<"No"<<endl;
}else{
cout<<"Yes"<<endl;
}
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
D

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
const int N=1e6+10;
#include <iostream>
using namespace std;
void solve()
{
int n;cin>>n;
vector<int>a(n+1),lmin(n+1),lmax(n+1);
rep(i,1,n){
cin>>a[i];
lmin[i]=lmax[i]=0;
}
stack<int>stk;
rep(i,1,n){
while(stk.size()&&a[i]<=a[stk.top()]) stk.pop();
if(stk.size()){
lmin[i]=stk.top();
}
stk.push(i);
}
while(stk.size()) stk.pop();
rep(i,1,n){
while(stk.size()&&a[i]>=a[stk.top()]) stk.pop();
if(stk.size()){
lmax[i]=stk.top();
}
stk.push(i);
}
int q;cin>>q;
while(q--){
int l,r;cin>>l>>r;
int minn=lmin[r],maxx=lmax[r];
if(minn>=l){
cout<<minn<<' '<<r<<endl;
}else if(maxx>=l){
cout<<maxx<<' '<<r<<endl;
}else{
cout<<"-1 -1"<<endl;
}
}
cout<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
E

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
const int N=1e6+10;
#include <iostream>
using namespace std;
void solve()
{
int n,k;cin>>n>>k;
vector<int>ans(n+1);
int bb=1,dd=n;
rep(i,1,k){
if(i&1){
for(int j=i;j<=n;j+=k){
ans[j]=dd--;
}
}else{
for(int j=i;j<=n;j+=k){
ans[j]=bb++;
}
}
}
rep(i,1,ans.size()-1) cout<<ans[i]<<' ';
cout<<endl;
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
F

#include <bits/stdc++.h>
#define int long long
#define rep(i,a,b) for(int i = (a); i <= (b); ++i)
#define fep(i,a,b) for(int i = (a); i >= (b); --i)
#define pii pair<int, int>
#define pll pair<long long, long long>
#define ll long long
#define db double
#define endl '\n'
#define x first
#define y second
#define pb push_back
using namespace std;
const int N=2e5+10;
int fa[N];
struct edge{
int x,y,w;
}e[N];
vector<int>g[N];
int find(int x){
if(x==fa[x]) return x;
return fa[x]=find(fa[x]);
}
int n,m;
vector<int>path;
int vis[N];
void dfs(int u,int tag){
vis[u]=1;
path.pb(u);
if(u==tag){
cout<<path.size()<<endl;
for(auto i:path) cout<<i<<' ';
cout<<endl;
}else{
for(auto y:g[u]){
if(vis[y]) continue;
dfs(y,tag);
}
}
path.pop_back();
}
void solve()
{
cin>>n>>m;
rep(i,1,n) fa[i]=i;
rep(i,1,n) vis[i]=0;
path.clear();
rep(i,1,n) if(g[i].size()) g[i].clear();
rep(i,1,m){
int u,v,w;cin>>u>>v>>w;
e[i]={u,v,w};
}
sort(e+1,e+1+m,[&](edge t1,edge t2){return t1.w>t2.w;});
int id=0,ans=1e9;
rep(i,1,m){
int u=find(e[i].x),v=find(e[i].y);
if(u==v){
id=i;
ans=min(ans,e[i].w);
}else{
fa[u]=v;
}
}
cout<<ans<<' ';
rep(i,1,m){
if(id==i) continue;
int x=e[i].x,y=e[i].y;
g[x].pb(y);g[y].pb(x);
}
dfs(e[id].x,e[id].y);
}
signed main(){
ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
int _;
cin>>_;
while(_--)
solve();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署