信息学奥赛一本通---第五章--- 数 组--- 1102-1118 (第四节)题解

113 阅读3分钟

没错,我爬回来更新了,开学了,我以后尽量周更两篇文章,如果临近期中期末考试我会提前告知暂不更新

注:此为c++代码

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

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

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

1102:

#include<bits/stdc++.h>
using namespace std;
int a,c,sum=0,b[108];
int main()
{
	cin>>a;	
	for(int i=1;i<=a;i++)
	{
		cin>>b[i];     	
	}
	cin>>c;
	for(int i=1;i<=a;i++)
	{
		if(b[i]==c)
		{
			sum++;
		}
	}
	cout<<sum;
	return 0;
}

1103:

#include<bits/stdc++.h>
using namespace std;
int a[10],b,sum=0;
int main()
{
    for(int i=0;i<10;i++)	
	{
		cin>>a[i];
	}
    cin>>b;
    b+=30;
    for(int i=0;i<10;i++)
	{
        if(a[i]<=b)
        {
        	sum++;
        }
	}
    cout<<sum<<endl;
    return 0;
}

1104:

#include<bits/stdc++.h>
using namespace std;
double sum=0,b[11];
double a[11]={0,28.9,32.7,45.6,78,35,86.2,27.8,43,56,65};
int main()
{
	for(int i=1;i<=10;i++)
	{
		cin>>b[i];     	
	}
	for(int i=1;i<=10;i++)
	{
		sum+=b[i]*a[i];
	}
	cout<<fixed<<setprecision(1)<<sum;
	return 0;
}

1105:

#include<bits/stdc++.h>
using namespace std;
int a[101],b;
int main()
{
	cin>>b;
	for(int i=1;i<=b;i++)
	{
		cin>>a[i];
	}
	for(int i=b;i>=1;i--)
	{
		cout<<a[i]<<" ";
	}
	return 0; 
}

1106:

#include<bits/stdc++.h>
using namespace std;
double a[108],b,c,d,e,f;
int main()
{
	cin>>b;
	for(int i=1;i<=b;i++)
	{
		cin>>a[i];
		if(a[i]<=18&&a[i]>=0)
		{
			c++;
		}
		if(a[i]<=35&&a[i]>=19)
		{
			d++;
		}
		if(a[i]<=60&&a[i]>=36)
		{
			e++;
		}
		if(a[i]>=61)
		{
			f++;
		}
	}
	cout<<fixed<<setprecision(2)<<c/b*100<<"%"<<endl;
	cout<<fixed<<setprecision(2)<<d/b*100<<"%"<<endl;
	cout<<fixed<<setprecision(2)<<e/b*100<<"%"<<endl;
	cout<<fixed<<setprecision(2)<<f/b*100<<"%"<<endl;
	return 0; 
}

1107:

#include<bits/stdc++.h>
using namespace std;
int a[10001],b,c,d,e,sum;
int main(){
	cin>>b>>c;
	for(int i=0;i<=b;i++)
	{
		a[i]=1;
	}
	for(int i=1;i<=c;i++)
	{
		cin>>d>>e;
		for(int j=d;j<=e;j++)
		{
			a[j]=0;
		}
	}
	for(int i=0;i<=b;i++)
	{
	 	if(a[i]==1)
		{
			sum++;
		} 
	}
	cout<<sum;
	return 0;	
}

1108:

#include<bits/stdc++.h>
using namespace std;
int a,b[1001],c[1001],sum;
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b[i];
	} 
	for(int i=1;i<=a;i++)
	{
		cin>>c[i];
		sum+=b[i]*c[i];
	} 		
	cout<<sum;
	return 0;
}

1109:

#include<bits/stdc++.h>
using namespace std;
int n,m;
int main() {
    cin>>n>>m;
    int a[n+1],b[n+1];
    for(int i=1; i<=n; i++) 
    {
        a[i]=i;
        b[i]=1;
    }
    for(int j=1; j<=m; j++) 
    {
        for(int i=1; i<=n; i++) 
        {
            if(a[i]%j==0)
            {
                b[i]=-b[i];
            }
        }
    }
    cout<<1;
    for(int i=2; i<=n; i++) 
    {
        if(b[i]==-1)
        {
            cout<<","<<a[i];
        }
    }
    return 0;
}

1110:

#include<bits/stdc++.h>
using namespace std;
int a,b[10001],c,d,e;
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b[i];
	}
	cin>>c;
	for(int i=1;i<=a;i++)
	{
		if(b[i]==c)
		{
			d=i;
			break;
		}
		if(b[i]!=c)
		{
			e++;
		}
		if(e==a)
		{
			cout<<"-1";
			return 0;
		}
	}
	cout<<d;
	return 0;
}

