Forrest


私信TA

用户名:dotcpp0717441

访问量:4006

签 名:

等  级
排  名 88
经  验 9136
参赛次数 1
文章发表 121
年  龄 0
在职情况 教师
学  校 优学乐程
专  业

  自我简介:

TA的其他文章

解题思路:组合数

注意事项:

参考代码:

#include<iostream>
#include<cmath>
using namespace std;
long long c(int n, int m){
	double s = 1;
	for (int i = n ; i > n - m; i --)s *= i;
	for (int i = m; i >= 2; i --) s /= i;
	return (long long)s;
}
int main()
{
	int k, w, mx, r, high, sum = 0;
	cin >> k >> w;
	mx = pow(2,k);
	r = w % k;
	high = pow(2,r) - 1;
	for (int i = 2; i < w / k + 1; i ++)
		sum += c(mx - 1, i);
	if (high){
		for(int i = 1; i <= high; i ++){
			sum += c(mx - i - 1, w / k);
		}
	}
	cout << sum;
	return 0;
}


 

0.0分

0 人评分

  评论区

  • «
  • »