题目戳这里

描述

小雪与小可可吵架了,他们决定以后互相再也不理对方了。尤其是,他们希望以后上学的路上不会再相遇。

我们将他们所在城市的道路网视作无限大的正交网格图,每一个整数点 (x,y) 对应了一个路口,相邻两个整数点之间有一条平行于 x 轴或平行于 y 轴的道路,其道路长度为 1。已经知道小雪家住在 (x_1,0) 处的路口附近,小可可的家住在 (x_2,0) 处的路口附近。另外我们还知道,小雪的学校在 (0,y_1) 处的路口附近,小可可的学校在 (0,y_2) 处的路口附近。其中保证 x_1 < x_2 且 y_1 < y_2。

因为上学不能迟到,所以小雪和小可可总是希望可以走最短路径去上学。同时为了避免见面,希望他们所选择的路线可以没有交点。

格式

输入格式

输入的第一行输入四个正整数,依次为 x_1, x_2, y_1, y_2,满足 x_1 < x_2 且 y_1 < y_2。

输出格式

在输出中,输出一个非负整数,表示可行方案的总数 ans 关于常数 10^9+7 取余后的值。

样例1

样例输入1

1 2 1 2

样例输出1

3

样例2

样例输入2

2 3 2 4

样例输出2

60

样例3

样例输入3

4 9 3 13

样例输出3

16886100

限制

对于30%的数据,0 < x_1,x_2,y_1,y_2<=500。
对于70%的数据,0 < x_1,x_2,y_1,y_2<=3000。
对于100%的数据,0 < x_1,x_2,y_1,y_2<=100000。

  本题考虑用容斥的思想。对于任意的最短路径path1和path2,若相交,则存在一个交点x。在x处交换两个路径,得到新的路径path3和path4,满足path3从(x1,0)到(0,y2)而path4从(x2,0)到(0,y1)。综上所述,整个问题的最后结果=“(x1,0)到(0,y1)的方案数”ד(x2,0)到(0,y2)的方案数”-“(x1,0)到(0,y2)的方案数”ד(x2,0)到(0,y1)的方案数”。

  

  怎么求方案数?

  ●平面直角坐标系中,从(0,0)走到(x,y)的最短路方法有多少种(只能沿xy轴正方向走)

  答案C(y+x,x)或者C(y+x,y)一共要走n+m步,从中选几步向上走或右走

#include<cstdio>
#include<algorithm>
#include<iostream>
#include<cstring>
#define ll long long
#define mod 1000000007
using namespace std;
int x1,x2,y1,y2,fac[200005]; void pre(){
fac[1]=1;
for(int i=2;i<=y2+x2+10;i++)
fac[i]=1ll*fac[i-1]*i%mod;
} int mul(int a,int b){
int ans=1;
while(b){
if(b&1)ans=1ll*ans*a%mod;
a=1ll*a*a%mod;b>>=1;
}
return ans;
} int calc(int x,int y){
int ans=1ll*fac[x+y]*mul(fac[x],mod-2)%mod;
ans=1ll*ans*mul(fac[y],mod-2)%mod;
return ans;
} int main(){
scanf("%d%d%d%d",&x1,&x2,&y1,&y2);pre();
int t1=1ll*calc(x1,y1)*calc(x2,y2)%mod;
int t2=1ll*calc(x1,y2)*calc(x2,y1)%mod;
printf("%d",(t1-t2+mod)%mod);
return 0;
}

  

【vijos1943】上学路上的更多相关文章

  1. [AHOI2015 Junior] [Vijos P1943] 上学路上 【容斥+组合数】

    题目链接:Vijos - P1943 题目分析 这是 AHOI 普及组的题目,然而我并不会做= =弱到不行= = 首先,从 (x, 0) 到 (0, y) 的最短路,一定是只能向左走和向上走,那么用组 ...

  2. 2月4日 考试——迟到的 ACX

    迟到的 ACX 时限:1s 内存限制:128MB题目描述: 今天长沙下雪了,小 ACX 在上学路上欣赏雪景,导致上学迟到,愤怒的佘总给 ACX 巨佬出了一个题目想考考他,现在他找到你,希望你能帮帮他. ...

  3. 浅谈P/NP问题

    克雷数学研究所(Clay Mathematics Institute,CMI)是在1998年由商人兰顿·克雷(Landon T. Clay)和哈佛大学数学家亚瑟·杰夫(Arthur Jaffe)创立, ...

  4. CSP-J&S2019第二轮游记认证

    Day 0 我毕竟不是竞赛省,在黑龙江这个弱省任何初中都没有竞赛生的----在初中,文化课第一----永远如此. 因而,我并不能翘掉周五的文化课来复习或是提前前往省城参加下午2:00~6:00的试机. ...

  5. 《深入理解Java虚拟机》第 3 版里面到底多了哪些知识点?本文竟然得到了本书作者的认可!

    这是why的第 47 篇原创文章 荒腔走板 大家好,我是 why.老规矩,先是简短的荒腔走板聊聊生活. 上面的图是前几天拍的,那天晚上下班后,刚刚走进小区就看到了这一轮弯月和旁边那一颗特别特别亮的星星 ...

随机推荐

  1. 使用XIB的UITableViewCell自适应,以及出现的问题进行解决

    1.首先需要定义一个属性 @property (nonatomic, strong) UITableViewCell *prototypeCell; 2.在创建完tableView后加上如下代码 se ...

  2. 亚马逊的PuTTY连接AWS出现network error connection refused,终极解决方案。

    使用PuTTY连接AWS的时候,一直出现network error connection refused.百度了这个问题,大家都说是SSH要设置成22.但是我已经设置过了,为什么还是遇到这个问题呢? ...

  3. itchat 微信的使用

    #coding=utf8 import itchat # 自动回复 # 封装好的装饰器,当接收到的消息是Text,即文字消息 @itchat.msg_register('Text') def text ...

  4. Web Api 利用 cors 实现跨域

    一.安装 cors 二.修改 Web.config <appSettings> <add key="cors:allowedMethods" value=&quo ...

  5. 使用HTML5视频事件示例

    <!DOCTYPE html > <html > <head> <title>Video events example</title> &l ...

  6. Mego开发文档 - 处理并发冲突

    处理并发冲突 数据库并发是指多个进程或用户同时访问或更改数据库中的相同数据的情况.并发控制是指用于确保存在并发更改时数据一致性的特定机制. Mego实现了乐观并发控制,这意味着它可以让多个进程或用户独 ...

  7. 使用cxf创建webservice 出现timeOut的问题,设置spring超时时间

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  8. Mosquito集群模式

    参考链接: http://blog.csdn.net/z729685731/article/details/70142182 http://blog.csdn.net/yuhaiyang457288/ ...

  9. Swagger: 一个restful接口文档在线生成+功能测试软件

    一.什么是 Swagger? Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.Swagger 是一个规范和完整的框架,用于生成.描述.调用和可视化 RESTful 风格的 ...

  10. redis入门(14)redis集群下的数据分区存储

    redis入门(10)redis集群下的数据分区存储