1111:

#include<bits/stdc++.h>
using namespace std;
int a[8],b[8],sum,sum1,maxx;
bool flag;
int main()
{
	for(int i=1;i<=7;i++)
	{
		cin>>a[i]>>b[i];
		sum++;
		if(a[i]+b[i]>=9&&a[i]+b[i]>maxx)
		{
			maxx=a[i]+b[i];
			break;
		}
		if(a[i]+b[i]<=8)
		{
			sum1++;
		}
		if(sum1==7)
		{
			cout<<0;
		}
	}
	cout<<sum;
	return 0;
}

1112:

#include<bits/stdc++.h>
using namespace std;
int a,b,maxx,minn;
bool flag;
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b;
		if(flag==0)
		{
			minn+=b;
			flag=1;
		}
		if(b>maxx)
		{
			maxx=b;
		}
		if(b<minn)
		{
			minn=b;
		}
	}
	cout<<maxx-minn;;
	return 0;
}

1113:

#include<bits/stdc++.h>
using namespace std; 
int a,b[101],maxx=-1000000,sum=0;
int main() 
{    
    cin>>a;
    for(int i=1;i<=a;i++)
    {
        cin>>b[i];
        if(b[i]>maxx)
		{
			maxx=b[i];
		}	
    }
   for(int i=1;i<=a;i++)
   {
   		if(b[i]!=maxx)
   		{
   			sum+=b[i];
   		}
           
   }
   cout<<sum<<endl;
   return 0;
}

1114:

#include<bits/stdc++.h>
using namespace std;
double a,b[301],c,d,u,y,maxx=0,maxx1=0,minn=0,sum;
int main()
{
	cin>>a;
	for(int i=1;i<=a;i++)
	{
		cin>>b[i];
		sum+=b[i];
		if(i==1)
		{
			maxx=b[1];
			minn=b[1];
		}
		else if(b[i]>maxx)
		{
			maxx=b[i];
			y=i;
		}
		else if(b[i]<minn)
		{
			minn=b[i];
			u=i;
		}
	}
	c=(sum-maxx-minn)/(a-2);
	for(int i=1;i<=a;i++)
	{
		if(i==u||i==y)
		{
			continue;
		}
		d=abs(b[i]-c);
		if(d>maxx1)
		{
			maxx1=d;
		}
	}
	cout<<fixed<<setprecision(2)<<c<<" ";
	cout<<fixed<<setprecision(2)<<maxx1;
	return 0;
}

1115:

#include<bits/stdc++.h>
using namespace std; 
int n,x,a[10001]={0},maxx=-9999,flag;
int main() 
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>x;
    	a[x]++;
        if(x>maxx)
        {
	        maxx=x;
        }  
    }
    for(int i=0;i<=maxx;i++)
    {
    	cout<<a[i]<<endl;
    }
    return 0;
}

1116:

#include<bits/stdc++.h>
using namespace std; 
int n,a[100001];
int maxx=-9999,len=1;
int main() 
{
    cin>>n;
    a[0]=-3456497;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i];
    	if(a[i]==a[i-1])
        {
            len++;
        }
    	else
        {
            len=1;
        }
    	if(len>maxx)
        {
            maxx=len;
        }
    }
    cout<<maxx<<endl;
    return 0;
}

1117:

#include<bits/stdc++.h>
using namespace std;
int n,a[20001];
bool b[20001];
int main()
{
    cin>>n;
    for(int i=1; i<=n; i++)
    {
        cin>>a[i];
        b[i]=true;
    }
    for(int i=1; i<=n; i++)
    {
        if(b[i])
        {
            for(int j=i+1; j<=n; j++) 
            {
                if(a[i]==a[j])
                {
                    b[j]=false;
                }
            }
        }
    }
    for(int i=1; i<=n; i++) 
    {
        if(b[i]==true)
        {
            cout<<a[i]<<" ";
        }
    }
    return 0;
}

1118:

#include<bits/stdc++.h>
using namespace std;
int n,a[10001],b[10001],g[10001],k[10001],x,y,bh=-1;
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
	{
        cin>>a[i]>>b[i]>>g[i]>>k[i];
    }
    cin>>x>>y;
    for(int i=1;i<=n;i++)
	{
        if(x>=a[i]&&x<=a[i]+g[i]&&y>=b[i]&&y<=b[i]+k[i])
		{
			bh=i;
    	}
    }
    cout<<bh;
    return 0;
}

个人码风,不喜勿喷

下周发:

信息学奥赛一本通---第五章--- 数 组--- 1119-1128 (第四节)题解