zoukankan      html  css  js  c++  java
  • 北京信息科技大学第十一届程序设计竞赛B:kotori和气球

    https://ac.nowcoder.com/acm/contest/940/B

    题目描述

    kotori最近迷上了摆气球的游戏。她一共有n种气球,每种气球有无数个。她要拿出若干个气球摆成一排。

    但是,由于气球被施放了魔法,同样种类的气球如果相邻会发生爆炸,因此若两个相邻的气球种类相同被视为不合法的。

    kotori想知道,摆成一排m个一共有多少种不同的方案?

    由于该数可能过大,只需要输出其对109取模的结果。

    输入描述:

    输入仅有一行,为两个整数n和m(1≤n,m≤100)

    输出描述:

    输出一个整数,为方案数对109取模的结果。

    示例1

    输入

    复制

    3 2

    输出

    复制

    6

    说明

    假设3种气球标记为1、2、3,那么共有以下6种方案:[1,2] [1,3] [2,1] [2,3] [3,1] [3,2]。

    解题思路:

    简单推论题。

    a[i]代表长度为i的方案,下一个气球要和当前气球颜色不同,所以a[i+1]=a[i-1]*(n-1)。

    #include <stdio.h>
    #define N 120
    long long a[N];
    int main()
    {
    	int n, m, i;
    	scanf("%d%d", &n, &m);
    	a[1]=n;
    	for(i=2; i<=m; i++)
    		a[i]=(a[i-1]*(n-1))%109;
    	printf("%lld
    ", a[m]);
    	return 0;
    }
  • 相关阅读:
    URI 和 URL
    TCP/IP协议
    TCP/IP 通信传输流
    Python 之 函数可变参数和关键字参数
    Python 之装饰器decorator
    Python 之进程
    Android
    Redis持久化(persistence)
    python正则表达式
    selenium+python定位iframe元素
  • 原文地址:https://www.cnblogs.com/zyq1758043090/p/11852647.html
Copyright © 2011-2022 走看看