欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

CCF-202006-2-稀疏向量

程序员文章站 2022-03-27 11:32:51
题目:http://118.190.20.162/view.page?gpid=T1041.60分 运行超时#include using namespace std;int main(){ int n,a,b; cin>>n>>a>>b; mapu; int index,value; for(int i=0;i

题目:http://118.190.20.162/view.page?gpid=T104
1.60分 运行超时

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,a,b;
    cin>>n>>a>>b;
    map<int,int>u;
    int index,value;
    for(int i=0;i<a;i++)
    {
        cin>>index>>value;
        u[index]=value;
    }
    long long res=0;
    for(int i=0;i<b;i++)
    {
        cin>>index>>value;
        if(u[index])
            res+=value*u[index];
    }
    cout<<res;

    return 0;
}


2.100 满分

#include <bits/stdc++.h>
using namespace std;
int main()
{
    ios::sync_with_stdio(false);
    int n,a,b;
    cin>>n>>a>>b;
    map<int,int>u;
    int index,value;
    for(int i=0;i<a;i++)
    {
        cin>>index>>value;
        u[index]=value;
    }
    long long res=0;
    for(int i=0;i<b;i++)
    {
        cin>>index>>value;
        if(u[index])
            res+=value*u[index];
    }
    cout<<res;

    return 0;
}


2.100 满分

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int n,a,b;
    scanf("%d %d %d",&n,&a,&b);
    //cin>>n>>a>>b;
    vector<pair<int,int>>u;
    int index,value;
    for(int i=0;i<a;i++)
    {
        //cin>>index>>value;
        scanf("%d %d",&index,&value);
        u.push_back({index,value});

    }
    long long res=0;
    int j=0;
    for(int i=0;i<b;i++)
    {
        scanf("%d %d",&index,&value);
        while(j<a)
        {
            if(index<u[j].first)
                break;
            else if(index>u[j].first)
                j++;
            else
            {
                res+=value*u[j].second;
                j++;
            }


        }

    }
    printf("%lld",res);

    return 0;
}


输入输出cin,cout会得90分,超时

本文地址:https://blog.csdn.net/weixin_43846587/article/details/108152239