本文共 885 字,大约阅读时间需要 2 分钟。
这道题其实很简单,直接暴力就行了,但是一定要注意数据的范围,第一次直接int,就导致了60分,第二次改了就100了。
题目那么长那么多,就很烦,那么我们直接看向量内积就行了,因为是稀疏向量,那些是0的就可以直接不管它了,因为0乘以任何数也是0 那么我们针对u·v,先输入向量u,把和u对应的v在同一个位置上不为0的数乘起来
10 3 44 57 -310 11 104 205 307 40
输出
-20
#includeusing namespace std;struct locat{ int x,y;};locat l1[500001];locat l2[500001];int main(){ int n,a,b;//维度,u,v,坐标 cin>>n>>a>>b; for(int i=0;i >l1[i].x>>l1[i].y; int sum=0,j=0; for(int i=0;i >l2[i].x>>l2[i].y; while(j l1[j].x) j++; if(j
#include#define ll long longusing namespace std;struct locat{ int x,y;};locat l1[500001];locat l2[500001];int main(){ int a,b,j=0;//维度,u,v,坐标 ll n,sum=0; cin>>n>>a>>b; for(int i=0;i >l1[i].x>>l1[i].y; for(int i=0;i >l2[i].x>>l2[i].y; while(j l1[j].x) j++; if(j
转载地址:http://scwzi.baihongyu.com/