結果
| 問題 | 
                            No.1800 Random XOR
                             | 
                    
| コンテスト | |
| ユーザー | 
                             penguinman
                         | 
                    
| 提出日時 | 2021-12-18 16:15:39 | 
| 言語 | C++17  (gcc 13.3.0 + boost 1.87.0)  | 
                    
| 結果 | 
                             
                                AC
                                 
                             
                            
                         | 
                    
| 実行時間 | 3 ms / 2,000 ms | 
| コード長 | 1,310 bytes | 
| コンパイル時間 | 2,187 ms | 
| コンパイル使用メモリ | 193,920 KB | 
| 最終ジャッジ日時 | 2025-01-27 03:19:32 | 
| 
                            ジャッジサーバーID (参考情報)  | 
                        judge5 / judge1 | 
(要ログイン)
| ファイルパターン | 結果 | 
|---|---|
| sample | AC * 2 | 
| other | AC * 14 | 
ソースコード
#include<bits/stdc++.h>
//using namespace std;
#pragma GCC target("avx2")
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
#define rep(i, j, n) for(ll i = ll(j); i < ll(n); i++)
#define REP(i, j, n) for(ll i = ll(j); i <= ll(n); i++)
#define per(i, j, n) for(ll i = ll(j); ll(n) <= i; i--)
#define ALL(a) (a).begin(),(a).end()
#define revALL(a) (a).rbegin(),(a).rend()
#define pb push_back
#define mp std::make_pair
#define mtp std::make_tuple
#define ln "\n"
using std::endl;
using std::cin;
using std::cout;
#define ll long long
using std::vector;
using std::string;
using std::upper_bound;
using std::lower_bound;
const ll MOD = int(1e9+7);
const ll MAX = 1e6+10;
const ll inf = (1ll << 60);
//modpow
ll modpow(ll X, ll Y, ll mod){
    ll ret = 1;
    while(Y){
        if(Y & 1){
            ret *= X;
            ret %= mod;
        }
        X *= X;
        X %= mod;
        Y >>= 1;
    }
    return ret % mod;
}
//main
int main(){
    std::ios::sync_with_stdio(false);
    std::cin.tie(nullptr);
    std::cout.tie(nullptr);
    cout << std::fixed << std::setprecision(15);
    ll N,M; cin >> N >> M;
    ll ans = modpow(2,M,MOD)-1;
    ans *= modpow(2,MOD-2,MOD);
    ans %= MOD;
    cout << ans << ln;
}
            
            
            
        
            
penguinman