Saturday, 29 July 2017

Lightoj 1102 - Problem Makes Problem

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. #define M 1000000007
  5. #define N 2000006
  6. ll fact[N];
  7. ll bigmod(ll p, ll q){
  8.     if(== 1) return p%M;
  9.     if(q%2 == 0){
  10.         ll a = bigmod(p, q/2);
  11.         return ((a%M)*(a%M))%M;
  12.     }
  13.     else {ll a = bigmod(p, q-1);return (a*p)%M;}
  14. }
  15. void pre(){
  16.     fact[0] = 1;
  17.     for(int i = 1; i <N; i++) fact[i] = (i*(fact[i-1]%M))%M;
  18. }
  19. int main(){
  20.     pre();
  21.     int ts;
  22.     scanf("%d"&ts);
  23.     for(int k = 1; k <= ts; k++){
  24.         int n, r;
  25.         scanf("%d%d"&n, &r);
  26.         ll s = bigmod((fact[n]*fact[r-1])%M,M-2)%M;
  27.         ll p = (fact[n+r-1]*s)%M;
  28.         printf("Case %d: %lld\n", k,p);
  29.     }
  30.     return 0;
  31. }
  32.  
  33. /*
  34.  
  35. using namespace std;
  36. #include <bits/stdc++.h>
  37.  
  38. const long long mod = 1000000007ll;
  39. const int mn = 2000002;
  40. long long fact[mn];
  41.  
  42. long long mod_pow(long long b, long long e, long long m) {
  43.   long long ans = 1;
  44.   while (e > 0) {
  45.     if (e & 1)
  46.       ans = (ans * b) % m;
  47.     b = (b * b) % m;
  48.     e >>= 1;
  49.   }
  50.   return ans;
  51. }
  52.  
  53. void solve() {
  54.   long long n, k;
  55.   cin >> n >> k;
  56.   long long num = fact[n + k - 1];
  57.   long long den = (fact[n] * fact[k - 1]) % mod;
  58.   printf("%lld\n", (num * mod_pow(den, mod - 2, mod)) % mod);
  59. }
  60.  
  61.  
  62. int main() {
  63.   ios_base::sync_with_stdio(false);
  64.   cin.tie(NULL);
  65.   fact[0] = 1;
  66.   for (int i = 1; i < mn; ++i) {
  67.     fact[i] = (i * fact[i - 1]) % mod;
  68.   }
  69.   int tc;
  70.   cin >> tc;
  71.   for (int i = 0; i < tc; ++i) {
  72.     printf("Case %d: ", i + 1);
  73.     solve();
  74.   }
  75.   return 0;
  76. }
  77.  
  78. */

No comments:

Post a Comment

Most Featured Post

Lightoj 1159 - Batman

http://lightoj.com/volume_showproblem.php?problem=1159 problem analysis: First i thought of this as if s1, s2 and s3 are those three str...