给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即 S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + an-2 · an-1 + an-2 · an + an-1 · an. 输入的第一行包含一个整数 n 。 第二行包含 n 个整数 a1, a…
快速幂的原理很简单,下面来看一下 2^6=2^2*2^2*2^2 其实就是通过降幂 long long qpow(int x,int y){ int res=1; while(y){ if(y&1)res=res*x; x=x*x; y>>=1; } return res; } 然后由于MOD的性质 (a*b)%p=(a%p*b…
在找源点最近的点是选择用堆,每次取出堆顶,减少每次查找最近点的时间复杂度,用内嵌for循环时间复杂度时O(n^2),而如果用堆的话,时间复杂度就是O(nlogn) 下面就把代码放出来,存图用的是链式前向星,如果对链式前向星不太熟悉,可以去看一看我之前的帖子 下面是代码: /**************************************…