题目描述
点积在数学中,又称数量积,它是欧几里得空间的标准内积,在机器学习和人工智能中具有非常广泛的应用。
二维空间内两个向量的点积定义为向量中对应各维坐标的乘积和。例如,向量 a=(a1,a2),向量 b=(b1,b2),则向量 a 和向量 b 的点积为:a1*b1+a2*b2。
请同学们计算二维空间内两个向量的点积。
输入格式
输入数据共 2 行,第一行有两个用空格分隔的整数,表示第一个向量,第
二行有两个用空格分隔的整数,表示第二个向量。
输出格式
共 1 行一个整数,为两个向量的点积和。
输入输出样例
输入样例1:
2 4
3 5
输出样例1:
26
说明
数据范围:1 ≤ a1,a2,b1,b2 ≤ 100000
【耗时限制】1000ms 【内存限制】128MB
本来我是这么写的:
#include <bits/stdc++.h>
using namespace std;
int a[100005],b[100005];
int main(){
cin>>a[1]>>a[2]>>b[1]>>b[2];
cout<<a[1]*b[1]+a[2]*b[2];
return 0;
}
后来才知道超int范围了,应该改long long
#include <bits/stdc++.h>
using namespace std;
long long a[100005],b[100005];
int main(){
cin>>a[1]>>a[2]>>b[1]>>b[2];
cout<<a[1]*b[1]+a[2]*b[2];
return 0;
}