[CSAcademy]Sum of Powers
[CSAcademy]Sum of Powers
题目大意:
给定\(n,m,k(n,m,k\le4096)\)。一个无序可重集\(A\)为合法的,当且仅当\(|A|=m\)且\(\sum A_i=n\)。定义一个集合的贡献为\(\sum A_i^k\),求所有满足条件的集合的贡献之和。
思路:
\(f[i][j]\)表示将\(j\)个数之和为\(i\)的方案数,有如下两种转移:
- \(f[i][j]+=f[i-1][j-1]\),表示新加入一个元素\(1\);
- \(f[i][j]+=f[i-j][j]\),表示集合内每个元素\(+1\)。
可以证明这样就不重复、不遗漏地包含了所有的集合。
由于每个元素的贡献独立,最后枚举每种元素及其出现次数并计算贡献即可。
时间复杂度\(\mathcal O(nm)\)。
源代码:
#include<cstdio>
#include<cctype>
inline int getint() {
register char ch;
while(!isdigit(ch=getchar()));
register int x=ch^'0';
while(isdigit(ch=getchar())) x=(((x<<2)+x)<<1)+(ch^'0');
return x;
}
const int N=4097,mod=1e9+7;
int f[N][N];
inline int power(int a,int k) {
int ret=1;
for(;k;k>>=1) {
if(k&1) ret=1ll*ret*a%mod;
a=1ll*a*a%mod;
}
return ret;
}
int main() {
const int n=getint(),m=getint(),k=getint();
f[0][0]=1;
for(register int i=1;i<=n;i++) {
for(register int j=1;j<=m&&j<=i;j++) {
f[i][j]=(f[i-1][j-1]+f[i-j][j])%mod;
}
}
int ans=0;
for(register int i=1;i<=n-m+1;i++) {
const int pwr=power(i,k);
for(register int j=1;j<=m&&i*j<=n;j++) {
(ans+=1ll*pwr*f[n-i*j][m-j]%mod)%=mod;
}
}
printf("%d\n",ans);
return 0;
}
[CSAcademy]Sum of Powers的更多相关文章
- Euler's Sum of Powers Conjecture
转帖:Euler's Sum of Powers Conjecture 存不存在四个大于1的整数的五次幂恰好是另一个整数的五次幂? 暴搜:O(n^4) 用dictionary:O(n^3) impor ...
- [伯努利数] poj 1707 Sum of powers
题目链接: http://poj.org/problem?id=1707 Language: Default Sum of powers Time Limit: 1000MS Memory Lim ...
- 【POJ1707】【伯努利数】Sum of powers
Description A young schoolboy would like to calculate the sum for some fixed natural k and different ...
- UVA766 Sum of powers(1到n的自然数幂和 伯努利数)
自然数幂和: (1) 伯努利数的递推式: B0 = 1 (要满足(1)式,求出Bn后将B1改为1 /2) 参考:https://en.wikipedia.org/wiki/Bernoulli_numb ...
- POJ 1707 Sum of powers(伯努利数)
题目链接:http://poj.org/problem?id=1707 题意:给出n 在M为正整数且尽量小的前提下,使得n的系数均为整数. 思路: i64 Gcd(i64 x,i64 y) { if( ...
- sum of powers
题意: 考虑所有的可重集{a1,a2,a3....ak} 满足a1+a2+....+ak=n,求所有a1^m+a2^m+a3^m的和 n,m,k<=5000 题解: part1: 考虑f[i][ ...
- UVa 766 Sum of powers (伯努利数)
题意: 求 ,要求M尽量小. 析:这其实就是一个伯努利数,伯努利数公式如下: 伯努利数满足条件B0 = 1,并且 也有 几乎就是本题,然后只要把 n 换成 n-1,然后后面就一样了,然后最后再加上一个 ...
- 51nod1228 序列求和(自然数幂和)
与UVA766 Sum of powers类似,见http://www.cnblogs.com/IMGavin/p/5948824.html 由于结果对MOD取模,使用逆元 #include<c ...
- [转] Loren on the Art of MATLAB
http://blogs.mathworks.com/loren/2007/03/01/creating-sparse-finite-element-matrices-in-matlab/ Loren ...
随机推荐
- 检查URL的可用性脚本
#!/bin/bash check_url() { HTTP_CODE=$(curl -o /dev/ -s -) ];then echo "Warning: $1 Access failu ...
- spring cloud Eureka常见问题总结
Spring Cloud中,Eureka常见问题总结. 指定Eureka的Environment 1 eureka.environment: 指定环境 参考文档:https://github.com/ ...
- ActiveSync中的http内容组织
1. POST Request 数据格式 Request-line Request-headers CR/LF Request Body Request-line POST <URI> H ...
- XShell发送命令到全部会话
- [SDOI2018]原题识别
题解: ..感觉挺烦得 而且我都没有注意到树随机这件事情.. 就写个30分的莫队.. #include <bits/stdc++.h> using namespace std; #defi ...
- 【AtCoder】AGC031
A - Colorful Subsequence 答案是 \(\prod_{c = 'a'}^{'z'} (cnt[c] + 1)\) #include <bits/stdc++.h> # ...
- 【Android】Android模拟器快速root
启动Android模拟器,开始-运行-输入cmd,运行命令行 adb shell mount -o remount,rw -t yaffs2 /dev/block/mtdblock3 /system ...
- Failed to create Accelerated Display. Please check the display hardware and drivers meet the minimum requirements.
ArcGIS Runtime for WPF开发中Map设置了属性UseAcceleratedDisplay="True",报错: Sample: LocalMap Error: ...
- P2661 信息传递 二分图的最小环
题目描述 有 nn 个同学(编号为 11 到 nn )正在玩一个信息传递的游戏.在游戏里每人都有一个固定的信息传递对象,其中,编号为 ii 的同学的信息传递对象是编号为 T_iTi 的同学. 游戏开 ...
- IDEA创建javaSE项目