UESTCOJ1521 passing the ball【数学公式法】

UESTCOJ1521 passing the ball
UESTCOJ1521 passing the ball【数学公式法】_第1张图片
注意到结果的最大值不超过 2 31 2^{31} 231,即是在 i n t int int范围内,不用开 l o n g l o n g . long long. longlong.
这里记录的是用数学公式法直接输出结果(其他具体实现方法再更新博客写…
a n s = ( i n t ) [ ( i n t ) ( N − 1 ) M + ( i n t ) ( − 1 ) M ( N − 1 ) ] / N . ans=(int)[(int)(N-1)^M+(int)(-1)^M(N-1)]/N. ans=(int)[(int)(N1)M+(int)(1)M(N1)]/N.

#include
using namespace std;
int main()
{
    int N,M,x;
	cin>>N>>M;
    x=(int)pow(N-1,M)+(int)pow(-1,M)*(N-1);
    printf("%d",x/N);
    return 0;
}

数据测试

6 1
0
2 8
1
9 15
238609293

提示
题目没有说明数据组数时,用文件结束符较好

while(scanf("%d %d",&N,&M)==1){
	...
}

while(scanf("%d %d",&N,&M)!=EOF){
	...
}

你可能感兴趣的:(数学方法)