https://ac.nowcoder.com/acm/contest/view-submission?submissionId=43035417

假设有i步选择不动,就有n-i步移动

假设其中又有a步选择往右移,就有n-i-a步左移

所以-m<=a-(n-i-a)<=m

所以(n-m-i)/2<=a<=min{ n-i,(n+m-i)/2 }

令g(i)=Σ C(n-i,a)(3^a)(2^(n-i-a))

答案=Σ C(n,i)g[i]

考虑如何递推求出g[i]

令f(n,m)=C(n,m)(3^m)(2^(n-m))

则3f(n-1,m-1)+2f(n-1,m)=f(n,m)

假设n=8,m=3

g[0]=                          f(8,3)+  f(8,4)+  f(8,5)

=            3f(7,2)+5f(7,3)+5f(7,4)+2f(7,5)

g[1]=              f(7,2)+  f(7,3)+  f(7,4)+  f(7,5)

=3f(6,1)+5f(6,2)+5f(6,3)+5f(6,4)+2f(6,5)

g[2]=              f(6,2)+  f(6,3)+  f(6,4)

=3f(5,1)+5f(5,2)+5f(5,3)+2f(5,4)

g[3]=  f(5,1)+  f(5,2)+  f(5,3)+  f(5,4)

可以发现,如果已知g[i],那么将g[i]乘5,然后在搞一搞头尾就可以

)#include<cstdio>
#include<algorithm> using namespace std; #define N 3000001 const int mod=; typedef long long LL; int g[N];
int pow2[N],pow3[N],fac[N],inv[N]; int C(int n,int m)
{
return 1ll*fac[n]*inv[m]%mod*inv[n-m]%mod;
} int f(int n,int m)
{
return 1ll*C(n,m)*pow3[m]%mod*pow2[n-m]%mod;
} int pow(int n,int m)
{
int s=;
for(;m;m>>=,n=1ll*n*n%mod)
if(m&) s=1ll*s*n%mod;
return s;
} int main()
{
int n,m;
scanf("%d%d",&n,&m);
pow2[]=;
pow3[]=;
fac[]=;
inv[]=;
for(int i=;i<N;++i)
{
pow2[i]=pow2[i-]*%mod;
pow3[i]=1ll*pow3[i-]*%mod;
fac[i]=1ll*fac[i-]*i%mod;
inv[i]=pow(fac[i],mod-);
}
int l=,r=,nl,nr,ans=;
for(int i=n;i>=;--i)
{
nl=max(,n-m-i+>>);
nr=min(n-i,m+n-i>>);
if(nl>l) ans=(ans-f(n-i,l++)+mod)%mod;
while(nr>r) ans=(ans+f(n-i,++r))%mod;
g[i]=ans;
ans=5ll*ans%mod;
if(nl>=) ans=(ans+3ll*f(n-i,nl-)%mod)%mod;
ans=(ans-3ll*f(n-i,nr)%mod+mod)%mod;
}
ans=;
for(int i=;i<=n;++i) ans=(ans+1ll*C(n,i)*g[i]%mod)%mod;
printf("%d",ans);
return ;
}

