NO.1
单纯的傻傻的代码:
#include<stdio.h>
long long num[100000005]={0};
int main(){
int n, m, k;
scanf("%d%d",&n,&m);
while(n--){
scanf("%d",&k);
num[k]++;
}
while(m--){
scanf("%d",&k);
if(num[k]!=0) printf("YES\n");
else printf("NO\n");
}
return 0;
}
NO.2
愤怒的,利用STL向量的代码:
#include<cstdio>
#include<vector>
using namespace std;
int main(){
vector<int> num;
int n, m, k;
scanf("%d%d",&n,&m);
while(n--){
scanf("%d",&k);
num.push_back(k);
}
while(m--){
scanf("%d",&k);
for(n=0;n<num.size();n++){
if(num.at(n)==k){
k=-1;
break;
}
}
if(k==-1) printf("YES\n");
else printf("NO\n");
}
return 0;
}
NO.3.
无奈的去寻求帮助后的代码(AC):
# include<stdio.h>
# include<stdlib.h>
int a[1000001];
int comp(const void * p1,const void * p2)
{
return *(int *)p1-*(int *)p2;
}
int search(int i,int j,int n)
{
int mid;
while(i<j)
{
mid = i+(j-i)/2;
if(a[mid] == n) return 1;
else if(a[mid]>n) j = mid;
else i = mid+1;
}
return 0;
}
int main(void)
{
int n,m,i,t;
scanf("%d %d",&m,&n);
for(i=0;i<m;i++)
scanf("%d",&a[i]);
qsort(a,m,sizeof(int),comp);
for(i=0;i<n;i++)
{
scanf("%d",&t);
printf(search(0,m-1,t)?"YES\n":"NO\n");
}
return 0;
}居然是用qsort排序,加二分法,哇啊啊啊,好吧,败了
本文展示了几种编程语言的代码实现技巧,包括使用STL向量、排序与二分查找法解决实际问题。从简单的计数操作到复杂的数据查找,文章通过实例深入浅出地讲解了代码设计与算法应用。
451

被折叠的 条评论
为什么被折叠?



