信息学奥赛一本通---第五章--- 数 组--- 1129-1148 (第三节)题解

95 阅读3分钟

注:此为c++代码

    虽然我的代码无注释,但如想复制,必须完全搞懂代码所对应的题!

Dev c++这东西点进来的都有吧,详情见我的另一篇文章。

正式进入题解部分:          (本人小白,大佬们请勿吐槽)

1129:

#include<bits/stdc++.h>
using namespace std;
char a[300];
int sum,len;
int main()
{ 
	gets(a);
	len=strlen(a);
	for(int i=0;i<=len-1;i++)
	{
		if(a[i]>=48&&a[i]<=57)
		{
			sum++;
		}
	}
	cout<<sum;
	return 0;
}

1130:

#include<bits/stdc++.h>
using namespace std;
char a[100001],b;
int len,sum;
int main()
{
	gets(a);
	len=strlen(a);
    for(int i=0;i<=len-1;i++)
    {
    	sum=0;
    	b=a[i];
    	for(int j=0;j<=len-1;j++)
    	{
    		if(b==a[j])
    		{
    			sum++;
    		}
    	}
    	if(sum>=2)
    	{
    	}
    	else if(sum==1)
    	{
    		cout<<b;
    		return 0;
    	}
    }
    cout<<"no";
    return 0;
}

1131:

#include<bits/stdc++.h>
using namespace std;
char a[501],b[501];
double len,sum,c;
int main()
{
	cin>>c>>a>>b;
	len=strlen(a);
    for(int i=0;i<=len-1;i++)
    {
    	if(a[i]==b[i])
    	{
    		sum++;
    	}
	}
	if(sum/len>=c)
	{
		cout<<"yes";
	}
	else
	{
		cout<<"no";
	}
    return 0;
}

1132:

#include<iostream>
using namespace std;
char a[101],b[101];
int n;
int main()
{
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a>>b;
        if(a[0]=='R'&&b[0]=='S'||a[0]=='S'&&b[0]=='P'||a[0]=='P'&&b[0]=='R')
        {
        	cout<<"Player1"<<endl;
        }
        else if(a[0]==b[0])
        {
        	cout<<"Tie"<<endl;
        } 
        else
        {
        	cout<<"Player2"<<endl;
        } 
    }
    return 0;
}

1133:

#include<bits/stdc++.h>
using namespace std;
char ch[101];
int len;
int main()
{
    gets(ch);
    len=strlen(ch);
    for(int i=0;i<=len-2;i++)
    {
    	cout<<char(ch[i]+ch[i+1]);
    }
    cout<<char(ch[len-1]+ch[0]);
    return 0;
}

1134:

#include<bits/stdc++.h>
using namespace std;
char ch[101];
int len;
int main()
{
    gets(ch);
    len=strlen(ch);
    if(ch[0]>='0'&&ch[0]<='9')
    {
    	cout<<"no";
    	return 0;
    }
    else
    {
    	for(int i=0;i<=len-1;i++)
    	{
    		if(ch[i]>='a'&&ch[i]<='z'||ch[i]>='A'&&ch[i]<='Z'||ch[i]=='_'||ch[i]>='0'&&ch[i]<='9')
    		{
    		}
    		else
    		{
    			cout<<"no";
    			return 0;
    		}
    	}
    	cout<<"yes";
    	return 0;
    }
    return 0;
}

1135:

#include<bits/stdc++.h>
using namespace std;
char ch[300];
int len; 
int main()
{
	gets(ch);
	len=strlen(ch);
    for(int i=0;i<=len-1;i++)
    {
    	if(ch[i]=='A')
    	{
    		ch[i]='T';
		}
		else if(ch[i]=='T')
    	{
    		ch[i]='A';
		}
		else if(ch[i]=='G')
    	{
    		ch[i]='C';
		}
		else if(ch[i]=='C')
    	{
    		ch[i]='G';
		}
	}
	cout<<ch;
    return 0;
}

1136:

#include<bits/stdc++.h>
using namespace std;
char a[100];
int len;
int main()
{
	gets(a);
	len=strlen(a);
	for(int i=0;i<=len-1;i++)
	{	if(a[i]=='z')
		{
			a[i]='a';
			continue;
		}
		else if(a[i]=='Z')
		{
			a[i]='A';
			continue;
		}
		if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
		{
			
			a[i]=a[i]+1;	
		}
	}
	for(int i=0;i<=len-1;i++)
	{
		cout<<a[i];
	}
	return 0;
}

