2020-06 CCF-CSP 稀疏向量 C和C++混写
前言
本次学习所用设备为微软Surface pro4
,操作系统为windows10
。
注意事项
(1)CFF-CSP考试提交一定要使用C++编译环境 。
题目
实现代码如下
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
using namespace std;
int u_index[500005];
int u_value[500005];
int v_index[500005];
int v_value[500005];
int main()
{
//完成第一行的输入
int n,a,b;
scanf("%d",&n);
scanf("%d",&a);
scanf("%d",&b);
//完成对非零向量的输入
int i;
for(i = 1;i <= a;i++)
{
scanf("%d",&u_index[i]);
scanf("%d",&u_value[i]);
}
for(i = 1;i <= b;i++)
{
scanf("%d",&v_index[i]);
scanf("%d",&v_value[i]);
}
//对两个向量的下标相等的值进行内积
long long result = 0;
i = 0;
int j = 0;
while(i<=a && j<=b) {
int z=u_index[i],w=v_index[j];
if(z == w) {
result += u_value[i]*v_value[j];
i++;j++;
}
if(z > w) j++;
if(z < w) i++;
}
//输出结果
printf("%lld",result);
return 0;
}