宜信 银行坏账AC代码

#include<iostream>
#include<string>
#include<vector>
#include<queue>
#include<unordered_map>
#include<unordered_set>
#include<algorithm>
#include<queue>
#include<string>

using namespace std;
const int  mo = 100003;
//N^w-N(N-1)^(w-1)
long long int mi(long long int a,long long int b)
{  long long int ans = 1;  a %= mo;  while (b)  {  if (b & 1) ans = (ans*a)%mo;  b >>= 1;  a = (a*a)%mo;  }  return ans%mo;
}
int main() {  long long int n, w;  cin >> n >> w;  long long int tmp = mi(n, w) - n*mi(n - 1, w - 1);  while (tmp < 0)  tmp += mo;  cout << tmp<< endl;  return 0;
}

这题三个点:
1.必须用long long,否则输入就有可能溢出
2.要用快速幂去算指数
3.最后输出的时候要考虑到负数的情况
全部评论
大佬666
点赞 回复 分享
发布于 2017-09-28 21:52
大佬又来秀了,鶸在角落射射发蚪
点赞 回复 分享
发布于 2017-09-28 22:14
同方法,但是只过80%,不知道哪块出问题~可能是tmp为负没考虑
点赞 回复 分享
发布于 2017-09-28 22:21
666 啊
点赞 回复 分享
发布于 2017-09-28 22:33
北大的就是牛逼,我就想不出来
点赞 回复 分享
发布于 2017-09-28 23:25
我想起来的状态数是这么多N^w-N(N-1)^(w-1),2 2的时候是对的,但是结果没跑出来一个,用的int,求大佬指点
点赞 回复 分享
发布于 2017-09-28 23:28
import sys num = map(int,sys.stdin.readline().strip().split(' ')) n = num[0] w = num[1] n = n%100003 w = w%100002 print (n**w-(n*((n-1)**(w-1))))%100003 贴个python的,考虑到100003这个数是素数,可以用欧拉定理化简
点赞 回复 分享
发布于 2017-09-29 08:13
大神请收下我的膝盖
点赞 回复 分享
发布于 2018-07-08 16:56
为啥一个题java一个题c++然后自动把java保存到c++里了 完了
点赞 回复 分享
发布于 2018-09-08 18:17
牛逼
点赞 回复 分享
发布于 2018-10-08 17:59

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务