题目戳这里

描述

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

我们将他们所在城市的道路网视作无限大的正交网格图,每一个整数点 (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. HTML5 canvas绘制雪花飘落

    Canvas是HTML5新增的组件,它就像一块幕布,可以用JavaScript在上面绘制各种图表.动画等. 没有Canvas的年代,绘图只能借助Flash插件实现,页面不得不用JavaScript和F ...

  2. 新概念英语(1-9)How is Ema?

    A:Hello Helen. B:Hi Steven. A:How are you today? B:I'm very well, thank you. And you? A:I'm fine tha ...

  3. c#**************

    ddfbvbb c v我wossssssss

  4. PHP7链接MySQL

    1 <?php $mysqli = new mysqli("localhost", "root", "123"); if($mysql ...

  5. python中两种方法实现二分法查找,细致分析二分法查找算法

    之前分析了好多排序算法,可难理解了呢!!(泣不成声)这次我要把二分查找总结一下,这个算法不算难度特别大,欢迎大家参考借鉴我不喜欢太官方的定义,太晦涩的语言,让人看了就头晕.我希望加入我自己的理解,能帮 ...

  6. CMDB资产采集

    Agent(方式) 1:服务器每台都需要安装Agent 达到采集速度快,简单:造成性能损耗 获取每台服务器的资产并有返回值:v=subprocess.getoutput('dir')或者ipconfi ...

  7. shell:bash环境

    1.什么是shell shell一般代表两个层面的意思,一个是命令解释器,比如BASH,另外一个是shell脚本. 命令解释器shell的发展史,sh-csh-ksh-tcsh-bash. 2.命令的 ...

  8. codeforces 798c Mike And Gcd Problem

    题意: 给出一个数列,现在有一种操作,可以任何一个a[i],用a[i] – a[i+1]和a[i]+a[i+1]替代a[i]和a[i+1]. 问现在需要最少多少次操作,使得整个数列的gcd大于1. 思 ...

  9. eclipse点击包(package)时报错,安装hibernate后点击包报错org/eclipse/jpt/common/utility/exception/ExceptionHandler

    错误描述: 当我们点击包名时,出现如下错误提示.An error has occurred. See error log for more details.org/eclipse/jpt/common ...

  10. java同时连接db2和mysql的程序

    db2的jar包安装参见:http://www.cnblogs.com/zifeiy/p/7918554.html 代码: package com.anbank.datafetch; import j ...