吉首大学第八届“新星杯”大学生程序设计大赛(暨新生网络同步赛) |
问题 A: 组合数 | 组合数公式+分解质因子求因子个数 |
问题 E: Jack的A+B | 细节 |
问题 G: 圆桌上的晚餐 | 循环遍历,dfs做法 |
问题 J: 老肖数等式 | 水 |
问题 I: 夫子云游 | 求方案数,dfs做法 |
问题 K: WaWa的难题 | 全排列后,找规律 |
什么叫不合理安排时间呢。。就是我这样了,疯狂卡题,可以过的题目的时间不够。。开题顺序很重要
问题 A: 组合数
时间限制: 1 Sec 内存限制: 128 MB
提交: 1715 解决: 105
[提交] [状态] [命题人:jsu_admin]题目描述
求组合数C(N,M),以及C(N,M)因子个数。
输入
N和M,其中0<=M<=N<=50,以EOF结束。
输出
该组合数结果
样例输入 Copy
3 2 4 2样例输出 Copy
3 2 6 4
思路:
(1)对数据运用公式预处理
(2)分解出整数的质因子,计算因子数
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <map>
#include <list>
#include <vector>
#include <stack>
#include <queue>
#include <algorithm>
#include <iostream>
#define mem(a) memset(a,0,sizeof(a))
using namespace std;
const int maxn = 1e6 + 5;
typedef long long ll;
ll K[55][55];
int prime[50];
int n,m,cnt;
ll sum;
int p[maxn];//记录数字的质因子
void init()
{
for(int i=0;i<=51;++i)
K[i][0]=1;
for(int i=1;i<=51;++i)
for(int j=1;j<=51;++j)
K[i][j]=K[i-1][j]+K[i-1][j-1];
}
void primeFactor(ll n)//分解质因子的模板~~
{
while(n % 2 == 0){
p[2] +&