zoukankan      html  css  js  c++  java
  • UVa 10692 Huge Mods

    方法:数论

    其实不是很明白,为什么这个公式可行

    a^b % m = a^(b%phi[m] + phi[m]) % m

    code:

      1 #include <cstdio>
      2 #include <cstring>
      3 #include <algorithm>
      4 #include <iostream>
      5 #include <string>
      6 #include <vector>
      7 #include <stack>
      8 #include <bitset>
      9 #include <cstdlib>
     10 #include <cmath>
     11 #include <set>
     12 #include <list>
     13 #include <deque>
     14 #include <map>
     15 #include <queue>
     16 #include <fstream>
     17 #include <cassert>
     18 #include <unordered_map>
     19 #include <unordered_set>
     20 #include <cmath>
     21 #include <sstream>
     22 #include <time.h>
     23 #include <complex>
     24 #include <iomanip>
     25 #define Max(a,b) ((a)>(b)?(a):(b))
     26 #define Min(a,b) ((a)<(b)?(a):(b))
     27 #define FOR(a,b,c) for (ll (a)=(b);(a)<(c);++(a))
     28 #define FORN(a,b,c) for (ll (a)=(b);(a)<=(c);++(a))
     29 #define DFOR(a,b,c) for (ll (a)=(b);(a)>=(c);--(a))
     30 #define FORSQ(a,b,c) for (ll (a)=(b);(a)*(a)<=(c);++(a))
     31 #define FORC(a,b,c) for (char (a)=(b);(a)<=(c);++(a))
     32 #define FOREACH(a,b) for (auto &(a) : (b))
     33 #define rep(i,n) FOR(i,0,n)
     34 #define repn(i,n) FORN(i,1,n)
     35 #define drep(i,n) DFOR(i,n-1,0)
     36 #define drepn(i,n) DFOR(i,n,1)
     37 #define MAX(a,b) a = Max(a,b)
     38 #define MIN(a,b) a = Min(a,b)
     39 #define SQR(x) ((LL)(x) * (x))
     40 #define Reset(a,b) memset(a,b,sizeof(a))
     41 #define fi first
     42 #define se second
     43 #define mp make_pair
     44 #define pb push_back
     45 #define all(v) v.begin(),v.end()
     46 #define ALLA(arr,sz) arr,arr+sz
     47 #define SIZE(v) (int)v.size()
     48 #define SORT(v) sort(all(v))
     49 #define REVERSE(v) reverse(ALL(v))
     50 #define SORTA(arr,sz) sort(ALLA(arr,sz))
     51 #define REVERSEA(arr,sz) reverse(ALLA(arr,sz))
     52 #define PERMUTE next_permutation
     53 #define TC(t) while(t--)
     54 #define forever for(;;)
     55 #define PINF 1000000000000
     56 #define newline '
    '
     57 
     58 #define test if(1)if(0)cerr
     59 using namespace std;
     60 using namespace std;
     61 typedef vector<int> vi;
     62 typedef vector<vi> vvi;
     63 typedef pair<int,int> ii;
     64 typedef pair<double,double> dd;
     65 typedef pair<char,char> cc;
     66 typedef vector<ii> vii;
     67 typedef long long ll;
     68 typedef unsigned long long ull;
     69 typedef pair<ll, ll> l4;
     70 const double pi = acos(-1.0);
     71 
     72 int phi(int n)
     73 {
     74     int ret = n;
     75     for (int i = 2; i * i <= n; ++i)
     76     {
     77         if (n % i) continue;
     78         ret -= ret/i;
     79         while (n % i == 0) n /= i;
     80     }
     81     if (n != 1)
     82         ret -= ret/n;
     83     return ret;
     84 }
     85 int m, n;
     86 int a[10];
     87 ll pow_mod(ll base, ll p, ll mod)
     88 {
     89     if (!base) return 0;
     90     ll ret = 1;
     91     while (p)
     92     {
     93         if (p & 1) ret = ret * base % mod;
     94         p >>= 1;
     95         base = base * base % mod;
     96     }
     97     return ret;
     98 }
     99 int dfs(int cur, int mod)
    100 {
    101     if (cur == n-1) return a[cur] % mod;
    102     int ph = phi(mod);
    103     return pow_mod(a[cur], dfs(cur+1, ph)%ph + ph, mod);
    104 }
    105 int main()
    106 {
    107     int kase = 0;
    108     while (cin >> m >> n)
    109     {
    110         rep(i, n) cin >> a[i];
    111         cout << "Case #" << ++kase << ": " << dfs(0, m) << newline;
    112     }
    113 }
    114 /*
    115  10 4 2 3 4 5
    116  100 2 5 2
    117  53 3 2 3 2
    118  #
    119 */
    View Code
  • 相关阅读:
    unsupported jsonb version number 123
    如何在MPlayer上支持RTSP
    TDengine 时序数据库的 ADO.Net Core 提供程序 Maikebing.EntityFrameworkCore.Taos
    如何使用IoTSharp对接ModBus?
    如何从源码启动和编译IoTSharp
    Asp.Net Core 自动适应Windows服务、Linux服务、手动启动时的内容路径的扩展方法
    MQTTnet 的Asp.Net Core 认证事件的扩展
    Asp.Net Core 中利用QuartzHostedService 实现 Quartz 注入依赖 (DI)
    The remote certificate is invalid according to the validation procedure 远程证书验证无效
    settings插拔式源码
  • 原文地址:https://www.cnblogs.com/skyette/p/6359812.html
Copyright © 2011-2022 走看看