結果
問題 | No.1844 Divisors Sum Sum |
ユーザー |
![]() |
提出日時 | 2022-02-21 21:43:29 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 122 ms / 3,000 ms |
コード長 | 1,185 bytes |
コンパイル時間 | 2,307 ms |
コンパイル使用メモリ | 190,620 KB |
最終ジャッジ日時 | 2025-01-28 01:17:31 |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 38 |
ソースコード
#include <bits/stdc++.h> #include <iostream> #include <iomanip> #include <fstream> #include <algorithm> #include <vector> #include <map> #include <unordered_map> #include <set> #include <queue> #include <stack> #include <chrono> #include <random> using namespace std; #define pb push_back #define mp make_pair #define INF ll(1e18) #define mod 998244353 #define mod2 1000000007 #define eps 1e-9 #define abs(x) ((x)>=0?(x):-(x)) #define y1 solai #define fi first #define se second typedef long long ll; typedef long double ld; typedef pair<ll,ll> pll; typedef pair<double,double> pdd; const ll N=200100; ll n,a,b,ans=1,x,y; ll bin(ll a, ll n) { ll ans=1; while(n) { if(n&1) ans*=a,ans%=mod2; a*=a,a%=mod2; n/=2; } return ans; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cin>>n; for(ll i=1;i<=n;i++) { cin>>a>>b; x=bin(a,b+2)-a*b+b-2*a+1; x=(x%mod2+mod2)%mod2; y=(a-1)*(a-1)%mod2; ans*=x*bin(y,mod2-2)%mod2; ans%=mod2; } cout<<ans; } /* 10 914260891 350096548 887686339 192497607 786328273 878092875 735623069 355760739 129154631 798229587 427094807 82130028 520933789 204087959 641996039 29097051 278883373 321445979 447005677 226153917 */