- L1基础算法测试讲解
L1 基础算法 题解
- 2023-11-18 16:14:11 @
一、 拼最大整数
#include<bits/stdc++.h>
using namespace std;
string a[20000];
int cmp(string x,string y){
return x+y>y+x;
}
int main(void){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
sort(a,a+n,cmp);
for(int i=0;i<n;i++) cout<<a[i];
return 0;
}
#include<bits/stdc++.h>
using namespace std;
int main(){
string s;
int n,l;
cin>>s>>n;
l=s.size();
for(int i=0;i<l&&n;){
if(s[i]<=s[i+1]) i++;
else {
s.erase(i--,1);
if(i<0) i=0;
l--;
n--;
}
}
while(s[0]=='0') s.erase(0,1);
cout<<s;
return 0;
}
三、独木舟
#include<bits/stdc++.h>
using namespace std;
int w,n,t[30005],ans=0;
int main(void){
cin>>w>>n;
for(int i=1;i<=n;i++) cin>>t[i];
sort(t+1,t+1+n);
int l=1,r=n;
while(l<=r){
if(t[l]+t[r]<=w){
ans++;
l++;
r--;
}else{
ans++;
r--;
}
}
cout<<ans<<endl;
return 0;
}
#include<bits/stdc++.h>
using namespace std;
struct node{
int a;
string name;
};
node a[100005];
int main(){
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++){
cin>>a[i].a>>a[i].name;
}
int u,v,t=0;
while(m--){
cin>>u>>v;
if(a[t].a+u==1){
t+=v;
while(t>=n) t-=n;
}else{
t-=v;
while(t<0) t+=n;
}
}
cout<<a[t].name<<endl;
return 0;
}
1 comments
-
yangjinjiang LV 3 @ 2024-3-29 17:42:28
6666
- 1