【题目描述】

输入格式:

一行一个正整数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】 组合数的更多相关文章

  1. Becoming inspired - ASC - 2017 MARCH 24

    Becoming inspired - The 11 questions to ask yourself when you feel uninspired @ Advanced Studio Clas ...

  2. iOS静态库.a总结(2017.1.24增加脚本打包方法)

    修改于:2017.1.24 1.什么是库? 库是程序代码的集合,是共享程序代码的一种方式 2.根据源代码的公开情况,库可以分为2种类型 a.开源库 公开源代码,能看到具体实现 ,比如SDWebImag ...

  3. win10 如何配置 java jdk1.8环境变量(2017.2.24)

    win10 如何配置 java jdk 环境变量 这里的win10 为全新安装的系统 一.安装 下载 jdk 64位 windows 版本安装(默认安装) 默认安装的路径: C:\Program Fi ...

  4. 2017冬季24集训模拟题-24星球的末日(Floyd)

    24 星球的末日[问题描述]24 星球的世界末日就要到了 , 可是诺亚方舟还没有制造完成 . 为了制造诺亚方舟这个星球上的所有国家都站在统一战线 . 现在一共有n个国家 , 一个国家到另一个国家都有一 ...

  5. 2017.11.24 Stm8L151-factory

    Marking---------factory fun... /** ***************************************************************** ...

  6. SNS团队第三次站立会议(2017.04.24)

    一.当天站立式会议照片 本次会议主要内容:汇报工作进度,根据完成情况调整进度 二.每个人的工作 成员 今天已完成的工作 明天计划完成的工作 罗于婕 相关数据库文件建立起来  完善数据库文件 龚晓婷 研 ...

  7. SNS团队Beta阶段第三次站立会议(2017.05.24)

    1.立会照片 2.每个人的工作 成员 今天已完成的工作 明天计划完成的工作 罗于婕 辅助完善生词本 辅助完成生词本功能 龚晓婷 辅助开发历史记录功能 辅助完善历史记录功能 林仕庄 开发历史记录功能 完 ...

  8. 团队作业4——第一次项目冲刺(Alpha版本)2017.4.24

    在下午3-4节Linux课结束后,我们teamworkers全体队员留在禹州楼304进行约20分钟的短暂会议,会议讨论关于昨天任务的总结并分配了今天的新任务,大家畅所欲言,情绪高昂,各自阐述了自己不一 ...

  9. 【资料下载区】【iCore系列及其它模块相关文档】更新日期2017/07/24

    iCore系列双核心板原理图下载区 iCore双核心板原理图下载(注释版)iCore1s双核心板原理图下载iCore2双核心板原理图下载iCore3双核心板原理图下载iCore4双核心板原理图下载 i ...

随机推荐

  1. Java基础-反射(reflect)技术详解

    Java基础-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类加载器 1>.JVM 类加载机制  如下图所示,JVM类加载机制分为五个部分 ...

  2. .net 未被引用的错误

    开发的时候遇到了一个错误,如下: 错误 1 类型“System.ServiceModel.ClientBase`1<T0>”在未被引用的程序集中定义. 我原本以为是版本号的问题,添加了引用 ...

  3. Linux问题集锦

    一些会遇到的问题,我会不断更新问题集锦~  1.vi / vim保存文件时遇到的问题:E212: Can't open file for writing 在vi / vim下输入w或wq!保存编辑的文 ...

  4. 35个java代码性能优化总结

    前言 代码优化,一个很重要的课题.可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑 的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用 ...

  5. Mogodb 学习一

    0.MongoDB和关系型数据的几个重要对象对比 MongoDB中的数据库.集合.文档 类似于关系型数据库中的数据库.表.行 MongoDB中的集合是没有模式的,所以可以存储各种各样的文档 1.启动M ...

  6. sh脚本学习之:变量

    变量的创建 环境配置 /etc/profile =>~/.bash_profile(~/.bash_login,~/.profile) => ~/.bashrc sh声明 name=&qu ...

  7. js 正则之 检测素数

    相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题.原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的,我就不啰嗦了.我们来说说 j ...

  8. ML—R常用多元统计分析包(持续更新中……)

    基本的R包已经实现了传统多元统计的很多功能,然而CRNA的许多其它包提供了更深入的多元统计方法,下面要综述的包主要分为以下几个部分: 1) 多元数据可视化(Visualising multivaria ...

  9. 无锁并发框架Disruptor学习入门

    刚刚听说disruptor,大概理一下,只为方便自己理解,文末是一些自己认为比较好的博文,如果有需要的同学可以参考. 本文目标:快速了解Disruptor是什么,主要概念,怎么用 1.Disrupto ...

  10. HTTP协议之响应头Date与Age

    HTTP没有为用户提供一种手段来区分响应是缓存命中的,还是访问原始服务器得到的.客户端有一种方法能判断响应是否来自缓存,就是使用Date首部.将响应中Date首部的值与当前时间进行比较,如果响应中的日 ...