Tsinsen A1110 街道
来源:互联网 发布:福州数据分析师 编辑:程序博客网 时间:2024/04/27 14:56
http://oj.tsinsen.com/A1110
分析:简单dp就行了。
一、初始化:dp[0][i] = dp[i][0] = 0, dp[1][1] = 1
二、递推公式dp[i][j] = (CanArrive_ij) ? dp[i - 1][j] + dp[i][j - 1] : 0
三、需要注意的就是数比较大,要用大整数,不过这个大整数不需要什么特性,数位都限制好了,很好写。
代码:
#include "bits/stdc++.h"using namespace std;class BigInt {public: int num[20]; BigInt() { memset(num, 0, sizeof(num)); } friend BigInt operator + (BigInt & v, BigInt & u) { BigInt res; int t = 0; for (int i = 0; i < 20; ++i) { res.num[i] = v.num[i] + u.num[i] + t; t = res.num[i] / 10; res.num[i] %= 10; } return res; }};BigInt dp[55][55];int n, m, a, b, c, d;int main() { scanf("%d%d%d%d%d%d", &n, &m, &a, &b, &c, &d); dp[1][1].num[0] = 1; for (int i = 1; i <= n; ++i) for (int j = 1; j <= m; ++j) { if (i >= a && i <= c && j >= b && j <= d) continue; if (i != 1 || j != 1) dp[i][j] = dp[i - 1][j] + dp[i][j - 1]; } int p = 19; while (dp[n][m].num[p] <= 0) --p; for ( ; p >= 0; --p) printf("%d", dp[n][m].num[p]); return 0;}
0 0
- Tsinsen A1110 街道
- 清橙网A1110. 街道
- 街道
- PAT-A1110
- A1110. Complete Binary Tree (25)
- 街道管理
- 街道管理
- 街道管理
- 穿过街道
- PermissionBean.java ( 编号:20110621A1110 )
- PAT A1110. Complete Binary Tree (25/15)
- pat-a1110. Complete Binary Tree (25)
- tsinsen A1329. 特技飞行
- Tsinsen-A1102 字符串编辑
- Tsinsen A1100 乘法运算
- Tsinsen A1101 格子位置
- Tsinsen A1102 字符串编辑
- Tsinsen A1103 比赛安排
- python爬虫学习--pixiv爬虫(3)--关注用户作品爬取
- Libgdx之Sprite 精灵类
- 如何在GitHub上建立项目演示页面
- leetcode之Odd Even Linked List
- 连封面都是递归——《你好哇,程序员——漫话程序员面试求职、升职加薪、创业与生活》
- Tsinsen A1110 街道
- AJAX
- s2:VB之如何在15个数中把最小的数放在最后
- 剑指offer刷题系列说明
- Exchanger用于线程间交换数据
- iOS程序优化要点
- 脚本引擎Rhino执行javascript代码
- 蜥蜴[SCOI2007,BZOJ 1066]
- 排序算法 及其稳定性解释