牛客16732 序列(排列组合)
生活随笔
收集整理的這篇文章主要介紹了
牛客16732 序列(排列组合)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
同個(gè)人網(wǎng)站 https://www.serendipper-x.cn/,歡迎訪問 !
鏈接:https://ac.nowcoder.com/acm/problem/16732
來源:??途W(wǎng)
時(shí)間限制:C/C++ 1秒,其他語言2秒
空間限制:C/C++ 262144K,其他語言524288K
64bit IO Format: %lld
題目描述
有一個(gè)長度為n的序列a,已知a[1]=a[n]=1,且對于2 <= x <= n,a[x] / a[x-1]是以下三個(gè)數(shù)字之一 [ 1,-2,0.5 ],問有多少種不同的序列滿足題意。
兩個(gè)序列不同當(dāng)且僅當(dāng)它們有至少一個(gè)位置上的數(shù)字不同,序列a可以為任何實(shí)數(shù)。
輸入描述:
一個(gè)整數(shù) 表示n (1<= n <= 1e3)
輸出描述:
一個(gè)整數(shù) 表示答案模 109 +7
直接整體來看,a[x] = a[x-1]*[1, -2, 0.5],那么等于選出n-1個(gè)數(shù)值相乘
最后答案要是1,所以-2就必須有偶數(shù)個(gè),同理0.5的個(gè)數(shù)要等于-2,順序無關(guān)
n = int(input())import math MOD = 1000000007 def c(m, n):return math.factorial(m) // math.factorial(n) // math.factorial(m - n) % MOD ans = 0 i = 0 num = n-1 while i <= num // 2:ans = (ans + c(num, i) * c(num - i, i)) % MODi += 2 print(ans)總結(jié)
以上是生活随笔為你收集整理的牛客16732 序列(排列组合)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库基础知识——DQL语言(一)
- 下一篇: 计算机网络(一)-概述