洛谷P5520 [yLOI2019] 青原樱 题解
题目链接:P5520 [yLOI2019] 青原樱
题意:
$n$ 个空放 $m$ 个物品,两两物品不能直接相邻,至少空一格
纯数学题。
看看几个空不能放,啊 $m-1$
那能放的就有 $n-m+1$ 个空
没了,水吧。直接算这个就好了。
为什么对呢,因为你在这 $n-m+1$ 个空里面可以随便放
时间复杂度 $O(n)$
代码:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>
#include <cstdio>
#include <cstdlib>
#include <cstring>
#include <cmath>
#include <iomanip>
using namespace std;
#define int long long
#define INF 0x3f3f3f3f3f3f3f3f
#define N (int)()
int n,m,p,_;
signed main()
{
    ios::sync_with_stdio(0);
    cin.tie(0);cout.tie(0);
    // freopen("check.in","r",stdin);
    // freopen("check.out","w",stdout);
    cin >> _ >> n >> m >> p;
    int res=1;
    for(int i=n-m+1; i>=n-2*m+2; i--)
        res=res*i%p;
    cout << res << '\n';
    return 0;
}![洛谷P2585 [ZJOI2006]三色二叉树 题解](/medias/loading.gif)