1137:

#include<bits/stdc++.h>
using namespace std;
char a[100],b[101];
int len,j=0;
int main()
{
	gets(a);
	len=strlen(a);
	for(int i=0;i<=len-1;i++)
	{
		if(a[i]=='z')
		{
			a[i]='c';
			continue;
		}
		else if(a[i]=='Z')
		{
			a[i]='C';
			continue;
		}
		else if(a[i]=='y')
		{
			a[i]='b';
			continue;
		}
		else if(a[i]=='Y')
		{
			a[i]='B';
			continue;
		}
		else if(a[i]=='x')
		{
			a[i]='a';
			continue;
		}
		else if(a[i]=='X')
		{
			a[i]='A';
			continue;
		}
		if(a[i]>='a'&&a[i]<='z'||a[i]>='A'&&a[i]<='Z')
		{
			
			a[i]=a[i]+3;	
		}
	}
	for(int i=len-1;i>=0;i--)
	{
		b[j]=a[i];
		j++;
	}
	for(int i=0;i<=len-1;i++)
	{
		if(b[i]>='a'&&b[i]<='z')
		{
			b[i]=b[i]-32;
		}
		else if(b[i]>='A'&&b[i]<='Z')
		{
			b[i]=b[i]+32;
		}
	}
	for(int i=0;i<=len-1;i++)
	{
		cout<<b[i];
	}
	return 0;
}

1138:

#include<bits/stdc++.h>
using namespace std;
char a[101];
int len;
int main()
{
	gets(a);
	len=strlen(a);
	for(int i=0;i<=len-1;i++)
	{
		if(a[i]>='a'&&a[i]<='z')
		{
			a[i]=a[i]-32;
		}
	}
	for(int i=0;i<=len-1;i++)
	{
		cout<<a[i];
	}
	return 0;
}

1139:

#include<bits/stdc++.h>
using namespace std;
char a[101];
int len,n;
int main()
{
	cin>>n;
	for(int j=1;j<=n;j++)
	{
		cin>>a;
		len=strlen(a);
		if(a[0]>='a'&&a[0]<='z')
		{
			a[0]=a[0]-32;
			cout<<a[0];
		}
		else
		{
			cout<<a[0];
		}
		for(int i=1;i<=len-1;i++)
		{
			if(a[i]>='A'&&a[i]<='Z')
			{
				a[i]=a[i]+32;
			}
			cout<<a[i];
		}
		cout<<endl;
	}
	return 0;
}

1140:

#include<bits/stdc++.h>
using namespace std;
string a,b;
int main()
{
	cin>>a>>b;
	if(a.find(b)!=a.npos)
	{
		cout<<b<<" is substring of "<<a;
	}
	else if(b.find(a)!=b.npos)
	{
		cout<<a<<" is substring of "<<b;
	}
	else
	{
		cout<<"No substring";
	}
    return 0;
}

1141:

#include<bits/stdc++.h>
using namespace std;
char a[100];
int len;
int main()
{
	gets(a);
	len=strlen(a);
	for(int i=len-3;i<=len-1;i++)
	{
		if(a[i]=='e')
		{
			if(a[i+1]=='r')
			{
				a[i]='\0';
				a[i+1]='\0';
				cout<<a;
				return 0;
			}
		}
		else if(a[i]=='l')
		{
			if(a[i+1]=='y')
			{
				a[i]='\0';
				a[i+1]='\0';
				cout<<a;
				return 0;
			}
		}
	}
	for(int i=len-4;i<=len-1;i++)
	{
		if(a[i]=='i')
		{
			if(a[i+1]=='n')
			{
				if(a[i+2]=='g')
				{
					a[i]='\0';
					a[i+1]='\0';
					a[i+2]='\0';
					cout<<a;
					return 0;
				}
			}
		}
	}
	return 0;
}

1142:

