[bzoj2467][中山市选2010]生成树(ksm乱搞)

本文探讨了一种特殊的五边形网格切割问题,并通过数学分析给出了具体的计算公式。最终得出,对于一个由n个五边形组成的特殊网格,其有效的切割方案数量为4n*5^(n-1)。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目:

我是超链接

题解:

我们先在每一个正五边形上切一刀,然后就可以发现有4n个点,4n条边,是一个环套树,还需要切一条边。就可以发现一定有一个五边形被切了两条边,而一定有一条边在中间的n边形上。
拆掉两条边的多边形有n种选择,除了中间那一条边还有4种选择,剩下的五边形在5条边中任意切除一条
答案就是 4n5n1

代码:

#include <cstdio>
#include <iostream>
#define LL long long
using namespace std;
const int ATP=2007;
LL ksm(LL k)
{
    LL ans=1,a=5;
    for (;k;k>>=1,a=a*a%ATP)
      if (k&1) ans=a*ans%ATP;
    return ans;
}
int main()
{
    int T,i,n,m;
    scanf("%d",&T);
    while (T--)
    {
        scanf("%d",&n);
        printf("%d\n",4*n%ATP*ksm(n-1)%ATP);
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值