14 条题解

  • 2
    @ 2025-5-11 9:42:17
    #include<bits/stdc++.h>
    using namespace std;
    int main(){
        long long a,b,p,res=1;
        scanf("%ld%ld%ld",&a,&b,&p);
        while(b!=0){
            if(b&1){
                res=res*a%p;
            }
            a=a*a%p;
            b>>=1;
        }
        printf("%ld\n",res%p);
        return 0;
    }
    
    
    • 2
      @ 2025-5-10 9:52:48

      分治

      #include<bits/stdc++.h>
      using namespace std;
      const int N=1e5+5,INF=0x3f3f3f3f;
      typedef long long LL;
      typedef unsigned long long ULL;
      ULL a,b,p; 
      ULL f(ULL a,ULL b){
      	if(b==0)return 1%p;
      	if(b==1)return a%p;
      	if(b&1)return a*f(a*a%p,b/2)%p;
      	return f(a*a%p,b/2)%p;
      }
      int main()
      {
      	cin>>a>>b>>p;
      	cout<<f(a,b)%p;
      	return 0;
      }
      
      • @ 2025-5-11 15:15:25

        666,盐都不盐了,直接把张老师教的代码搬过来了

    • 1
      @ 2025-5-10 9:55:22

      `#include<bits/stdc++.h> using namespace std; const int N=1e5+5,INF=0x3f3f3f3f; typedef long long LL; typedef unsigned long long ULL; ULL a,b,p; ULL f(ULL a,ULL b){ if(b0)return 1%p; if(b1)return a%p; if(b&1)return af(aa%p,b/2)%p; return f(a*a%p,b/2)%p; } int main() { cin>>a>>b>>p; cout<<f(a,b)%p; return 0; }

      
      

      `

      • 1
        @ 2025-5-10 9:32:02
        #include<bits/stdc++.h>
        using namespace std;
        long long a, b,c ,p,ans=1,cnt;
        int main(){
        	cin>>a>>b>>p;
        	cnt=a;
        	while(b!=c){
        		if(b%2==1){
        		ans=ans*cnt%p;
        		}
        		cnt=cnt*cnt%p;
        		b/=2;
        	}
        	cout<<ans%p;
        	return 0;
        }
        //迪奥代码
        
        
        • 1
          @ 2025-3-5 17:31:30

          快速幂模版

          #include<bits/stdc++.h>
          using namespace std;
          const int N=1e5+5,INF=0x3f3f3f3f;
          typedef long long LL;
          LL a,b,p; 
          LL power(){
          	LL ans=1;
          	while(b){
          		if(b&1)ans = ans*a%p;
          		b>>=1;
          		a = a*a%p;
          	}
          	return ans%p;
          }
          int main()
          {
          	cin>>a>>b>>p;
          	cout<<power();
          	return 0;
          }
          
          
        • 0
          @ 2025-5-10 9:30:28
          #include<bits/stdc++.h>
          using namespace std;
          const int N=1e5+5,INF=0x3f3f3f3f;
          typedef long long LL;
          LL a,b,p; 
          LL power(){
          	LL ans=1;
          	while(b){
          		if(b&1)ans = ans*a%p;
          		a = a*a%p,b>>=1;
          	}
          	return ans%p;
          }
          int main()
          {
          	cin>>a>>b>>p;
          	cout<<power();
          	return 0;
          }
          
          
          • 0
            @ 2025-5-10 9:30:03
            #include<bits/stdc++.h>
            using namespace std;
            #define LL long long
            const int N = 1e5 + 10;
            const int INF = 0x3f3f3f3f;
            long long power( long long n , long long m , long long p )
            {
            	if ( n == 0 )
            	{
            		return 0;
            	}
            	long long ans = 1;
            	while ( m )
            	{
            		if ( m & 1 )
            		{
            			ans = ( ans * n ) % p;
            		}
            		m >>= 1;
            		n = ( n * n ) % p;
            	}
            	return ans % p;
            }
            int main()
            {
            	long long n , m , p;
            	cin >> n >> m >> p;
            	cout << power( n , m , p );
            	return 0;
            }
            //菜鸟驿站
            //老六专属
            • 0
              @ 2025-5-10 9:29:31
              #include<bits/stdc++.h>
              using namespace std;
              #define LL long long
              const int N = 1e5 + 10;
              const int INF = 0x3f3f3f3f;
              long long power( long long n , long long m , long long p )
              {
              	if ( n == 0 )
              	{
              		return 0;
              	}
              	long long ans = 1;
              	while ( m )
              	{
              		if ( m & 1 )
              		{
              			ans = ( ans * n ) % p;
              		}
              		m >>= 1;
              		n = ( n * n ) % p;
              	}
              	return ans % p;
              }
              int main()
              {
              	long long n , m , p;
              	cin >> n >> m >> p;
              	cout << power( n , m , p );
              	return 0;
              }
              //菜鸟驿站
              //老六专属
              • 0
                @ 2025-4-21 20:21:14
                
                cpp
                ```
                
                #include <bits/stdc++.h>
                using namespace std;
                #define LL long long
                const int N = 1e5 + 10;
                const int INF = 0x3f3f3f3f;
                long long power( long long n , long long m , long long p )
                {
                	if ( n == 0 )
                	{
                		return 0;
                	}
                	long long ans = 1;
                	while ( m )
                	{
                		if ( m & 1 )
                		{
                			ans = ( ans * n ) % p;
                		}
                		m >>= 1;
                		n = ( n * n ) % p;
                	}
                	return ans % p;
                }
                int main()
                {
                	long long n , m , p;
                	cin >> n >> m >> p;
                	cout << power( n , m , p );
                	return 0;
                }
                //菜鸟驿站
                //老六专属
                ```
                • -1
                  @ 2025-5-10 9:30:35

                  #include #include

                  include

                  #include #include #include #include const int N=1e2+10; const int INF =0x3f3f3f3f; using namespace std; unsigned long long a,b,p; int power(int a,int b,int p){ long long ans=1; long long wq=a; while(b){ if(b&1){ ans=ans*wq%p;

                  	}
                  	b>>=1;
                  	wq=wq*wq%p;
                  
                  }
                  return ans %p;
                  

                  } int main(){ cin>>a>>b>>p; cout<<power(a,b,p); }

                  • -1
                    @ 2025-1-25 11:33:34
                    ```
                    #include<iostream>
                    using namespace std;
                    
                    int main()
                    {
                        long long a, b, p, res = 1;
                        scanf ("% ld % ld % ld", &a, &b, &p);
                        while (b != 0)
                       {
                            if (b & 1)
                            {
                                res = res * a % p;
                            }
                            a = a * a % p;
                            b >>= 1;
                        }
                        printf ("% ld \ n", res % p);
                        return 0;
                    }
                    ```
                    
                    • -1
                      @ 2024-11-19 20:21:06
                      #include<bits/stdc++.h>
                      using namespace std;
                      int main(){
                          long long a,b,p,res=1;
                          scanf("%ld%ld%ld",&a,&b,&p);
                          while(b!=0){
                              if(b&1){
                                  res=res*a%p;
                              }
                              a=a*a%p;
                              b>>=1;
                          }
                          printf("%ld\n",res%p);
                          return 0;
                      }
                      
                      • -3
                        @ 2024-10-17 21:24:34

                        知识点:快速幂

                        /*
                        int      %o/%lo(八进制) %d/%i/%ld/%li(十进制) %x/%lx(十六进制)[如标名为o/lo/d/i/lo/li/x/lx即输出为八进制/十进制/十六进制]
                        longlong %lld
                        float    %f/%e
                        double   %lf/%le
                        char     %c
                        char[]   %s
                        'a'=97
                        'z'=122
                        'A'=65
                        'Z'=90
                        '0'=48
                        '9'=57
                        */
                        #include <iostream>
                        #include <iomanip>
                        #include <cmath>
                        #include <cstdio>
                        #include <cstring>
                        #include <algorithm>
                        #include <ctime>
                        #include <limits>
                        #include <assert.h>
                        #include <stdlib.h>
                        using namespace std;
                        #define LL long long
                        #define ull unsigned long long
                        const int N=1e5+10;
                        const int INF=0x3f3f3f3f;
                        const double pi=3.1416;
                        LL a,b,p;
                        long long power(long long a,long long b,long long p){
                        	long long ans=1;
                        	long long wp=a;
                        	while(b){
                        		if(b&1){
                        			ans=ans*wp%p;
                        		}
                        		b>>=1;
                        		wp=wp*wp%p;
                        	}
                        	return ans%p;
                        }
                        int main(){
                        	cin>>a>>b>>p;
                        	cout<<power(a,b,p)<<endl;
                        return 0;
                        }
                        
                      • -4
                        @ 2023-4-23 20:48:48
                        /*****************************************
                        备注:数学nanhai 5 
                        ******************************************/
                        #include <queue>
                        #include <math.h>
                        #include <stack>
                        #include <stdio.h>
                        #include <iostream>
                        #include <vector>
                        #include <iomanip>
                        #include <string.h>
                        #include <algorithm>
                        using namespace std;
                        #define LL long long
                        const int N = 1e5 + 10;
                        const int INF = 0x3f3f3f3f;
                        LL power(LL n , LL m , LL p)
                        {
                        	if(n == 0)
                        		return 0;
                        	LL ans = 1;
                        	while(m)
                        	{
                        		if(m&1)
                        			ans = (ans * n) %p;
                        		m >>= 1;
                        		n = (n*n)%p;
                        	}
                        	return ans%p;
                        }
                        int main()
                        {
                        	LL n , m , p;
                        	cin >> n >> m >> p;
                        	cout << power(n , m , p);
                        	return 0;
                        }
                        
                        • 1

                        信息

                        ID
                        2
                        时间
                        1000ms
                        内存
                        128MiB
                        难度
                        8
                        标签
                        递交数
                        3219
                        已通过
                        490
                        上传者