LightOJ 1213 (Fantasy of a Summation )
2018-02-01 18:04
507 查看
#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;
}
题意:求那段程序的res值
题解:可以想到每个a[i]加的次数一样多,那我们算一下总次数然后平均一下,就可以得到每个数字加的次数。
可以得到总的次数为(n^k)*k,因为有n个数字,所以每个数字加了(n^(k-1))*k次
所以算一下n个数字的和,然后答案就是(n^(k-1))*k*sum
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <math.h>
using namespace std;
typedef long long ll;
ll power(ll a,ll b,ll mod)
{
ll ans=1,c=a;
while(b)
{
if(b&1)
ans=(ans*c)%mod;
c=(c*c)%mod;
b=b/2;
}
return ans;
}
ll a[1005];
int main()
{
ll n,m;
int t,cas=1;
cin>>t;
while(t--)
{
ll mod,k;
cin>>n>>k>>mod;
ll ans=0;
for(int i=0;i<n;i++) {cin>>a[i];ans=ans+(a[i]%mod);ans=ans%mod;}
ans=(ans*(power(n,k-1,mod)*k)%mod)%mod;
printf("Case %d: %lld\n",cas++,ans);
}
return 0;
}
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;
}
题意:求那段程序的res值
题解:可以想到每个a[i]加的次数一样多,那我们算一下总次数然后平均一下,就可以得到每个数字加的次数。
可以得到总的次数为(n^k)*k,因为有n个数字,所以每个数字加了(n^(k-1))*k次
所以算一下n个数字的和,然后答案就是(n^(k-1))*k*sum
#include <iostream>
#include <algorithm>
#include <string.h>
#include <stdio.h>
#include <math.h>
using namespace std;
typedef long long ll;
ll power(ll a,ll b,ll mod)
{
ll ans=1,c=a;
while(b)
{
if(b&1)
ans=(ans*c)%mod;
c=(c*c)%mod;
b=b/2;
}
return ans;
}
ll a[1005];
int main()
{
ll n,m;
int t,cas=1;
cin>>t;
while(t--)
{
ll mod,k;
cin>>n>>k>>mod;
ll ans=0;
for(int i=0;i<n;i++) {cin>>a[i];ans=ans+(a[i]%mod);ans=ans%mod;}
ans=(ans*(power(n,k-1,mod)*k)%mod)%mod;
printf("Case %d: %lld\n",cas++,ans);
}
return 0;
}
相关文章推荐
- lightOJ 1213 Fantasy of a Summation
- A - Fantasy of a Summation(打表找规律) LightOJ - 1213
- 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 1213 Fantasy of a Summation(快速幂)
- 【找规律 && 快速幂 && 概率论】LightOJ - 1213 Fantasy of a Summation
- LightOJ 1213 Fantasy of a Summation(规律 + 快数幂)
- LightOj 1213 - Fantasy of a Summation(推公式 快速幂)
- 【Light】[1213]Fantasy of a Summation
- light oj 1213 - Fantasy of a Summation (数学计数)
- Light OJ 1213 Fantasy of a Summation (快速幂+规律)
- LightOj 1220 Fantasy of a Summation(快速幂)
- L - Fantasy of a Summation(快速幂)
- Fantasy of a Summation
- Fantasy of a Summation n个数,k层重复遍历相加。求它的和%mod的值;推导公式+快速幂