1141. 猴子的争斗

求生成树的生成方法数(就是生成树的个数*生成树边数全排列)
这题关键在于有个公式———— n阶完全图的生成树个数是  n^(n-2) ;
A(n-1,n-1)* n^(n-2) ;


#include <iostream>
using namespace std;

int main()
{
    int t,ans=1;
    cin>>t;
    for(int i=t-1;i>1;i--)
        ans=ans*i%10007*t%10007;
    cout<<ans<<endl;
    //system("pause");
    return 0;
}


编写代码 当地动物园获得了一个大型开放式花园,动物可以像在自然栖息地一样自由活动,并用它们惯常的恶作剧来招待游客。 最受欢迎的动物是猴子。凭借他们的攀爬、跳跃和其他技能,他们让老游客和年轻游客都很开心。 有一种猴子擅长爬树和摘椰子。另一个物种专门砸开它们。 第一类猴子有N只(编号1至N),第二类猴子有M只(编号1至M)。 第一种类型的猴子k需要Ak秒在树上找到一个好的位置,然后摘下它的第一个椰子。之后,猴子每Bk秒摘一个新椰子。 第二种类型的猴子k花了Ck秒找到一个打开椰子的好工具,然后打开第一个椰子。之后,猴子每Dk秒摘一个椰子。 幸的是,第二种猴子非常好斗,所以这两种猴子可能会同时出现在花园里。因此,动物园管理员会在第一类猴子摘下所有椰子后立即将它们赶走。同样,如果同一类型的猴子在打开所有椰子后停留太久,就会发生争斗。因此,动物园管理员会在他们打开所有的椰子后立即将他们送走。 动物园管理员首先在摘完所有的椰子后立即赶到,然后在猴子们把椰子全部打开后立即赶走。猴子进出花园所需的时间也可以忽略计。 托米斯拉夫特别喜欢第二种猴子,但他永远猜到什么时候能看到它们。他知道猴子在花园里待的总时间,但知道花园里有多少椰子,请帮助他计算第二类猴子到达的时间。 输入格式: 第一行包含整数T(1≤T≤1000),猴子在花园里的总时间,以秒为单位。 下一行包含整数N(1≤N≤100),第一类猴子的数量。 以下N行中的每一行都包含两个整数Ak和Bk(1≤Ak,Bk≤1000000000)表示第一种的猴子k的速度。 下一行包含整数M(1≤M≤100),第二类猴子的数量。 以下M行中的每一行都包含两个整数Ck和Dk(1≤Ck,Dk≤1000000000)表示第二种的猴子k的速度。 输出格式: 输出第一只猴子到达和第二只猴子到达中间间隔的秒数。 输入样例1: 12 1 3 1 1 5 1 输出样例1: 5 输入样例2: 20 2 3 2 1 3 3 3 1 4 1 5 1 输出样例2: 13 在第一个例子中,花园里有三个椰子: •第一种猴子在花园开放3秒钟后摘下第一颗椰子。 •花园开放4秒后,猴子摘下第二个椰子。 •花园开放5秒后,猴子摘下第三个椰子。 •动物园管理员进来护送猴子出去。第二种猴子来了。输出为5,因为这是Tomislav想要到达的时间。 •第二种猴子在花园开放10秒后打开第一个椰子。 •花园开放11秒后,猴子打开第二个椰子。 •花园开放12秒后,猴子打开第三个椰子。 •动物园管理员进来护送猴子出去。
06-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值