编程日记 cha2-3 Hash的应用
统计同成绩学生人数
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
int n;
int hs[101]={0};
int grade ;
int x;
while (scanf("%d",&n)!=EOF && n!=0)
{
for (int i=0;i<n;i++)
{
cin >> grade ;
hs[grade]++;
}
cin >> x;
cout<<hs[x]<<endl;
}
return 0;
}
Sort(牛客没有)
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
int a[1000001]={0};
int main()
{
int n,m;
int num;
while (scanf("%d %d",&n,&m)!=EOF)
{
for (int i=0;i<n;i++)
{
cin>>num;
a[num+500000] ++;
}
int i = 1000000;
while (i-- && m>0)
{
if (a[i])
{
m--;
cout<<i-500000<<' ';
}
}
}
return 0;
}
谁是你的潜在朋友
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
int main()
{
int n,m,num;
int book[201]={0};
int *stu ;
while (scanf("%d %d",&n,&m)!=EOF)
{
stu = (int *)malloc(n*sizeof(int));
for (int i=0;i<n;i++)
{
cin >> num ;
book[num] ++ ;
stu[i]=num;
}
for (int i=0;i<n;i++)
{
if (book[stu[i]]>1)
cout <<book[stu[i]]-1<<endl;
else
cout<<"BeiJu"<<endl;
}
}
return 0;
}
剩下的树
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
using namespace std;
int road[10001]={0};
int main()
{
int l;
int m ;
int i,j;
int left,right;
int c=0;
for (i=0;i<10001;i++)
road[i]=1;
while (scanf("%d %d",&l,&m)!=EOF)
{
for (i=0;i<m;i++)
{
cin >>left >> right;
for (j=left;j<right+1;j++)
{
if (road[j]>0)
road[j]--;
}
}
for (i=0;i<=l;i++)
if (road[i]>0)
c++;
cout << c <<endl;
}
return 0;
}