CF-Edu-163(已更新:A B)
1.CF-925(已更新:D-F)2.2024牛客寒假算法基础集训营33.CF-926(已更新:B-C)4.CF-927(已更新:B C E)5.CF-928(已更新:B C D E)6.2024牛客寒假算法集训营4 (已更新:B-E)7.CF EDU-162 (已更新:A-C+D的代码)8.At-abc3429.蒟蒻的补档题(长期更新)10.CF-929(已更新:B-E)11.CF-931(已更新:AB代码)12.PowerOj 2024-康复赛 (待更新)13.CF-932(已更新 A B)14.矩阵快速幂15.CF-933(已更新:B-D)16.数论分块
17.CF-Edu-163(已更新:A B)
18.CF-936(AB)19.AT-abc347(C-E)20.CF-938(C-E)21.CF-943(已更B-E,G1)22.CF-945(已更A,B)23.CF-956(A-D)24.CF-957(D-E)25.CF-959(C-E)26.Codeforces Round 967 (Div. 2)-D27.AtCoder Beginner Contest 396 (E-F)28.Codeforces Round 1008 (Div. 2) (C-D)CF-EDU-163
“分就是用来掉的”我真是自己都佩服我自己的心态了已经(╬▔皿▔)╯
虽然明天还有个比赛>﹏<,但是这场一定要补到D
A
分析
注意特殊字符是与其相邻的一个字符相等,子串中存在特殊字符的形式的只有"BAAB"(这里的B也可看作字符串的首或尾,A可以有大于2的无数个),它的特殊字符数为2,所以对于任何存在特殊字符的字符串,特殊字符的个数n一定是偶数,所以对于偶数n,我们输出的字符串只要有(n/2)个"BAAB"个子串就行了
操作
结合分析,对于输出存在n个特殊字符的字符串,可以直接输出n/2个"AAB"
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
void solve(){
int n;cin>>n;
if(n&1){
cout<<"NO"<<endl;
return;
}
cout<<"YES"<<endl;
rep(i,1,n/2) cout<<"AAB";
cout<<endl;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;cin>>t;while(t--)
solve();
return 0;
}
B
赛时还试过dfs——tle了,还在输入里加过break……
分析
对于当前数字
- 如果是一位数,他对后一个数的贡献就是它本身,
- 如果是二位数,要考虑是否可拆,因为像65这样十位数与个位数成逆序的数,拆开就不合法,对于可拆的数字,其十位数要大于等于上一个数的贡献,同时十位与个位非递减,其对下一个数字的贡献是它的个位数,不可拆的话就是它本身
操作
声明pre为上一个数对当前数的贡献,若遍历时出现pre>x则不可行,判断这个之后再按两种情况更新pre
注意若更新在判断之前,pre在判断时就变成了当前数对下一个数的贡献,所以pre的更新要在判断之后
代码
#include <bits/stdc++.h>
using namespace std;
#define endl '\n'
#define int long long
#define db(x) cout<<x<<" "<<endl;
#define _db(a,n) for(int i=1;i<=n;i++) cout<<a[i]<<" ";cout<<endl;
#define mem(a) memset(a,0, sizeof(a))
#define rep(i,l,r) for(int i=l;i<=r;i++)
#define per(i,r,l) for(int i=r;i>=l;i--)
void solve(){
int n,x;cin>>n;
int f=1,pre=0;//注意pre的初值为0
rep(i,1,n){
cin>>x;
if(pre>x){
f=0;
}
if(x>9&&x/10>=pre&&x/10<=x%10) pre=x%10;//可拆
else{//为一位数或不可拆
pre=x;
}
}
if(f) cout<<"YES";
else cout<<"NO";
cout<<endl;
}
signed main()
{
std::ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int t;cin>>t;while(t--)
solve();
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】