3 条题解

  • 0
    @ 2024-10-20 21:56:47

    ''' #include<bits/stdc++.h> using namespace std; const int N=1e5+5; struct Node{ int val,i,j; friend bool operator < ( Node a,Node b ){ return a.val>b.val; } };

    priority_queue pq; int n,a[N],b[N]; map< pair<int,int>,bool >mp; int main(){ cin>>n; // for(int i=1;i<=n;i++){ // cin>>a[i].val>>a[i].i>>a[i].j; // } // sort(a+1,a+1+n); // for(int i=1;i<=n;i++){ // cout<<a[i].val<<" "<<a[i].i<<" "<<a[i].j<<"\n"; // } for(int i=1;i<=n;i++){ scanf("%d",&a[i]); } for(int i=1;i<=n;i++){ scanf("%d",&b[i]); } Node now; now.val=a[1]+b[1]; now.i=1;now.j=1; pq.push(now); for(int i=1;i<=n;i++){ now=pq.top(); pq.pop(); printf("%d ",now.val);

      if( now.j!=n && mp[ make_pair(now.i,now.j+1) ]==0 ){
        mp[ make_pair(now.i,now.j+1)]=1;
        Node tmp=now;
        tmp.j++;
        tmp.val=a[tmp.i]+b[tmp.j];
        pq.push(tmp);
      }
      
      if( now.i!=n && mp[ make_pair(now.i+1,now.j) ]==0 ){
        mp[make_pair(now.i+1,now.j)]=1;
        Node tmp=now;
        tmp.i++;
        tmp.val=a[tmp.i]+b[tmp.j];
        pq.push(tmp);
      }
    }
    return 0;
    

    } '''

    信息

    ID
    308
    时间
    1000ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    178
    已通过
    10
    上传者