2020牛客寒假算法基础集训营4 J 二维跑步的更多相关文章

  1. 2020牛客寒假算法基础集训营2 J题可以回顾回顾

    2020牛客寒假算法基础集训营2 A.做游戏 这是个签到题. #include <cstdio> #include <cstdlib> #include <cstring ...

  2. 2020牛客寒假算法基础集训营1 J题可以回顾回顾

    2020牛客寒假算法基础集训营1 这套题整体来说还是很简单的. A.honoka和格点三角形 这个题目不是很难,不过要考虑周全,面积是1,那么底边的长度可以是1也可以是2, 注意底边1和2会有重复的, ...

  3. 2020牛客寒假算法基础集训营2 J.求函数 (线段树 推公式 单点修改 区间查询)

    https://ac.nowcoder.com/acm/contest/3003/J 题解: #include<bits/stdc++.h> typedef long long ll; u ...

  4. 2020牛客寒假算法基础集训营1 J. 缪斯的影响力 (矩阵快速幂/费马小定理降幂)

    https://ac.nowcoder.com/acm/problem/200658 f(n) = f(n-1) * f(n-2) * ab ,f的第一项是x,第二项是y. 试着推出第三项是x·y·a ...

  5. 2020牛客寒假算法基础集训营4-F树上博弈

    链接:https://ac.nowcoder.com/acm/contest/3005/F来源:牛客网 题目描述 现有一个 n 个点,n-1条边组成的树,其中 1 号点为根节点. 牛牛和牛妹在树上玩游 ...

  6. 2020牛客寒假算法基础集训营4-I 匹配星星【贪心】

    链接:https://ac.nowcoder.com/acm/contest/3005/I来源:牛客网 示例1 输入 复制 2 1 1 0 2 2 1 2 1 1 0 2 2 1 输出 复制 1 1 ...

  7. 2020牛客寒假算法基础集训营1 F-maki和tree

    链接:https://ac.nowcoder.com/acm/contest/3002/F来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

  8. 牛客寒假算法基础集训营5 J 炫酷数学

    链接:https://ac.nowcoder.com/acm/contest/331/J来源:牛客网 小希最近想知道一个东西,就是A+B=A|B(其中|为按位或)的二元组有多少个. 当然,直接做这个式 ...

  9. 2020牛客寒假算法基础集训营5 G街机争霸

    题目描述 哎,又是银首,要是你这个签到题少WA一发就金了 牛牛战队的队员打完比赛以后又到了日常甩锅的时间.他们心情悲伤,吃完晚饭以后,大家相约到一个街机厅去solo.牛牛和牛能进入了一个迷宫,这个迷宫 ...

随机推荐

  1. getter和setter

    /* 对象属性是由名字.值和自足特性构成的. 属性值可以用一个或两个方法替代,这两个方法就是getter和setter. 由getter和setter定义的属性称作“存取器属性” */ /* 定义存取 ...

  2. 关于 appium get_attribute 方法的坑

    (得要学着看源码) 问题: self.driver.find_element_by_id("id").get_attribute("content-desc") ...

  3. vue中,实现锚点定位及跳转(url不发生变化)

    <div class="footer" @click="returnTop"> methods:{ returnTop:function(){ do ...

  4. android studio :Timeout waiting to lock daemon addresses registry

    一.开发中 android studio 突然遇到下面的错误提示: Error:Timeout waiting to lock daemon addresses registry. It is cur ...

  5. 第八届极客大挑战 Web-故道白云&Clound的错误

    web-故道白云 题目: 解题思路: 0x01 首先看到题目说html里有秘密,就看了下源代码如图, 重点在红圈那里,表示输入的变量是id,当然上一行的method=“get”同时说明是get方式获取 ...

  6. 01 认识python

    python介绍 python的创始⼈为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决⼼ 开发⼀个新的脚本解释程序,作为ABC语 ...

  7. C语言笔记 11_头文件&强制类型转换&错误处理&递归

    头文件 头文件是扩展名为 .h 的文件,包含了 C 函数声明和宏定义,被多个源文件中引用共享.有两种类型的头文件:程序员编写的头文件和编译器自带的头文件. 在程序中要使用头文件,需要使用 C 预处理指 ...

  8. acm数论之旅(转载)--素数

    https://www.cnblogs.com/linyujun/p/5198832.html 前言:好多学ACM的人都在问我数论的知识(其实我本人分不清数学和数论有什么区别,反正以后有关数学的知识我 ...

  9. 开关电源ac-dc推荐电路

    在使用AC-DC电源模块SA系列时,如果碰到对模块的输出纹波噪声要求较高或对EMC要求严格的场合,应对模块进行必要的滤波处理使到满足不同环境的特殊要求,以下推荐一滤波电路供参考: 图中各元件的说明:1 ...

  10. Codeforces Round #620 (Div. 2) B. Longest Palindrome

    Returning back to problem solving, Gildong is now studying about palindromes. He learned that a pali ...