一篇文章讲明白hdu5698百度之星2016round2b第3题

简介: 一篇文章讲明白hdu5698百度之星2016round2b第3题

这题首先是找规律推公式,然后就是组合数学的知识了。

题目是问到第n行第m列的格式有几种方案,我们可以用手算的方法列出当n和m比较小时的所有答案

比如我列出以下88的矩阵

924 462 210 84 28 7 1 0

462 252 126 56 21 6 1 0

210 126 70 35 15 5 1 0

84 56 35 20 10 4 1 0

28 21 15 10 6 3 1 0

7 6 5 4 3 2 1 0

1 1 1 1 1 1 1 0

0 0 0 0 0 0 0 1

矩阵上的数表示从那个位置到最右下角一共有多少种方案。

求每个位置的值也简单,就是把它右下角的所有数加起来即可。

那么,把这个矩阵倒过来看,就是想要的结果矩阵了。

规律也很容易发现,首先,矩阵是对称的,所以我是只考虑m>=n的情况。

然后,可以发现每个位置的数就是一个组合数C(m + n - 4, n - 2)

最后就是求组合数取模了,C(m + n - 4, n - 2) %

然而,多年没做题的我,并不会组合数取模。找了以前的模板,是竹教主写的,看了好半天才明白,等我打完的时候,比赛刚结束。

比赛结束后交了一次,果然a了T_T

以下是代码

/

baidu/win.cpp

Created on: 2016-5-22

Author : ben

/

#include

#include

#include

#include

#include

#include

#include

#include

#include [span style="color: rgba(0, 0, 255, 1)">set

#include

#include

#include [span style="color: rgba(0, 0, 255, 1)">string

#include

#include

#include

#include

#include

#include

using namespace std;

typedef long long LL;

LL Ext_gcd(LL a, LL b, LL x, LL y) {

if (b == 0) {

x = 1, y = 0;

return a;

}//代码效果参考:http://www.ezhiqi.com/zx/art_1460.html

LL ret = Ext_gcd(b, a % b, y, x);

y -= a / b x;

return ret;

}

LL Inv(LL a, int m) { ///求除数a对m的逆元;

LL d, x, y, t = (LL) m;

d = Ext_gcd(a, t, x, y);

if (d == 1)

return (x % t + t) % t;

return -1;

}

void work(int n, int m) {

int i;

const int mod = 1000000007;

LL sum = 1;

for (i = n - m + 1; i <= n; i++) {

sum = (LL) i;

sum %= mod;

}

LL tmp = 1;

for (i = 2; i <= m; i++)

tmp = i, tmp %= mod;

sum = Inv(tmp, mod);

sum %= mod;

printf("%I64d\n", sum);

}

int main() {

int n, m;

while (scanf("%d%d", n, m) == 2) {

if (m [span style="color: rgba(0, 0, 0, 1)"> n) {

int tmp = m;

m = n;

n = tmp;

}//代码效果参考:http://www.ezhiqi.com/zx/art_2396.html

work(m + n - 4, n - 2);

}

return 0;

}

相关文章
|
4月前
|
存储 定位技术
【GodotV4.0-Game-Legacy Fantasy】文章内附素材(百度网盘)
【GodotV4.0-Game-Legacy Fantasy】文章内附素材(百度网盘)
|
XML 搜索推荐 网络协议
建立博客近2年,为啥在百度搜不到自己写的文章?
建立博客近2年,为啥在百度搜不到自己写的文章?
|
JavaScript PHP
js检测文章是否被百度收录
js检测文章是否被百度收录
262 0
js检测文章是否被百度收录
百度排名第一的文章内容写作的4个SEO技巧
制作满足百度排名第一的内容的4个技巧 如果有一件事比百度更重要,那就是你的内容与读者的关系。 (它有用吗?它们是否与他们的搜索意图相关联?) 搜索引擎优化因素:用户相关的内容。 关于用户相关性重要性的观点,反映在百度资源中,例如网站站长指南。
930 0
|
API PHP SEO
SEO优化:WordPress发布文章主动推送到百度,加快收录保护原创
工作实在太忙,也没时间打理网站。最近公司额外交待了一些网站 SEO 方面的优化任务让我关注(这就是啥都要会、啥都要做的苦逼运维的真实写照了...)。 于是抽空看了下百度站长平台,至少看到了2个新消息: ①、百度已全面支持https网站,并倡导说使用https会优先收录; ②、主动推送将逐步取代实时推送,实时向百度推送新数据。
1881 0
设置帝国cms文章标题 真正符合百度建站标准
  百度建站指南中有提到内容页的标题设置,标题描述清晰最好包含主站和频道信息:内容标题_频道名称_网站名称。帝国cms文章标题一般默认是内容标题_网站名称,那么如何调用当前文章的频道名称(分类名称)呢?   帝国cms已经集成了面包屑导航功能,调用方法是在需要的地方添加标签[!--newsnav-...
1282 0
|
Web App开发 安全 JavaScript
我的五年百度博客文章列表
五年前,懵懵懂懂进入百度空间,五年后,总结一下在百度上贡献的文章(技术贴)以及收藏的文章.数了数大约450篇. name    urlservlet过滤器2 解决用户非法在线 filter http://hi.
2669 0
|
Web App开发 安全 JavaScript
我的五年百度博客文章列表(带链接版)
五年前,懵懵懂懂进入百度空间,五年后,总结一下在百度上贡献的文章(技术贴)以及收藏的文章.数了数大约450篇. name   urlservlet过滤器2 解决用户非法在线filter http://hi.
2249 0
|
Web App开发
axis2开发webservices的文章。百度百科,很好。
http://wenku.baidu.com/view/76d42f6eb84ae45c3b358cc0.html
482 0