传送门

解题思路

  \(bitset\)维护连通性,给每个点开个\(bitset\),第\(i\)位为\(1\)则表示与第\(i\)位联通。算答案时显然要枚举每条边,而枚举边的顺序需要贪心,一个点先到达的点一定做出的贡献最大,那么就可以先求出拓扑序,然后每个点的儿子按照拓扑序排序。之后倒序枚举每个点确定答案。

代码

#include<bits/stdc++.h>

using namespace std;
const int MOD=1004535809;
const int N=1000005;
typedef long long LL; int n,k,m,fac[N],inv[N],ans; inline int fast_pow(int x,int y){
int ret=1;
for(;y;y>>=1){
if(y&1) ret=(LL)ret*x%MOD;
x=(LL)x*x%MOD;
}
return ret;
} inline int C(int x,int y){
return (LL)fac[x]*inv[y]%MOD*inv[x-y]%MOD;
} int main(){
scanf("%d%d%d",&n,&m,&k);
fac[0]=fac[1]=1;
for(int i=2;i<=n;i++) fac[i]=(LL)fac[i-1]*i%MOD;
inv[n]=fast_pow(fac[n],MOD-2);
for(int i=n-1;~i;i--) inv[i]=(LL)inv[i+1]*(i+1)%MOD;
for(int i=m;i<=n;i+=k)
ans=(ans+C(n,i))%MOD;
printf("%d\n",ans);
return 0;
}

最新文章

  1. Python中的range函数用法
  2. linux shell 脚本获取和替换文件中特定内容
  3. JSBinding+SharpKit / 菜单介绍
  4. 如何把项目部署到OSChina上
  5. 2014年市场需求排名前10的编程语言 - 生命的延续是 BI
  6. KStar ----BPM应用框架,K2 的新星
  7. phpwind8.7升级9.0.1过程(三)20130107升级到20130227
  8. 2016021903 - 下载安装使用Memory Analyzer
  9. 介绍 - OC中的代理模式
  10. Android学习路径(23)应用Fragment建立动态UI——Fragment之间的通信
  11. SSLPinning 延伸
  12. PHP垃圾回收机制
  13. jquery-1.4.4.min.js无法解析json中result.data问题
  14. PS 知识整理
  15. Android通讯录管理(获取联系人、通话记录、短信消息)
  16. js实现默认或者触发一个事件选中元素内容的方法
  17. Linux下 jenkins的安装
  18. Oracle SQL之 序列使用限制
  19. 关于Android
  20. Java深度复制List内容。

热门文章

  1. C++输出字符指针指向的地址
  2. [Python3] 021 面向对象 第一弹
  3. POJ-1679.The Unique MST.(Prim求次小生成树)
  4. 实现自己的DiscoveryClient
  5. luoguP1312 Mayan游戏 题解(NOIP2011)
  6. hdu 4001 To Miss Our Children Time( sort + DP )
  7. python 谈赋值和copy区别
  8. uoj396 [NOI2018]屠龙勇士
  9. 【JAVA】 01-Java基础知识
  10. elasticsearch 基础 —— 分布式文档存储原理