#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=(b);++i)
#define per(i,a,b) for(int i=a;i>=(b);--i)
#define mem(a,x) memset(a,x,sizeof(a))
#define pb push_back
#define pii pair<int,int>
#define mk make_pair
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
inline ll read()
{
	ll x=0,w=1; char c=getchar();
	while(c<'0'||c>'9') {if(c=='-') w=-1; c=getchar();}
	while(c<='9'&&c>='0') {x=(x<<1)+(x<<3)+c-'0'; c=getchar();}
	return w==1?x:-x;
}
void solve()
{

}
int main()
{
	//ios::sync_with_stdio(false);
    //freopen("input.txt", "r", stdin);
	//freopen("output.txt", "w", stdout);
	int _;cin>>_;while(_--)
	solve();
}
#include<bits/stdc++.h>
#define rep(i,a,b) for(int i=a;i<=(b);++i)
#define per(i,a,b) for(int i=a;i>=(b);--i)
#define mem(a,x) memset(a,x,sizeof(a))
#define pb emplace_back
#define pii pair<int,int>
#define mk make_pair
using namespace std;
typedef long long ll;
ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
inline ll read()
{
	ll x=0,w=1; char c=getchar();
	while(c<'0'||c>'9') {if(c=='-') w=-1; c=getchar();}
	while(c<='9'&&c>='0') {x=(x<<1)+(x<<3)+c-'0'; c=getchar();}
	return w==1?x:-x;
}
int main()
{
    vector<int>G;
    G.emplace_back(1);
}

gcd和快速幂:

ll gcd(ll a,ll b) { return b?gcd(b,a%b):a;}
ll powmod(ll a,ll b) {ll res=1;a%=mod; 
assert(b>=0); for(;b;b>>=1){if(b&1)res=res*a%mod;a=a*a%mod;}return res;}
ll input(){
    ll x=0,f=0;char ch=getchar();
    while(ch<'0'||ch>'9') f|=ch=='-',ch=getchar();
    while(ch>='0'&&ch<='9') x=x*10+ch-'0',ch=getchar();
    return f? -x:x;
}

快速乘+快速幂,可以防止在快速幂中爆long long

#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
const ll mod=1e9+7;
ll powmul(ll x,ll y)
{
    ll ans=0;
    for(;y;y>>=1)
    {
        if(y%2ll) ans=(ans+x%mod)%mod;
        x=(x%mod+x%mod)%mod;
    }
    return ans;
}
ll powmod(ll a,ll b) {
	ll res=1;
	a%=mod; 
	for(;b;b>>=1)
	{
	 	if(b&1) res=powmul(res,a);
		a=powmul(a,a);
	}
	return res;
}

int main()
{
    printf("%lld\n",powmod(3,4));
}

经典头文件定义:

结构体定义排序的方法:


/*
下面这样重载,若用sort对结构体排序,则是按照w从大到小排序
若用优先队列,则是w小的在top位置
*/
struct node
{
	int u,w;
	node(int a,int b){u=a,w=b;}
	bool operator<(const node &t)const
	{
		return t.w<w;//sort从大到小,优先队列小的在top位置
	}
};
/*  
    下面这种是调用sort用cmp
*/
bool cmp(node a,node b)
{
    return a.w<b.w;//从小到大
    return b.w<a.w;//从大到小
}
typedef struct node
{
	int p,w;
	node (int a,int b){p=a;w=b;}
	friend bool operator <(node a,node b)
	{
		if(a.w!=b.w) return a.w<b.w;
		return a.p>b.p;
	}
};