zoukankan      html  css  js  c++  java
  • bzoj2467: [中山市选2010]生成树

    如果不是hz说是大水题我还以为是数论。。

    如果n个五边形每个断掉一条边,我们就会得到一个基环外向树。

    此时还需要断掉一条边,也就是n个五边形中就有一个五边形要断掉两条边,其他断一条。

    而且有一条肯定是在中心的那个n边形上,从n个五边形中选取一个是选两条边的,而且五边形在中间n边形上那条边必选,

    那就在在剩下4条边再断一条,而剩下的n−1个五边形就随便断一条。

    公式就是:n(挑那个断两条边的)* 4(这个五边形有四种选择)* 5^(n-1)(剩下的n-1个都有五种选择)

    然后快速幂取mod

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<cstdlib>
    #include<algorithm>
    #include<cmath>
    using namespace std;
    const int mod=2007;
    
    int main()
    {
        int T;
        scanf("%d",&T);
        while(T--)
        {
            int n;
            scanf("%d",&n);
            
            int ans=(n*4)%mod,A=5;
            n--;
            
            while(n>0)
            {
                if(n%2==1)ans=(ans*A)%mod;
                A=(A*A)%mod;n/=2;
            }
            printf("%d
    ",ans);
            
            
        }
        return 0;
    }
  • 相关阅读:
    WPS JS宏
    WPS基础
    算法文章收藏
    辩论赛
    物流系统
    C#导出excel复杂表格(单元各合并)
    VUE复杂表格合并
    Linux系统创建一个npm命令行工具
    Java使用技巧记录
    Ubuntu系统安装nodejs及npm
  • 原文地址:https://www.cnblogs.com/AKCqhzdy/p/8427197.html
Copyright © 2011-2022 走看看