Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include <iostream>//数据输入输出流#include <limits.h>#include <cstring>//字符串操作函数#include <cstdio>//C的输入输出#include <cstdlib>//定义杂项函数及内存分配函数#include <cmath>//C中的数学函数#include <string>//c++中的string类 他不能用strcpy等c函数去操作#include <vector>//STL vetor#include <list>//STL list#include <map>// STL map#include <queue>// STL queue#include <stack>//sTL stack#include <bitset>//bitset可按位定义串#include <set>//比如:bitset <1000> all;定义一个1000位的串#include <algorithm>//STL各种算法 比如 swap sort merge max min 比较#include <numeric>//常用数字操作 一般和algorithm搭配使用#include <functional>//STL定义运算函数(代替运算符)using namespace std;typedef long long LL;typedef unsigned long long ULL;typedef vector<int> VI;typedef pair<int,int> PII;#define fi first#define se second#define LOCAL#define zeros(a,n) memset(a,0,(n)*sizeof(a[0]))const int modn = 1e9+7;int mod(int x) { return x<0?x+modn:x<modn?x:x-modn; }//inv [ i ] = (modn - modn/i)*inv[ modn%i ] %modn;