题面链接
https://ac.nowcoder.com/acm/contest/23106/I
题面
需要注意取模问题,稍不注意就溢出了
代码#include using namespace std; //----------------自定义部分---------------- #define ll long long #define mod 1000000007 #define endl "\n" #define PII pair<int,int> int dx[4]={0,-1,0,1},dy[4]={-1,0,1,0}; ll ksm(ll a,ll b) { ll ans = 1; for(;b;b>>=1LL) { if(b & 1) ans = ans * a % mod; a = a * a % mod; } return ans; } ll inv(ll x){ return ksm(x,mod-2); } ll lowbit(ll x){return -x & x;} const int N = 2e6+10; //----------------自定义部分---------------- ll t,n,m,q,a[N]; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); std::cout.tie(nullptr); int t; cin>>t; while(t--){ cin>>n>>m; ll k = ksm(2,n); cout<<(((m*((k-2+mod)%mod))%mod)*inv(k))%mod<<endl; } return 0; }