#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;
}
};