做集团网站应注意什么,销售管理系统有免费版,新网站需要加锚文本吗,企业为什么要做网站运营题干#xff1a; 
链接#xff1a;https://ac.nowcoder.com/acm/contest/696/D 来源#xff1a;牛客网   
小K有n个雕塑#xff0c;每个雕塑上有一个整数 若集合T中的每一个元素在n个雕塑上都能找得到#xff0c;则称这个集合为一个优秀的集合 
小K想知道所有大小k优秀…题干 
链接https://ac.nowcoder.com/acm/contest/696/D 来源牛客网   
小K有n个雕塑每个雕塑上有一个整数 若集合T中的每一个元素在n个雕塑上都能找得到则称这个集合为一个优秀的集合 
小K想知道所有大小k优秀的集合的价值和是多少 
一个优秀的集合的价值可以用来表示 输入描述: 
两个整数n,k分别表示雕塑的数量与集合大小的上限 
接下来n个整数表示第i个雕塑上的数字aiai是多少 
输出描述: 
一行表示所有大小k优秀集合的权值和 
示例1 
输入 
复制 
3 0
1 2 3 
输出 
复制 
1 
示例2 
输入 
复制 
3 1
1 2 3 
输出 
复制 
7 
示例3 
输入 
复制 
3 2
1 2 3 
输出 
复制 
18 
示例4 
输入 
复制 
3 3
1 2 3 
输出 
复制 
24 
示例5 
输入 
复制 
8 1
1 6 35 45 65 3 56 8 
输出 
复制 
220 
备注: 有10%10%的数据满足k1 
有30%30%的数据满足kn 
以上两个部分包含在100%100%的数据中但不包含在前30%30%的数据中 
对于前30%30%的数据满足k≤n≤5k≤n≤5 
对于100%100%的数据满足n≤106,1≤ai≤5×103n≤106,1≤ai≤5×103 
由于答案可能过大请对1097取模后输出 
解题报告 题意好难懂啊、、、 注意到集合的性质互异性。  
根据鸽巢原理很容易知道最多有m5e3个数去重之后 
然后设F[n][k]表示前n个数取k个数的价值。且已知这k个数一定互不相同。因为集合的互异性 F[n][k]F[n-1][k]F[n-1][k-1]*a[i] 
效率O(m^2)。  
当然这题也可以用01背包的方法将空间复杂度优化到一维。 
AC代码 
#includecstdio
#includeiostream
#includealgorithm
#includequeue
#includemap
#includevector
#includeset
#includestring
#includecmath
#includecstring
#define F first
#define S second
#define ll long long
#define pb push_back
#define pm make_pair
using namespace std;
typedef pairint,int PII;
const int MAX  1e6  5;
const ll mod  1e97;
ll dp[5005][5005];
int a[MAX],b[MAX];
int n,k;
int main()
{cinnk;for(int i  1; in; i) cina[i],b[i]a[i];sort(b1,bn1);int N  unique(b1,bn1) - b - 1;dp[0][0]1;for(int i  1; iN; i) {dp[i][0]  1;for(int j  1; jk; j) {dp[i][j]  (dp[i-1][j]  dp[i-1][j-1] * b[i])%mod;}}ll ans  0;for(int i  0; iN  ik; i) ans  (ans  dp[N][i])%mod;cout  ans  endl;return 0 ;
}