HDU 2125 Local area network
简单DP,N×M的网格其中有一条边坏掉了,问从起点到终点的放法数
有两种方法,一种是DP很好理解
//#define LOCAL
#include <cstdio>
#include <cstring> int dp[][];
bool flag[][]; int main(void)
{
#ifdef LOCAL
freopen("2125in.txt", "r", stdin);
#endif int r, c;
while(scanf("%d%d", &r, &c) == )
{
int y1, x1, y2, x2;
scanf("%d%d%d%d", &y1, &x1, &y2, &x2);
dp[][] = ;
memset(flag, false, sizeof(flag));
flag[x1+][y1+] = flag[x2+][y2+] = true;
for(int i = ; i <= r; ++i)
for(int j = ; j <= c; ++j)
{
dp[i][j] = dp[i-][j] + dp[i][j-];
if(flag[i][j])
{
if(flag[i][j-])
dp[i][j] -= dp[i][j-];
if(flag[i-][j])
dp[i][j] -= dp[i-][j];
}
}
printf("%d\n", dp[r][c]);
}
return ;
}
代码君
第二种,用数学公式
如果没有坏边的话,总放法数是CN-1(M+N-2)
因为每种方法都要走(M+N-2)步,向上走N-1步,向下走M-1步
现在考虑一条坏边,那么就计算经过这条坏边的方案数然后从总数里面减去即可
经过坏边的放法数就是从起点到(x1, y1)的放法数×从(x2, y2)到终点的放法数
#define LOCAL
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std; long long c(long long m, long long n)
{
if(m== || n==)
return ;
n = min(n, m-n);
long long ans = ;
for(int i = ; i < n; ++i)
ans = ans * (m-i) / (+i);
return ans;
} int main(void)
{
#ifdef LOCAL
freopen("2125in.txt", "r", stdin);
#endif int n, m;
while(scanf("%d%d", &n, &m) == )
{
int x1, y1, x2, y2;
scanf("%d%d%d%d", &x1, &y1, &x2, &y2);
if(x1+y1 > x2+y2)
{
int t = x1;
x1 = x2, x2 = t;
t = y1;
y1 = y2, y2 = t;
}
printf("%lld\n", c(m+n-, m-) - c(x1+y1, x1) * c(m+n--x2-y2, m--x2));
}
return ;
}
代码君
HDU 2125 Local area network的更多相关文章
- Real-time storage area network
A cluster of computing systems is provided with guaranteed real-time access to data storage in a sto ...
- (转)内置系统账户:Local system/Network service/Local Service 区别
最近会转载一些 MSSQL 基础相关的文章. 参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在 ...
- Local System/Network Service/Local Service
// The name of the account under which the service should run// 1 NT AUTHORITY\\SYSTEM 2 NT AUTHORIT ...
- [转帖]内置系统账户:Local system/Network service/Local Service 区别
内置系统账户:Local system/Network service/Local Service 区别 学习使用 xp_cmdshell 的时候 发现必须 sqlserver 的服务运行在local ...
- 存储区域网络(Storage Area Network,简称SAN)
存储区域网络(Storage Area Network,简称SAN)采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,通过FC交换机连接存储阵列和服 ...
- 内置系统账户:Local system/Network service/Local Service 区别
参考文献: http://www.cnblogs.com/xianspace/archive/2009/04/05/1429835.html 前言 今天在安装sqlserver2008 r2的时候,在 ...
- 关于Local System/Local Service/Network Service账户
部署或安装系统服务时需要指定服务运行的账户.一般地,可选择Local System.Local Service或Network Service账户. Local System/Local Servic ...
- linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux
tc 是linux 内置的命令:使用man pages 查看 我们看到,其功能为 show / manipulate traffic control settings,可对操作系统进行流量控制: ne ...
- Windows内置系统账户:Local system/Network service/Local Service 区别
LocalSystem 账户 LocalSystem是预设的拥有本机所有权限的本地账户,这个账户跟通常的用户账户没有任何关联,也没有用户名和密码之类的凭证.这个服务账户可以打开注册表的HKEY_LO ...
随机推荐
- leetcode course shedule
题目就不说了,问题本质就是在一个有向图中查找它是不是存在环. 上网百度了一下,方法是,找出图中入度为0 的点,将以它为起点的边去掉. 重复这一动作,直到所有的边都被去掉(没有环)或者存在边但是无法再去 ...
- 关于trello的分享
https://www.the5fire.com/trello-share.html 昨天在公司跟同事分享了关于trello的使用,这里也分享给大家.比较简单,重点是让你知道有这么个东西.tangle ...
- vi编辑器的常见使用技巧
光标移动 在普通模式下, 1.按 h 向左移动光标 按 h + 数字n 可以向右移动 n个字符 比如 h + 5 就是向左移动5个字符 2.按j向下移动光标 3.按k向上移动光标 4.按 l 向 ...
- UITbaleView上按钮的单选
设置Id属性,标记是哪个cell @property (nonatomic,assign)NSInteger Id; 设置一个普通状态和选中状态图片不同的按钮 _choose = [[UIButton ...
- DF学Mysql(一)——数据库基本操作
1.创建数据库 create Database <数据库名>; 注意:1)数据库名由字母.下划线.@.#和$组成 2)首字母不能是数字和$符号 3)不允许有空格和特殊字符 2.查看数据库 ...
- ExtJs之Ext.isEmpty
<!DOCTYPE html> <html> <head> <title>ExtJs</title> <meta http-equiv ...
- Gradle Goodness: Continue Build Even with Failed Tasks
If we run a Gradle build and one of the tasks fails, the whole build stops immediately. So we have f ...
- PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法
PHP:错误 Deprecated: Function split() is deprecated in ... 解决办法 PHP5.3 split() 不建议使用的原因:PHP 5.3.0 之后的r ...
- 一个字典通过dictionaryWithDictionary 他们的内存指针是不同的
一个字典通过dictionaryWithDictionary 他们的内存指针是不同的 来自为知笔记(Wiz)
- Spring中 @Autowired注解与@Resource注解的区别
Spring中 @Autowired注解与@Resource注解的区别在Spring 3.X中经常使用到@Autowired和@Resource进行装配.这两个注解的差异在何处???相同点:@Reso ...