hdu-5673 Robot(默次金数)
题目链接:
有一个机器人位于坐标原点上。每秒钟机器人都可以向右移到一个单位距离,或者在原地不动。如果机器人的当前位置在原点右侧,它同样可以
向左移动单位距离。一系列的移动(左移,右移,原地不动)定义为一个路径。问有多少种不同的路径,使得nn秒后机器人仍然位于坐标原点?
答案可能很大,只需输出答案对1,000,000,0071,000,000,007的模。
输入包含多组数据. 第一行有一个整数T (1\leq T\leq 100)T(1≤T≤100), 表示测试数据的组数. 对于每组数据:
输入一个整数 n (1\leq n\leq 1,000,000)n(1≤n≤1,000,000)。
对于每组数据,输出一个整数
3
1
2
4
1
2
9 思路: 比赛的时候一直推不出公式,还是得好好补补组合数学; AC代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
#include <queue>
#include <stack>
#include <map>
using namespace std;
typedef long long ll;
const ll mod=1e9+;
const int N=1e6+;
ll dp[N]; ll fastpow(ll a,ll b)
{
ll ans=,base=a;
while(b)
{
if(b&)
{
ans=ans*base;
ans%=mod;
}
base*=base;
base%=mod;
b=(b>>);
}
return ans;
}
void fun()
{
dp[]=;
dp[]=;
for(int i=;i<N;i++)
{
ll x=(ll)(i+);
ll y=(ll)(*i+);
ll z=(ll)(*i-);
dp[i]=(y*dp[i-]%mod+z*dp[i-]%mod)*fastpow((ll)(i+),mod-)%mod;
}
}
int main()
{
int t;
scanf("%d",&t);
fun();
while(t--)
{
int n;
scanf("%d",&n);
printf("%I64d\n",dp[n]);
} return ;
}
hdu-5673 Robot(默次金数)的更多相关文章
- HDU5673 Robot 默慈金数
分析: 注:然后学了一发线性筛逆元的姿势 链接:http://blog.miskcoo.com/2014/09/linear-find-all-invert #include<iostream& ...
- hdu5673 Robot 卡特兰数 / 默慈金数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5673 分析: 这道题是一道裸的默慈金数,比较容易想到的是用卡特兰数来做.不了解的可以先学习一下. 卡特 ...
- 51nod1556 计算(默慈金数)
Problem 有一个\(1*n\)的矩阵,固定第一个数为\(1\),其他填正整数, 且相邻数的差不能超过\(1\),求方案数. \(n\le 10^6\) Solution 容易发现答案是\(f_n ...
- HDU 5673 Robot【卡特兰数】
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5673 题意: 有一个机器人位于坐标原点上.每秒钟机器人都可以向右移到一个单位距离,或者在原地不动.如 ...
- hdu 5673 Robot 卡特兰数+逆元
Robot Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem D ...
- HDU 5673 Robot ——(卡特兰数)
先推荐一个关于卡特兰数的博客:http://blog.csdn.net/hackbuteer1/article/details/7450250. 卡特兰数一个应用就是,卡特兰数的第n项表示,现在进栈和 ...
- HDU 5673 Robot 数学
Robot 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5673 Description There is a robot on the origi ...
- 51 Nod 1556计算(默慈金数的应用)
#include<bits/stdc++.h> #define mod 1000000007 using namespace std; typedef long long ll; ll m ...
- Python 素数判断;以及默尼森数
1. 素数/质数 只能被2或者本身整除的正整数. 2. 默尼森数 P是素数且M也是素数,并且满足等式M=2^P-1,则称M为默尼森数. 编程小要求: 输出前5个默尼森数 1)最外层循环找素数 中间层循 ...
随机推荐
- Android Framework 记录之一
简介 之前的研究太偏向应用层功能实现了,很多原理不了解没有深究,现在研究framework框架层了. 记录 1.下载源码,目录如下: 2.Android系统的层次如下: 3.项目目录简单分析如下: 4 ...
- Android 调用.so包时报错:No implementation found for native Lxxx, java.lang.UnsatisfiedLinkError: XXX时的解决办法(转)
问题就是在调用自己同事写的.so包时,怎么也掉不通,程序一直报错退出,错误内容就是: 1 No implementation found for native Lxxx, 2 Java.lang.Un ...
- 【matlab】:matlab中不断的出现计算过程怎么办
这个问题是会常常性出的.就是matlab中不断的出现计算. 关于这个问题,我们须要考虑的是自己是不是写错了,通常会出现以下两种可能的错误 1,关于计算的函数没有写分号 :这样的是致命问题,假设函数不写 ...
- Oracle对没有主键的表分页
普通情况对于有主键,能够做唯一表识的表.我们能够利用主键和rownum配合实现.比如: select scott.emp.* from scott.emp left join (select empn ...
- C++简单介绍
一.怎样用C++的源文件产生一个可运行程序 一个C++程序由一个或者多个编译单元组成.每一个编译单元都是一个独立的源码文件.一般是一个带.cpp的文件,编译器每次编一个文件编译单元,生成一个以.obj ...
- 推荐一款免费的SQLsever的备份软件sqlBackupAndFtp
官方网址 http://sqlbackupandftp.com/ 这个软件不错,蛮方便的.小巧使用,还能够FTP上传数据.
- 转:DDR原理详解
首先,我们先了解一下内存的大体结构工作流程,这样会比较容量理解这些参数在其中所起到的作用.这部分的讲述运用DDR3的简化时序图. DDR3的内部是一个存储阵列,将数据“填”进去,你可以它想象成一张表格 ...
- open-source Julius speech-recognition engine
http://julius.osdn.jp/en_index.php?q=index-en.html Open-Source Large Vocabulary CSR Engine Julius ht ...
- beifen---http://vdisk.weibo.com/s/uhCtnyUhD0Ooc
- ffmpeg mediacodec 硬解初探
ffmpeg mediacodec 硬解初探 1编译: ffmpeg自3.1版本加入了android mediacodec硬解支持,解码器如图 硬件加速器如图(还不清楚硬件加速器的功能) 编译带h26 ...