【找规律 && 快速幂 && 概率论】LightOJ - 1213 Fantasy of a Summation
2017-10-17 11:03
423 查看
Problem Description
输入n, k, mod,让你实现上述程序
思路:
显然暴力超时,n^k。模拟下算的过程,就会发现可以考虑每个数加了多少次,看最后一排的第一个数,加了n^(k - 1)次,每一排的第一个数加的次数是一样的,那么第一个数加了k*n^(k-1)次。所有数都加了那么多次,就是和sum*k*n^(k-1)。因为k很大所以套一个快速幂
#include <stdio.h> int cases, caseno; int n, K, MOD; int A[1001]; int main() { scanf("%d", &cases); while( cases-- ) { scanf("%d %d %d", &n, &K, &MOD); int i, i1, i2, i3, ... , iK; for( i = 0; i < n; i++ ) scanf("%d", &A[i]); int res = 0; for( i1 = 0; i1 < n; i1++ ) { for( i2 = 0; i2 < n; i2++ ) { for( i3 = 0; i3 < n; i3++ ) { ... for( iK = 0; iK < n; iK++ ) { res = ( res + A[i1] + A[i2] + ... + A[iK] ) % MOD; } ... } } } printf("Case %d: %d\n", ++caseno, res); } return 0; }
输入n, k, mod,让你实现上述程序
思路:
显然暴力超时,n^k。模拟下算的过程,就会发现可以考虑每个数加了多少次,看最后一排的第一个数,加了n^(k - 1)次,每一排的第一个数加的次数是一样的,那么第一个数加了k*n^(k-1)次。所有数都加了那么多次,就是和sum*k*n^(k-1)。因为k很大所以套一个快速幂
#include<bits/stdc++.h> using namespace std; long long Pow(long long n, long long k, long long mod)//快速幂 { long long sum = 1; while(k) { if(k&1) sum = (sum * n) % mod; n = (n*n) % mod; k >>= 1; } return sum; } int main() { int T, i, Case; long long n, k, mod; scanf("%d", &T); for(Case = 1; Case <= T; Case++) { scanf("%lld %lld %lld\n", &n, &k, &mod); long long sum = 0, num; for(i = 0; i < n; i++) { scanf("%lld", &num); sum += num; }//求和 printf("Case %d: %lld\n", Case, sum * ((k * Pow(n, k-1, mod))%mod)%mod );//输出 } return 0; }
相关文章推荐
- A - Fantasy of a Summation(打表找规律) LightOJ - 1213
- LightOJ - 1213 Fantasy of a Summation 推快速幂
- LightOJ 1213 Fantasy of a Summation(快速幂)
- Light OJ 1213 Fantasy of a Summation (快速幂+规律)
- LightOJ 1213 Fantasy of a Summation(规律 + 快数幂)
- LightOJ - 1213 Fantasy of a Summation (快速幂)
- LightOJ 1213 (Fantasy of a Summation )
- lightoj1213 - Fantasy of a Summation
- LightOJ 1213 Fantasy of a Summation
- LightOJ 1213 - Fantasy of a Summation (排列组合+快速幂)
- LightOj 1213 - Fantasy of a Summation(推公式 快速幂)
- lightOJ 1213 Fantasy of a Summation
- lightoj 1213 - Fantasy of a Summation 【数学计数】
- LightOJ 1213 Fantasy of a Summation
- LightOj 1220 Fantasy of a Summation(快速幂)
- Fantasy of a Summation n个数,k层重复遍历相加。求它的和%mod的值;推导公式+快速幂
- 【Light】[1213]Fantasy of a Summation
- Fantasy of a Summation(找规律,水)
- light oj 1213 - Fantasy of a Summation (数学计数)
- kuangbin专题十四 LightOJ1213 规律+快速幂