1.明明的随机数
代码:
#include<cstdio>
using namespace std;
int main()
{
freopen("random.in","r",stdin);
freopen("random.out","w",stdout);
int N,a[1001]={0},t;
int count=0;//计数器
scanf("%d",&N);
for(int i=0;i<N;i++)
{
scanf("%d",&t);
if(a[t]==0)
{
a[t]=t;
count++;
}
}
printf("%d\n",count);
for(int i=0;i<1001;i++)
{
if(a[i]!=0)
printf("%d ",a[i]);
}
fclose(stdin);
fclose(stdout);
return 0;
}
2.车厢重组
代码:
#include<stdio.h>
#define Max 10010
int a[Max];
int main()
{
freopen("carry.in","r",stdin);
freopen("carry.out","w",stdout);
int n,i,j,count; //count计数器
scanf("%d",&n);
for(i=1;i<=n;i++)
scanf("%d",&a[i]);
count=0;
//冒泡排序
for(i=1;i<n;i++)
{
for(j=1;j<=n-i;j++)
{
if(a[j]>a[j+1])
{
int tmp=a[j];
a[j]=a[j+1];
a[j+1]=tmp;
count++;
}
}
}
printf("%d\n",count);
fclose(stdin);
fclose(stdout);
return 0;
}
3.众数
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std;
int main(void)
{
freopen("masses.in","r",stdin);
freopen("masses.out","w",stdout);
int max=0,num=0;
int n,a[30009];
memset(a,0,sizeof(a));
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
int x;
scanf("%d",&x);
a[x]++;
}
for(int i=1;i<=30000;i++)
{
if(a[i]>max)
{
max=a[i];
}
}
for(int i=1;i<=30000;i++)
{
if(a[i]==max)
{
cout<< i<<' '<<max<<endl;
}
}
return 0;
}
4.第k小整数(洛谷P1138)
代码
#include<iostream>
#include<cstdio>
using namespace std;
int a[30005];
int main()
{
freopen("knumber.in","r",stdin);
freopen("knumber.out","w",stdout);
int n,k;
cin>>n>>k;
for(int i=0;i<n;i++)
{
int x;
cin>>x;
a[x]=1;
}
for(int i=1;i<=30000;i++)
{
if(a[i]==1)k--;
if(k==0)
{
cout<<i;
return 0;
}
}
cout<<"NO RESULT";
fclose(stdin);
fclose(stdout);
return 0;
}
5.军事机密
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[30002];
int main()
{
freopen("secret.in","r",stdin);
freopen("secret.out","w",stdout);
int n,i,m,k;
cin>>n;
for(i=0;i<n;i++)
cin>>a[i];
sort(a,a+n);
cin>>m;
for(i=1;i<=m;i++)
{
cin>>k;
cout<<a[k-1]<<endl;
}
fclose(stdin);
fclose(stdout);
return 0;
}
6.统计数字
代码
#include <cstdio>
#include <cstdlib>
int n;
int a[200001];
int cmp(const void *a,const void *b)
{
return *(int *)a-*(int *)b;
}
int main(){
freopen("count.in","r",stdin);
freopen("count.out","w",stdout);
scanf("%d",&n);
for (int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
qsort(a+1,n,sizeof(int),cmp);
int cnt=0,s=0;
for (int i=1;i<=n;i++)
{
if (i==1)
{
s=a[i];
cnt++;
continue;
}
if (s!=a[i])
{
printf("%d %d\n",s,cnt);
s=a[i];
cnt=1;
}
else if (s==a[i]) cnt++;
}
printf("%d %d\n",s,cnt);
fclose(stdin);
fclose(stdout);
return 0;
}
7.输油管道
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
struct node
{
int x,y;
} num[200001];
bool cmp(node a,node b)
{
return a.y<b.y;
}
int main()
{
int t;
scanf("%d",&t);
int i,j;
for(i=0;i<t;i++)
{
scanf("%d%d",&num[i].x,&num[i].y);
}
int ans;
sort(num,num+t,cmp);
if(t%2==1)
{
ans=0;
int zong=num[t/2].y;
for(i=0;i<t;i++)
{
ans+=abs(num[i].y-zong);
}
}
else
{
int zong=num[t/2].y+num[t/2-1].y;
zong/=2;
ans=0;
for(i=0;i<t;i++)
{
ans+=abs(num[i].y-zong);
}
}
printf("%d\n",ans);
return 0;
}