- 求先序遍历(str)
哇哇哇,AC啦
- @ 2025-11-25 20:35:53
#include<bits/stdc++.h>
#define ll long long
#pragma GCC optimize(2)
#define un unsigned
#define int long long
#define db double
#define inf 1000000000000000
#define st string
#define ct const
#define xh(a,b,c) for(int a=b;a<=c;a++)
#define wx while(1)
#define dn(a,b,c) for(int a=b;a>=c;a--)
using namespace std;
st s1,s2;
int min(int x,int y){
return x<y?x:y;
}
string dfs(string s1,string s2){
if(s1.empty())return "";
int t=s1.find(s2[s2.size()-1]);
string str1,str2,s3,s4;
str1=str2=s3=s4="";
str1=s1.substr(0,t);
str2=s2.substr(0,t);
xh(i,t+1,s1.size()-1)s3+=s1[i];
s4=s2.substr(t,s2.size()-t-1);
return s2[s2.size()-1]+dfs(str1,str2)+dfs(s3,s4);
}
signed main(){
cin>>s1>>s2;
cout<<dfs(s1,s2);
return 0;
}
1 条评论
-
xzljm LV 6 @ 2025-11-30 21:03:54注意 有AC了一体
#include<bits/stdc++.h> #define ll long long #pragma GCC optimize(2) #define un unsigned #define int long long #define db double #define inf 1000000000000000 #define st string #define ct const #define xh(a,b,c) for(int a=b;a<=c;a++) #define wx while(1) #define dn(a,b,c) for(int a=b;a>=c;a--) using namespace std; int n,a[100010],b[100010],ans; void qsort(int left,int right){ int mid=(left+right)/2; if(left>=right)return ; int k=left,i=left,j=mid+1; qsort(left,mid); qsort(mid+1,right); while(i<=mid&&j<=right){ if(a[i]<=a[j])b[k++]=a[j++]; else ans+=(right-j+1),b[k++]=a[i++]; } while(i<=mid)b[k++]=a[i++]; while(j<=right)b[k++]=a[j++]; xh(i,left,right)a[i]=b[i]; } signed main(){ cin>>n; xh(i,1,n)cin>>a[i]; qsort(1,n); cout<<ans; return 0; }
- 1
信息
- ID
- 83
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 1
- 标签
- (无)
- 递交数
- 45
- 已通过
- 36
- 上传者