浅谈隔板法

隔板法就是在以n为末项数列中插入k个隔板从而将数列分成k+1块.

简化题意就是在n的数列中,每次跳大于等于k的距离,跳m次,最后跳到n的方案数。

我们用隔板法理解一下,就是插入m块,保证每个区间的的长度大于等于k即可,此时我们可以把所有的长度都推到左边就变成组合数的问题。

而题目的要求就是在(n-2-(m-1)*(k-1))中选(m-2)的组合数的问题了。

最后用卢卡斯定理判断2的因子来判断奇偶即可。

复制代码
#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll T,n,m,k;
inline ll read()
{
    ll x=0,ff=1;
    char ch=getchar();
    while(!isdigit(ch))
    {
        if(ch=='-') ff=-1;
        ch=getchar();
    }
    while(isdigit(ch))
    {
        x=(x<<1)+(x<<3)+(ch^48);
        ch=getchar();
    }
    return x*ff;
}
int main()
{
    freopen("1.in","r",stdin);
    T=read();
    for(int i=1;i<=T;i++)
    {
        n=read();m=read();k=read();
        if(((m-2)&(n-2-(m-1)*(k-1)))==(m-2)) cout<<"Yes"<<endl;
        else                            cout<<"No"<<endl;
    }
    return 0;
} 
复制代码

...

posted @   逆天峰  阅读(1379)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~
作者:逆天峰
出处:https://www.cnblogs.com/gcfer//
点击右上角即可分享
微信分享提示