hdu 4372 Count the Buildings
发布日期:2021-11-16 12:56:56 浏览次数:2 分类:技术文章

本文共 619 字,大约阅读时间需要 2 分钟。

        n栋楼一列,从前能看到f栋,从后能看到b栋,楼高分别是1~n。“看得到”某楼就是指你和楼之间没有更高的楼,问楼的排列有多少种可能。

        因为最高的楼左右都能看到,所以忽略它。剩下的楼可以分为,f-1+b-1组,看得到的楼作为这组的代表,组内其他楼被挡住了。从这f-1+b-1组中选f-1组放到左边去就行了。因为每一组中,只有一栋楼能看到,其他的楼被挡住了可以任意排列,注意到a个元素的环排列等于a-1个元素的排列,转换一下正好符合第一类斯特林数的定义。

#include 
#include
#include
#include
using namespace std; #define ll long longconst int maxn=2010;const int mod =1000000007;ll c[maxn][maxn];ll s[maxn][maxn];int main(){ for(int i=0;i
>t; while(t--){ int n,f,b; scanf("%d%d%d",&n,&f,&b); ll ans = 0 ; ans = s[n-1][f+b-2]*c[f+b-2][f-1]; ans%=mod; printf("%I64d\n",ans); } return 0;}

转载地址:https://blog.csdn.net/squee_spoon/article/details/47839787 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Codeforces Round #317 [AimFund Thanks-Round] (Div. 1) B
下一篇:Codeforces Round #316 (Div. 2) E

发表评论

最新留言

表示我来过!
[***.240.166.169]2024年04月12日 14时37分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

Android应用构建:12:使用gradle wrapper进行APK文件构建 2019-04-27
Android应用构建:13:使用sdkmanager自动接受license的方法 2019-04-27
Android应用构建:14:构建Android SDK的自定义镜像 2019-04-27
Android应用构建:15:使用gradlew和Android SDK镜像构建安卓应用 2019-04-27
Android应用构建:16:使用gradle和Android SDK镜像构建安卓应用 2019-04-27
实例学习Ansible系列(18)服务管理的几种方式 2019-04-27
实例学习Ansible系列(19)drop-if-exist不出错的写法 2019-04-27
实例学习Ansible系列(20)retry + sleep的常见写法 2019-04-27
实例学习Ansible系列(21)从标准输出获取循环的列表 2019-04-27
Kubernetes 1.17 正式发布:22项功能改进 2019-04-27
Easypack: 使用Ansible快速部署Kubernetes集群 2019-04-27
kubenertes 1.17集群部署总结 2019-04-27
持续集成之企业微信通知:1:群机器人使用方法介绍 2019-04-27
持续集成之企业微信通知:2:推送消息格式说明 2019-04-27
持续集成之企业微信通知:3:推送消息示例(text、markdown、news) 2019-04-27
持续集成之企业微信通知:4:推送消息示例(image) 2019-04-27
持续集成之钉钉消息推送:1:群机器人使用方法介绍 2019-04-27
持续集成之钉钉消息推送:2:推送消息格式说明 2019-04-27
持续集成之钉钉消息推送:3:推送消息示例 2019-04-27
持续集成之消息推送:钉钉与企业微信的群聊机器人通用示例 2019-04-27