1 条题解
-
0
声明a数组是储存科技创新奖名单; b数组是特殊贡献奖名单; using int a[100005],b[100005]; int n,m; ***bool f(int c){ *int l=1,r=m; while(l=c){ r=mid; } else{ l=mid+1; } }*//二分查找看是否或特殊贡献奖
**if(b[l]==c){
return 1;
} return 0;**//最后判断看是否成立
}***//判断条件 int main(){
cin>>n>>m; for(int i=1;i<=n;++i){ cin>>a[i]; } for(int i=1;i<=m;++i){ cin>>b[i]; }//输入
sort(b+1,b+1+m);//排序只b数组排序因为a数组保留下文间接原因
for(int i=1;i<=n;++i){ if(f(a[i])){ cout<<a[i]<<<<" ";}} 因为要按科技创新奖先后次序输出,再因科技创新奖不用二分,所以不用排序。这样可以节省和难度一些代码。 本人废物,第一篇题解,大佬还请多多指正。
- 1
信息
- ID
- 695
- 时间
- 1000ms
- 内存
- 125MiB
- 难度
- 8
- 标签
- 递交数
- 35
- 已通过
- 7
- 上传者