蓝桥杯真题训练 五一 1/5
Posted iuk11
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥杯真题训练 五一 1/5相关的知识,希望对你有一定的参考价值。
题目均来自acwing
1204
#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
const int N=1e5+10;
int a[maxn];
int b[N];
int change(string s){
int ans=0;
for(int i=0;i<s.size();i++){
ans=ans*10+s[i]-'0';
}
return ans;
}
int main(){
int t,opp;
cin>>t;
vector<int> ve;
string s;
getchar();
while(t--){
getline(cin,s);
//cout<<s<<endl;
stringstream ss(s);
string str;
while(getline(ss,str,' ')){
ve.push_back(change(str));
//cout<<change(str)<<" ";
}
}
int minn=0x3f3f3f3f;
int maxx=-1;
int duan,chong;
for(int i=0;i<ve.size();i++){
b[ve[i]]++;
minn=min(minn,ve[i]);
maxx=max(maxx,ve[i]);
}
for(int i=minn;i<=maxx;i++){
if(b[i]==0) duan=i;
if(b[i]>1) chong=i;
}
cout<<duan<<" "<<chong<<"\\n";
//system("pause");
return 0;
}
1208
#include<bits/stdc++.h>
using namespace std;
const int maxn=105;
int main(){
string a,b;
cin>>a>>b;
vector<int> ve;
for(int i=0;i<a.size();i++){
if(a[i]!=b[i]) ve.push_back(i);
}
int ans=0;
for(int i=0;i<ve.size();i+=2){
ans=ans+ve[i+1]-ve[i];
}
cout<<ans<<endl;
//system("pause");
return 0;
}
1029
1
#include<bits/stdc++.h>
using namespace std;
const int maxn=15;
int n;
int cnt;
int num[maxn];
int vis[maxn];
int calc(int l,int r){
int ans=0;
for(int i=l;i<=r;i++){
ans=ans*10+num[i];
}
return ans;
}
void dfs(int u){
if(u==9){
for(int i=0;i<7;i++){
for(int j=i+1;j<8;j++){
int a=calc(0,i);
int b=calc(i+1,j);
int c=calc(j+1,8);
if(a*c+b==c*n) cnt++;
}
}
}
/*
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=1;
num[u]=i;
dfs(u+1);
vis[i]=0;
}
}
*/
}
void cas(){//全排列 与下面深搜的1~9路径效果一样
int a[9]={1,2,3,4,5,6,7,8,9};
while(next_permutation(a,a+9)){
for(int i=0;i<9;i++){
num[i]=a[i];
}
dfs(9);
}
}
int main(){
cin>>n;
//dfs(0);
cas();
cout<<cnt;
//system("pause");
return 0;
}
2
#include<bits/stdc++.h>
using namespace std;
const int maxn=15;
int n;
int cnt;
int num[maxn];
int vis[maxn];
int calc(int l,int r){
int ans=0;
for(int i=l;i<=r;i++){
ans=ans*10+num[i];
}
return ans;
}
void dfs(int u){
if(u==9){
for(int i=0;i<7;i++){
for(int j=i+1;j<8;j++){
int a=calc(0,i);
int b=calc(i+1,j);
int c=calc(j+1,8);
if(a*c+b==c*n) cnt++;
}
}
}
for(int i=1;i<=9;i++){
if(!vis[i]){
vis[i]=1;
num[u]=i;
dfs(u+1);
vis[i]=0;
}
}
}
void cas(){//全排列 与下面深搜的1~9路径效果一样
int a[9]={1,2,3,4,5,6,7,8,9};
while(next_permutation(a,a+9)){
for(int i=0;i<9;i++){
num[i]=a[i];
}
dfs(9);
}
}
int main(){
cin>>n;
dfs(0);
//cas();
cout<<cnt;
//system("pause");
return 0;
}
1210
#include<bits/stdc++.h>
using namespace std;
const int maxn=1e4+10;
int n;
int ans;
int a[maxn];
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i];
}
for(int l=1;l<=n;l++){
int maxx=-1;
int minn=0x3f3f3f3f;
for(int r=l;r<=n;r++){
maxx=max(maxx,a[r]);
minn=min(minn,a[r]);
if(maxx-minn==r-l) ans++;
}
}
cout<<ans;
//system("pause");
return 0;
}
1211
#include<bits/stdc++.h>
using namespace std;
const int maxn=55;
int n;
int a[maxn];
bool cmp(int a,int b){
return abs(a)<abs(b);
}
int main(){
cin>>n;
int first=0;
for(int i=1;i<=n;i++){
cin>>a[i];
if(i==1) first=a[i];
}
sort(a+1,a+1+n,cmp);
int idx=n+1;
for(int i=1;i<=n;i++){
if(first==a[i]){
idx=i;
break;
}
}
int left=0,right=0;
if(first<0){
for(int i=idx-1;i>=1;i--){
if(a[i]>0){
left++;
}
}
if(left==0) idx=n;
for(int i=idx+1;i<=n;i++){
if(a[i]<0&&a[i]!=first){
right++;
}
}
}else{
for(int i=idx+1;i<=n;i++){
if(a[i]<0){
right++;
}
}
if(right==0) idx=0;
for(int i=idx-1;i>=1;i--){
if(a[i]>0&&a[i]!=first){
left++;
}
}
}
cout<<left+right+1<<endl;
//system("pause");
return 0;
}
以上是关于蓝桥杯真题训练 五一 1/5的主要内容,如果未能解决你的问题,请参考以下文章
蓝桥杯选拔赛真题51Scratch赛车训练 少儿编程scratch图形化编程 蓝桥杯选拔赛真题讲解