浅谈隔板法
隔板法就是在以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; }
...
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 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的设计差异
· 三行代码完成国际化适配,妙~啊~