第一题可以找规律或者简单dp
#include<iostream>
using namespace std;
const int m = 1000000007;
int main()
{
int T;
cin>>T;
while(T--){
int n;
cin>>n;
//找规律,下一行承接上一行,之后是一样的
if(n == 1){
cout<<"12"<<endl;
continue;
}
long long int n1 = 6, n2 = 6;
for(int i = 1; i < n; i ++) {
long long int a1 = n1 * 3 + n2 * 2;
n2 = n1 * 2 + n2 * 2;
n1 = a1;
n1 %= m;
n2 %= m;
}
long long int ret = ((n1 + n2) % m);
cout<<ret<<endl;
}
}
第二题是图论,将铁路线看成点建图,然后最短路径算法,因为时间问题最短路径算法没写全就不贴代码了