这题目看一眼以为难度评级出错了,只是一个求余数的题目,,后来才发现,位数小于百万位,,,我还以为是大小小于百万呢,所以借鉴了另一大神的代码, 用大数,重点是同余定理: (a+b)mod m=((a mod m)+(b mod m))mod m; a*b mod m=(a mod m)*(b mod m) mod m; a^b mod m=(a mod m)^b mod m; #include<stdio.h> #include<string.h> #include<stdli…
#include <cstdio> #include <iostream> #include <cstring> #include <queue> #include <vector> using namespace std; #define INF 0x7fffffff struct edge { int t; long long d; }; vector<edge> g[20005]; int n, m, p, q; void Sp…