zoukankan      html  css  js  c++  java
  • 南阳oj 题目127 星际之门(一)

    星际之门(一)

    时间限制:3000 ms | 内存限制:65535 KB
    难度:3

    描述
    公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门,它利用虫洞技术,一条虫洞可以连通任意的两个星系,使人们不必再待待便可立刻到达目的地。
    帝国皇帝认为这种发明很给力,决定用星际之门把自己统治的各个星系连结在一起。
    可以证明,修建N-1条虫洞就可以把这N个星系连结起来。
    现在,问题来了,皇帝想知道有多少种修建方案可以把这N个星系用N-1条虫洞连结起来?

    输入
    第一行输入一个整数T,表示测试数据的组数(T<=100)
    每组测试数据只有一行,该行只有一个整数N,表示有N个星系。(2<=N<=1000000)
    输出
    对于每组测试数据输出一个整数,表示满足题意的修建的方案的个数。输出结果可能很大,请输出修建方案数对10003取余之后的结果。
    样例输入
    2
    3
    4
    样例输出
    3
    16
    Cayley加Prufer编码:
    Cayley:不同的n节点标号树的数量为n^(n-2)。
    外加快速幂

    #include<iostream>
    #include<algorithm>
    #include<cstdio>
    using namespace std;
    int poww(int k)
    {
        int num=1;
        int n=k-2;
        while(n)
        {
            if(n&1)
                num=num*k%10003;
            n>>=1;
            k=k*k%10003;
        }
        return num;
    }
    int main()
    {
        int l,k;
        scanf("%d",&l);
        while(l--)
        {
            scanf("%d",&k);
            if(k==2)
            {
                printf("1
    "); continue;
            }
            printf("%d
    ",poww(k));
        }
        return 0;
    }
    
  • 相关阅读:
    LeetCode120 Triangle
    LeetCode119 Pascal's Triangle II
    LeetCode118 Pascal's Triangle
    LeetCode115 Distinct Subsequences
    LeetCode114 Flatten Binary Tree to Linked List
    LeetCode113 Path Sum II
    LeetCode112 Path Sum
    LeetCode111 Minimum Depth of Binary Tree
    Windows下搭建PHP开发环境-WEB服务器
    如何发布可用于azure的镜像文件
  • 原文地址:https://www.cnblogs.com/nanfenggu/p/7900109.html
Copyright © 2011-2022 走看看