202006-2@TOC
题目:
二、使用步骤
1.引入库
代码如下(示例):
#include <iostream>
using namespace std;
//const int max_ = 5*100000+5;
struct Node{
long long index;
long long value;
};
//Node u[max_], v[max_];
int main(){
int n, a, b;
long long sum = 0;
cin >> n >> a >> b;
//Node u[max_], v[max_];
Node* u = new Node[a];
Node* v = new Node[b];
for(int i = 0; i < a; i++){
cin >> u[i].index >> u[i].value;
}
for(int i = 0; i < b; i++){
cin >> v[i].index >> v[i].value;
}
int i = 0;
int j = 0;
while(i < a && j < b){
if(u[i].index == v[j].index){
sum += u[i].value * v[j].value;
i++;
j++;
}
else if(u[i].index < v[j].index){
i++;
}
else{
j++;
}
}
cout << sum;
delete[] u;
delete[] v;
return 0;
}
总结
在做此题学习(复习)到的内容:
- 全局变量可以开的数组更大一些,在mian函数里开的数组过大会导致程序异常结束。
- 由于数据量过大,此题不能简单的用两层for语句循环来解答,会导致超时(事实证明,到第四个测试点10的五次幂的时候就已经不能在继续下去了)