专栏文章
ptyb2025 记录
个人记录参与者 1已保存评论 0
文章操作
快速查看文章及其快照的属性,并进行相关操作。
- 当前评论
- 0 条
- 当前快照
- 1 份
- 快照标识符
- @miq6agzn
- 此快照首次捕获于
- 2025/12/03 23:39 3 个月前
- 此快照最后确认于
- 2025/12/03 23:39 3 个月前
由于要上奥数课,所以只考了2h,哎!
T1是打磨你,八个问题,出题人是谁?这么良心。搞得我写了 行。不知道别人为啥只写几十行就过了(难道我想复杂了?QAQ)但...居然过了....
CPPT1是打磨你,八个问题,出题人是谁?这么良心。搞得我写了 行。不知道别人为啥只写几十行就过了(难道我想复杂了?QAQ)但...居然过了....
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e6+5;
signed main(){
// ios::sync_with_stdio(0);
//cin.tie(0);
//cout.tie(0);
int n;
cin>>n;
string s;
cin>>s;
int cnt=0;
int t=0;
for(int i=0;i<n;i++){
if(s[i]=='|'){
bool flag1=false,flag2=false;
int count=0;
for(int j=i-1;j>=t;j--){
if(s[j]=='2'&&count){
flag1=true;
break;
}
else if(s[j]=='2'){
break;
}
else if(s[j]=='_'){
count++;
continue;
}
else{
break;
}
}
int count1=0;
for(int j=i+1;j<n;j++){
if(s[j]=='5'&&count1){
flag2=true;
break;
}
else if(s[j]=='5'){
break;
}
else if(s[j]=='_'){
count1++;
continue;
}
else{
break;
}
}
if(flag2==false&&flag1==true&&count){
cnt++;
t=i;
}
}
}
int ans=0;
for(int i=0;i<n;i++){
if(s[i]=='2'){
int len=0;
int count=0;
for(int j=i+1;j<n;j++){
if(s[j]=='_'){
count++;
continue;
}
else if(s[j]=='|'&&count){
ans++;
len=j;
break;
}
else{
break;
}
}
}
}
cout<<cnt<<" "<<ans<<" ";
int cnt1=INT_MIN;
int cnt2=INT_MAX;
for(int i=0;i<n;i++){
if(s[i]=='2'){
int len=0;
int count=0;
for(int j=i+1;j<n;j++){
if(s[j]=='_'){
count++;
continue;
}
else if(s[j]=='|'&&count){
cnt1=max(cnt1,j-i+1);
cnt2=min(cnt2,j-i+1);
len=j;
break;
}
else{
break;
}
}
}
}
if(cnt1==INT_MIN) cnt1=0;
if(cnt2==INT_MAX) cnt2=0;
cout<<cnt2<<" "<<cnt1<<"\n";
cnt=0;
ans=0;
t=0;
for(int i=0;i<n;i++){
if(s[i]=='|'){
bool flag1=false,flag2=false;
int count=0;
for(int j=i-1;j>=t;j--){
if(s[j]=='2'&&count){
flag1=true;
break;
}
else if(s[j]=='2'){
break;
}
else if(s[j]=='_'){
count++;
continue;
}
else{
break;
}
}
int count1=0;
for(int j=i+1;j<n;j++){
if(s[j]=='5'&&count1){
flag2=true;
break;
}
else if(s[j]=='5'){
break;
}
else if(s[j]=='_'){
count1++;
continue;
}
else{
break;
}
}
if(flag1==false&&flag2==true&&count1){
cnt++;
t=i;
}
}
}
ans=0;
for(int i=0;i<n;i++){
if(s[i]=='|'){
int len=0;
int count=0;
for(int j=i+1;j<n;j++){
if(s[j]=='_'){
count++;
continue;
}
else if(s[j]=='5'&&count){
ans++;
len=j;
break;
}
else{
break;
}
}
}
}
cout<<cnt<<" "<<ans<<" ";
cnt1=INT_MIN;
cnt2=INT_MAX;
for(int i=0;i<n;i++){
if(s[i]=='|'){
int len=0;
int count=0;
for(int j=i+1;j<n;j++){
if(s[j]=='_'){
count++;
continue;
}
else if(s[j]=='5'&&count){
cnt1=max(cnt1,j-i+1);
cnt2=min(cnt2,j-i+1);
len=j;
break;
}
else{
break;
}
}
}
}
if(cnt1==INT_MIN) cnt1=0;
if(cnt2==INT_MAX) cnt2=0;
cout<<cnt2<<" "<<cnt1<<"\n";
return 0;
}
T2别说,会一些部分分,但没钱到手,只有 分,呜呜呜。
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+10;
bool vis[maxn];
signed main(){
int n;
cin>>n;
if(n==1){
string s;
cin>>s;
bool flag=false;
if(s[s.size()-1]==s[s.size()-2]){
flag=true;
}
int j=9;
for(int i=0;i<s.size();i++){
for(int x=i+1;x<s.size();x++){
if(s[i]==s[x]){
s[x]=j+'0';
}
}
if(!vis[s[i]-'0']){
s[i]=j+'0';
vis[s[i]-'0']=true;
j--;
}
}
if(flag==true){
s[s.size()-1]=s[s.size()-2];
}
cout<<s;
}
return 0;
}
T4由于快没时间了,只能输出 然后上课去了。本来好像有思路了。
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
const int maxn=1e5+10;
bool vis[maxn];
signed main(){
int n;
cout<<-1;
return 0;
}
相关推荐
评论
共 0 条评论,欢迎与作者交流。
正在加载评论...