题目
提示:1000000007是素数
大致考点(个人认为)
1.素数的mod运算:因为mod的是一个大素数,所以必须运算一次进行一次mod运算,而且要用long long的数组,不然可能会超界。
2.分块打表的思想:提前在计算机计算好一部分的值,例如:提前计算好N mod1000000 = 0的值的数据,然后运算时直接取出对于的值开始运算,如:N = 2000001的时候,就取出2000000的值接着运算,减少运算量。
3.输入若干意思是输入完毕的时候,有Ctrl+Z来说明已经输入完毕了,改为文件输入流的时候,读到文件末尾也有一个end of file来说明已经读取完毕,所以用cin.eof(C可以用 scanf("%d",&n)!=eof 来判断是否已经输入完毕 )
代码
#include <iostream>
#include <string>
using namespace std;
int a[10000000];
int main()
{
long long answer_biao[21] &