一道算法题,用什么算法可以求解,给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/12 04:48:38
一道算法题,用什么算法可以求解,给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的

一道算法题,用什么算法可以求解,给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的
一道算法题,用什么算法可以求解,
给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的对角线条数k.4

一道算法题,用什么算法可以求解,给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的
#include <stdio.h>

#define P 1000003
#define LL long long
LL FACT[P+1];

// 初始化FACT数组,FACT[i]=i!%p
void InitFact(LL p) {
int i;
    FACT[0] = 1;  
    for (i=1; i<=p; i++) 
FACT[i] = (FACT[i-1] * i) % p;  
}
// 返回 a^b%p
LL PowerMod(LL a, LL b, LL p)
{
LL ret = 1;
    LL tmp = a;
while (b)
{  
        if (b & 1) 
ret = (ret * tmp) % p;  
        tmp = (tmp * tmp) % p;  
        b >>= 1;  
    }  
    return ret;  
}
// Lucas(n,m,p) = (Lucas(n/p,m/p) * C(n%p,m%p)) % p;
//*
// 返回 C(n,m)%p
LL C(LL n, LL m, LL p)  
{  
    if(n<m)  
        return 0;
    return FACT[n] * PowerMod(FACT[m]*FACT[n-m]%p,p-2,p) % p;  

LL Lucas(LL n, LL m, LL p)  
{  
    if(m==0)  
        return 1;  
    return (Lucas(n/p, m/p, p) * C(n%p, m%p , p))%p;  
}
/*/
LL Lucas(LL n, LL m, LL p) {  
    LL ret = 1;
LL nn, mm;
    while (n && m) {  
        nn = n%p;
mm = m%p;  
        if (nn < mm) 
return 0;  
        ret = (ret*FACT[nn] * PowerMod(FACT[mm]*FACT[nn-mm]%p, p-2, p) ) % p;  
        n /= p;  
        m /= p;  
    }  
    return ret;  
}
//*/

int diagon (int n,int k)
{
LL result;
    InitFact(P);
    result = Lucas(n-3, k, P);
result = result*Lucas(n-1+k, k+1, P);
result = result * PowerMod((n-1)%P, P-2, P) %P;
return result;
}

intmain()
{
printf("%d\n",diagon(4, 1));
printf("%d\n",diagon(5, 1));
printf("%d\n",diagon(5, 2));
printf("%d\n",diagon(6, 2));
printf("%d\n",diagon(1000000000, 1000003));
}


运行结果:

2

5

5

21

999000


你是在英雄会上看到这个题目的吗?

大牛说这题很简单,可是费了我好大的力气才做出来

一道算法题,用什么算法可以求解,给出一个正n边形,顶点有编号1-n,要求画出k条对角线,这k条对角线在多边形内部没有交点(只可能相交在顶点处),问有多少种方法.输入多边形边数n和要画的 若一个问题的求解既可以用递归算法,也可以用递推算法,则往往用哪种算法,为什么? 一道编程题 求算法思路.给出n(2 有谁能不能给想一个用数据结构中排序或者图形中算法的一个变形算法?也就是帮忙用排序或图形出一道算法题 给出p、q、e、M,求公钥,私钥,并且利用RSA算法加密和解密?有人知道怎么做这样的一道题目吗,可以的话最好举例子说明,麻烦详细点,给出p、q、e、M,设计一个RSA算法,求公钥,私钥,并且利用RSA算法 写出求解方程ax^2+x+b=0的一个算法 用算法的形式啊 .. 求解一道计算题,要用简便算法:0.125*3.2+0.125*5.8-1/8务必答对 算法 算法 用欧几里德算法计算49910 和103569的最大公约数:gcd(49910 ,103569),请给出必要的求解过程. 已知一个图的连接矩阵,判断给定两个节点是否连通的算法思想给出算法思想就可以了 dijkstra算法 最短路径问题话说dijkstra算法可以求解一个节点到其他各节点的最短路径,但是如果节点间存在多条等长的最短路径怎么对这个算法修改呢?不要floyd算法或者别的算法,就dijkstra算法. 人教版数学必修三 算法那一章 算法框图用什么软件可以做出来?要可以用来做题的 给出求91的大于1的最小正约数的一个算法,用流程图. 下面给出一个算法;S1,输入x;S2,若x 关于算法与数据结构的一道题 怎样用PSO算法求解一个简单的函数 RSA算法 用RSA算法 试给出m=student的加解密过程Eucliden算法 得出d