#include<bits/stdc++.h>
using namespace std;
char s[1000];
int len;
int sum=0;
int i;
int main()
{ 
    gets(s);
    len=strlen(s);
    for(i=0;i<len;i++)
    {
        if(s[i]!=' ')	
        {
            sum++;
        }
        else
        {
            if(sum>0)
            {
            	cout<<sum<<",";
            }
            sum=0;
        }
    }
    cout<<sum<<endl;
    return 0;
}

1143:

#include<bits/stdc++.h>
using namespace std;
char ch[50000];
int len,s,maxx,minn=100,maxi,mini; 
int main()
{
	gets(ch);
	len=strlen(ch);
	ch[len]=' ';
	for(int i=0;i<=len;i++){
		if(ch[i]!=' '&&ch[i]!=',') s++;
		else{
			if(s>maxx){
				maxx=s;
				maxi=i-s;
			}
			if(s>0&&s<minn){
				minn=s;
				mini=i-s;
			}
			s=0;
		} 
	}
	for(int i=maxi;i<=maxi+maxx-1;i++) cout<<ch[i];
	cout<<endl;
	for(int i=mini;i<=mini+minn-1;i++) cout<<ch[i];
	return 0;
}

1144:

#include<bits/stdc++.h>
using namespace std;
char s[1000];
int len,position;
int sum=0;
int i,j;
int main()
{
    gets(s);
    len=strlen(s);
    s[len]=' ';
    for(i=0;i<=len;i++)
    {
        if(s[i]!=' ') sum++;
        else
        {
            position=i;
            for(j=1; j<=sum; j++) cout<<s[--position];
            sum=0;
            if(i!=len) cout<<" ";
        }
    }
    cout<<endl;
    return 0;
}

1145:

#include<bits/stdc++.h>
using namespace std;
char s[1000];
int len,position;
int sum=1;
int i;
int main()
{
    gets(s);
    len=strlen(s);
    for(i=0; i<len; i++)
    {
        if(s[i]==s[i+1])	
            sum++;
        else
        {
            cout<<sum<<s[i];
            sum=1;
        }
    }
    cout<<endl;
    return 0;
}

1146:

#include<bits/stdc++.h>
using namespace std;
char s[100];
int len,position;
int i,j;
int main()
{
    gets(s);
    len=strlen(s);
    j=len-1;
    while((i<j)&&(s[i]==s[j]))
    {
        i++;
        j--;
    }
    if(i>=j) cout<<"yes"<<endl;
    else cout<<"no"<<endl;
    return 0;
}

1147:

#include<iostream>
#include<bits/stdc++.h>
using namespace std;
struct student
{
    string name;
    int score;
} a[100];
int main()
{
    int n;
    int i,j;
    cin>>n;
    for(i=0; i<n; i++)
    {
        cin>>a[i].score;
        cin>>a[i].name;
    }
    for(i=0; i<n-1; i++) 
    {
        for(j=0; j<n-1-i; j++)
        {
            if(a[j].score<a[j+1].score) swap(a[j],a[j+1]);
        }
    }
    cout<<a[0].name<<endl;
    return 0;
}

1148:

#include<bits/stdc++.h>
using namespace std;
char s[2500];
int k;
int len;
int sum=0;
int i;
int main()
{
    cin>>k;
    cin>>s;
    len=strlen(s);
    for(i=0; i<len; i++)
    {
        if(sum==k)
        {
            cout<<s[i]<<endl;
            return 0;
        }
        if(s[i]==s[i+1]) sum++;
        else sum=1;
    }
    cout<<"No"<<endl;
    return 0;
}

1149:

#include<bits/stdc++.h>
using namespace std;
char s[2500];
int k;
int len;
int max_len=0,max_position;
int sum=0;
int i;
int main()
{
    gets(s);
    len=strlen(s)-1;
    for(i=0; i<=len; i++)
    {
        if(s[i]!=' '&&s[i]!='.') sum++;
        else if(sum>0)
        {
            if(sum>max_len)
            {
                max_len=sum;
                max_position=i-sum;
            }
            sum=0;
        }
    }
    for(i=max_position; i<=max_len+max_position-1; i++) cout<<s[i];
    cout<<endl;
    return 0;
}

个人码风,不喜勿喷

下周发:

信息学奥赛一本通---第六章--- 函 数--- 1150-1157题解

注:第六章之后我将只写个别题的题解(别问为啥)

其实是我懒,当然,主要是因为技术有限,目测提节能发到基础算法