zoukankan      html  css  js  c++  java
  • 分元宵_快速幂(坑多)

    链接:https://ac.nowcoder.com/acm/problem/15187
    来源:牛客网

    题目描述
    毕竟是元宵节,晚上还是要吃几个元宵。 Etéreo 家可是个大家庭,元宵的数量,甚至是餐具的数量,都多的惊人。现在,爱数学的 Etéreo 又来问你有趣的数学题了,快来秒掉它! Etéreo 家里有ς 种元宵馅, ϑ 种元宵皮,每个元宵可以选择任意一种元宵馅和任意一种元宵皮。同时有 ϖ 张桌子,每张桌子上放了 ϱ 只碗,每只碗能放一只元宵。每只碗都要装一只元宵。Etéreo 会告诉你
    ς,ϑ,ϖ,ϱ 的值,想请问你有多少种装元宵的方式。答案对 Λ 取模。

    两种方式被认为是不同的当且仅当至少有一只碗存在于两种方式的同一个位置但是里面有至少一个元宵不同。
    两个元宵被认为是不同的当且仅当元宵馅不同或者元宵皮不同。
    碗和桌子都是有编号的,但是你不能改变碗或桌子的编号。
    你可以认为碗和桌子都是固定的,你只能改变元宵的种类和位置。

    输入描述:
    输入共一行,五个整数

    ς,ϑ,ϖ,ϱ,Λ ,意义同题目描述。
    输出描述:
    每行一个整数,表示答案。

    输入

        1 2 1 3 998244353
    

    输出

        8
    

    备注:

    0≤ς,ϑ≤1018 
    0≤ϖ,ϱ≤106 
    1≤Λ≤1,000,000,007
    

    坑点:
    1.当a,b,c,d==0时需要特判
    2.

    #include<iostream>
    #include<vector>
    #include<string>
    using namespace std;
    #define ll  long long 
    #define Mod 1000000007
    
    
    ll pow(ll a, ll b,ll mod) {
    	ll ans = 1;
    	while (b) {
    		if (b % 2 == 1)ans = (ans*a) % mod;
    		a = (a*a) % mod;
    		b = b / 2;
    	}
    	return ans;
    }
    
    int main()
    {
    	ll a, b, c, d, MOD, ans = 0;
    	cin >> a >> b >> c >> d >> MOD;
    	if (a == 0 || b == 0 || c == 0 || d == 0)
    		cout << 0 << endl;
    	else {
    		ans = pow(((a%MOD)*(b%MOD)) % MOD, c*d, MOD);
    		cout << ans << endl;
    	}
    
    	return 0;
    }
    
  • 相关阅读:
    Java多态
    24系列EEPROM应用注意事项
    EEPROM读写问题
    EEPROM读写操作常见的陷阱
    MPLAB X IDE使用心得
    PIC18系列单片机I/O端口操作寄存器及应用
    IAR使用printf()函数 打印输出
    0欧电阻作用
    IAR MSP430设置合理堆栈大小(the stack pointer for stack is outside the stack range)
    MSP430教程14:MSP430单片机ADC12模块
  • 原文地址:https://www.cnblogs.com/gidear/p/11773642.html
Copyright © 2011-2022 走看看