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; }