【2017 4 24 - B】 组合数
【题目描述】

输入格式:
一行一个正整数n
输出格式:
一行一个数f(n)对1000000007取余的值
【分析】
就是乱搞??

就是问根到叶子有多少条路径嘛。
然后路径可以π、1、1、π...这样表示
枚举有多少个$π$,算出最后一个π前面最多多少个1【这样比较不容易算重复什么的】,然后用组合数算一算。
有一个比较坑的地方就是比如3.2是-π是大于0但是是不能减的因为3.2已经小于4了。
然后就是假设枚举了i个π,最后一个π前面最多y个1.
就是
$\sum_{j=0}^{y} C_{i+j-1}^{i-1}$
这是个很经典的数学题?
就是在前面加一个$C_{i+j}^{i}$,然后两项并一起得出来就是$C_{i+y}^{i}$
求和即可。
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#include<cmath>
using namespace std;
#define Mod 1000000007
#define LL long long
const double pi=acos(-);
#define Maxn 1000010 int fac[*Maxn],inv[*Maxn]; void init(int n)
{
fac[]=;for(int i=;i<=n;i++) fac[i]=1LL*fac[i-]*i%Mod;
inv[]=;for(int i=;i<=n;i++) inv[i]=1LL*(Mod-Mod/i)*inv[Mod%i]%Mod;
inv[]=;for(int i=;i<=n;i++) inv[i]=1LL*inv[i]*inv[i-]%Mod;
} int get_c(int n,int m)
{
if(n<m) return ;
int ans=1LL*fac[n]*inv[m]%Mod;
ans=1LL*ans*inv[n-m]%Mod;
return ans;
} int main()
{
int n,ans=;
scanf("%d",&n);
init(*n);
for(int i=;i<=n;i++)
{
int y=(int)floor(n-i*pi);
if(n-i*pi-y<-pi) y--;
ans=(ans+get_c(i+y,i))%Mod;
}ans=(ans+)%Mod;
printf("%d\n",ans);
return ;
}
【这题有毒,有时错有时对??
2017-04-24 20:30:36
【2017 4 24 - B】 组合数的更多相关文章
- Becoming inspired - ASC - 2017 MARCH 24
Becoming inspired - The 11 questions to ask yourself when you feel uninspired @ Advanced Studio Clas ...
- iOS静态库.a总结(2017.1.24增加脚本打包方法)
修改于:2017.1.24 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImag ...
- win10 如何配置 java jdk1.8环境变量(2017.2.24)
win10 如何配置 java jdk 环境变量 这里的win10 为全新安装的系统 一.安装 下载 jdk 64位 windows 版本安装(默认安装) 默认安装的路径: C:\Program Fi ...
- 2017冬季24集训模拟题-24星球的末日(Floyd)
24 星球的末日[问题描述]24 星球的世界末日就要到了 , 可是诺亚方舟还没有制造完成 . 为了制造诺亚方舟这个星球上的所有国家都站在统一战线 . 现在一共有n个国家 , 一个国家到另一个国家都有一 ...
- 2017.11.24 Stm8L151-factory
Marking---------factory fun... /** ***************************************************************** ...
- SNS团队第三次站立会议(2017.04.24)
一.当天站立式会议照片 本次会议主要内容:汇报工作进度,根据完成情况调整进度 二.每个人的工作 成员 今天已完成的工作 明天计划完成的工作 罗于婕 相关数据库文件建立起来 完善数据库文件 龚晓婷 研 ...
- SNS团队Beta阶段第三次站立会议(2017.05.24)
1.立会照片 2.每个人的工作 成员 今天已完成的工作 明天计划完成的工作 罗于婕 辅助完善生词本 辅助完成生词本功能 龚晓婷 辅助开发历史记录功能 辅助完善历史记录功能 林仕庄 开发历史记录功能 完 ...
- 团队作业4——第一次项目冲刺(Alpha版本)2017.4.24
在下午3-4节Linux课结束后,我们teamworkers全体队员留在禹州楼304进行约20分钟的短暂会议,会议讨论关于昨天任务的总结并分配了今天的新任务,大家畅所欲言,情绪高昂,各自阐述了自己不一 ...
- 【资料下载区】【iCore系列及其它模块相关文档】更新日期2017/07/24
iCore系列双核心板原理图下载区 iCore双核心板原理图下载(注释版)iCore1s双核心板原理图下载iCore2双核心板原理图下载iCore3双核心板原理图下载iCore4双核心板原理图下载 i ...
随机推荐
- insserv: Script <name> is broken: incomplete LSB comment.
insserv: Script <name> is broken: incomplete LSB comment. insserv: missing `Required-Start:' e ...
- Python的生成器进阶玩法
Python的生成器进阶玩法 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.yield的表达式形式 #!/usr/bin/env python #_*_coding:utf-8 ...
- CCNA学习与实验指南——第3章 以太网
以太网就是局域网,IEEE制定了802.2和802.3两种标准.802.2规定了OSI模型的数据链路层的上半部分(LLC子层),802.3规定了OSI模型的数据链路层的下半部分和物理层(MAC子层). ...
- 从url到页面加载浏览器做了什么?
从输入url到页面加载发生了什么?1.DNS解析DNS解析是一个递归查询的过程.DNS解析的过程就是寻找哪台机器上有你需要资源的过程,当你在浏览器中输入一个地址时,www.baidu.com.其实不是 ...
- 前端必须掌握的30个CSS选择器
也许你已经学会了CSS的三个简单常用的选择器:#ID,.class,标签选择器,可是这些就足够了吗?随着CSS3的到来,作为前端开发者需要掌握下面三十个基本的选择器,这样才可以在平时开发中得心用手. ...
- Android利用LocalSocket实现Java端进程与C端进程之间的IPC
Android是建立在Linux之上的OS,在涉及到安全.网络协议.文件加密等功能时,往往需要通过C语言调用底层API来实现,而如何发出指令让C端执行我们想要的功能,并且在执行之后有返回结果呢,这就需 ...
- svn 更新代码
SVN 更新代码 --force # 强制覆盖 /usr/bin/svn --username user --password passwd co $Code ${SvnPath}src/ # 检出整 ...
- websocket知识简单总结!
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- android getWidth()和getMeasuredWidth()方法的区别
getWidth() Return the width of the your view. Returns The width of your view, in pixels. 源代码: public ...
- 【腾讯云】自己搭建的腾讯云服务器JavaEE环境
0.安装SSH登录 1.生成公钥对 ssh-keygen -t rsa -P '' -P表示密码,-P '' 就表示空密码,也可以不用-P参数,这样就要三车回车,用-P就一次回车.它在/home/ch ...