1 条题解

  • 0
    @ 2024-1-26 14:21:32

    声明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
    上传者