稀疏向量

稀疏向量


from CCF-CSP 2020-06-2
Time limit:2s
Memory limit:512MB

在这里插入图片描述
在这里插入图片描述


数据结构里面稀疏矩阵的思想就可以了,找到相同的维度的地方就相乘,然后累加。

ac代码:
#include<iostream>
using namespace std;
int n,a,b;
pair<int,int> p1[500005];           //存储向量1
pair<int,int> p2[500005];           //存储向量2
int main(){
    
    
    cin>>n>>a>>b;
    for(int i = 1;i <= a;++i)
        cin>>p1[i].first>>p1[i].second;
    for(int i = 1;i <= b;++i)
        cin>>p2[i].first>>p2[i].second;
    int note1 = 1,note2 = 1;long long sum = 0;
    while(note1 <= a && note2 <= b){
    
    
        if(p1[note1].first == p2[note2].first)
            sum += p1[note1].second * p2[note2].second,++note1,++note2;
        else if(p1[note1].first < p2[note2].first)
            ++note1;
        else
            ++note2;
    }
    cout<<sum;
    return 0;
}

猜你喜欢

转载自blog.csdn.net/qq_45985728/article/details/114954153