【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 ...
随机推荐
- python BeautifulSoup
之前解析LXML,用的是XPath,现在临时被抓取写爬虫,接人家的代码,看到用的是BeautifulSoup,稍微学了下,也挺好用的,简单记录下用法,有机会做下和Xpath的对比测试 初始化 from ...
- 总有一些实用javascript的元素被人遗忘在角落-slice
slice() 方法可从已有的数组中返回选定的元素. 好吧,我承认我竟然把它忘了! 这次我在回顾一下它 语法 arrayObject.slice(start,end) 数组.slice(起始,结束) ...
- Oracle 查看锁表进程_杀掉锁表进程 [转]
查看锁表进程SQL语句1: select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo ...
- Caffe 碎碎念
Window Data Layer window data layer 的数据是存在硬盘上的图片, 需要在一个txt里指定用于训练或测试的图片以及bounding box, bounding box ...
- 【CTF REVERSE】WHCTF2017-CRACKME
1.前言 假装大学生水一下CTF题目,常规思路.程序没有加壳,是VC写的MFC程序. 2.破题思路 1.MessageBox 下断点 2.找到提示错误字符串的函数B 3.跟踪函数 4.跟踪算法 3.实 ...
- Insert Interval & Merge Intervals
Insert Intervals Given a non-overlapping interval list which is sorted by start point. Insert a new ...
- mac 安装gevent报错
运行pip install gevent报错 错误信息如下 xcrun: error: invalid active developer path (/Library/Developer/Comman ...
- 错误的理解引起的bug async await 执行顺序
今天有幸好碰到一个bug,让我知道了之前我对await async 的理解有点偏差. 错误的理解 之前我一直以为 await 后面的表达式,如果是直接返回一个具体的值就不会等待,而是继续执行asyn ...
- 不使用第三方软件、使用IE11自带功能来屏蔽浏览器广告
第一步: 下载后面的附件http://files.cnblogs.com/limits/IE11%E5%8E%BB%E5%B9%BF%E5%91%8A.zip 打开此路径IE11跟踪保护+CSS去广告 ...
- [转]编译hadoop
安装maven hadoop源码是使用maven组织管理的,必须下载maven.从maven官网下载,下载地址是http://maven.apache.org/download.cgi,选择 apac ...