//By SiriusRen
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,sx,sy,xx[]={,,,,-,-,-,-,},yy[]={,-,,-,,-,,-,};
int stk1[],stk2[],stk[],C[][],Ans,top;
bool check(int x,int y){return x>=&&y>=&&x<=n&&y<=m;}
int solve(int dep){
int lastx=,lasty=,ans=;
for(int i=;i<=dep;i++){
int tx=stk1[stk[i]]-lastx,ty=stk2[stk[i]]-lasty;
// printf("tx=%d ty=%d\n",tx,ty);
ans*=C[tx+ty][tx];
lastx=stk1[stk[i]],lasty=stk2[stk[i]];
}
int tx=n-lastx,ty=m-lasty;
return ans*C[tx+ty][tx];
}
void dfs(int x,int y,int nw,int dep){
if(dep&)Ans-=solve(dep);
else Ans+=solve(dep);
// printf("x=%lld y=%lld dep=%lld Ans=%lld\n",x,y,dep,solve(dep));
for(int i=;i<=top;i++){
if(i!=nw&&stk1[i]>=x&&stk2[i]>=y){
stk[dep+]=i;
dfs(stk1[i],stk2[i],i,dep+);
}
}
}
signed main(){
scanf("%lld%lld%lld%lld",&n,&m,&sx,&sy);
for(int i=;i<=;i++){
C[i][]=C[i][i]=;
for(int j=;j<i;j++)
C[i][j]=C[i-][j-]+C[i-][j];
}
for(int i=;i<=;i++){
int dx=sx+xx[i],dy=sy+yy[i];
if(check(dx,dy))stk1[++top]=dx,stk2[top]=dy;
}
dfs(,,,);
printf("%lld\n",Ans);
}
//By SiriusRen
#include <stdio.h>
long long n,m,sx,sy,i,j,vis[][],F[][],xx[]={,,,,-,-,-,-,},yy[]={,-,,-,,-,,-,};
int check(int x,int y){return x>=&&y>=&&x<=n&&y<=m;}
signed main(){
scanf("%I64d%I64d%I64d%I64d",&n,&m,&sx,&sy);
for(i=;i<=;i++){
int dx=sx+xx[i],dy=sy+yy[i];
if(check(dx,dy))vis[dx][dy]=;
}
F[][]=;
for(i=;i<=n;i++){
for(j=;j<=m;j++)if(!vis[i][j]){
if(i)F[i][j]+=F[i-][j];
if(j)F[i][j]+=F[i][j-];
}
}printf("%I64d\n",F[n][m]);
return ;
}

洛谷1002 容斥原理+dfs OR DP的更多相关文章

  1. 洛谷 P5279 - [ZJOI2019]麻将(dp 套 dp)

    洛谷题面传送门 一道 dp 套 dp 的 immortal tea 首先考虑如何判断一套牌是否已经胡牌了,考虑 \(dp\)​​​​​.我们考虑将所有牌按权值大小从大到小排成一列,那我们设 \(dp_ ...

  2. 洛谷 P2392 kkksc03考前临时抱佛脚, dp / 深搜

    题目链接 P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目 dp代码 #include <iostream> #includ ...

  3. 洛谷2344 奶牛抗议(DP+BIT+离散化)

    洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...

  4. Lightning Conductor 洛谷P3515 决策单调性优化DP

    遇见的第一道决策单调性优化DP,虽然看了题解,但是新技能√,很开森. 先%FlashHu大佬,反正我是看了他的题解和精美的配图才明白的,%%%巨佬. 废话不多说,看题: 题目大意 已知一个长度为n的序 ...

  5. 洛谷P1541 乌龟棋(四维DP)

    To 洛谷.1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游 ...

  6. 【洛谷】P1052 过河【DP+路径压缩】

    P1052 过河 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙 ...

  7. 【题解】洛谷P1052 [NOIP2005TG] 过河(DP+离散化)

    题目来源:洛谷P1052 思路 一开始觉得是贪心 但是仔细一想不对 是DP 再仔细一看数据不对 有点大 如果直接存下的话 显然会炸 那么就需要考虑离散化 因为一步最大跳10格 那么我们考虑从1到10都 ...

  8. 洛谷 P1784 数独[DFS/回溯]

    To 洛谷.1784 数独类似题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据9×9盘面上的已知数字,推理出所有剩余空格的数字,并满足每一行 ...

  9. 洛谷1736(二维dp+预处理)

    洛谷1387的进阶版,但很像. 1387要求是“全为1的正方形”,取dp[i][j] = min(dp[i-1][j-1], min(dp[i-1][j], dp[i][j-1]))吧?这个有“只有对 ...

随机推荐

  1. 腾讯云,搭建Http静态服务器环境

    任务时间:15min ~ 30min 搭建静态网站,首先需要部署环境.下面的步骤,将告诉大家如何在服务器上通过 Nginx 部署 HTTP 静态服务. 安装 Nginx 在 CentOS 上,可直接使 ...

  2. PAT 1134 Vertex Cover

    A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at le ...

  3. flask——CSRFToken保护

    根据 csrf_token 校验原理,具体操作步骤有以下几步: 1.后端生成 csrf_token 的值,在前端请求登录或者注册界面的时候将值传给前端,传给前端的方式可能有以下两种: 在模板中的 Fr ...

  4. Apache Maven Cookbook(八)学习笔记-Handling Typical Build Requirements

    Including and excluding additional resources Using the Maven Help Plugin: mvn help:effective-pom mvn ...

  5. JavaSE 学习笔记之Jdk5.0新特性(十九)

    Jdk5.0新特性: Collection在jdk1.5以后,有了一个父接口Iterable,这个接口的出现的将iterator方法进行抽取,提高了扩展性. --------------------- ...

  6. 生产(production)

    [题目描述] 工厂为了生产一种复杂的产品,给各个生产部门制定了详细的生产计划.那么,就经常会有生产部门要把产品送到另一个生产部门作为原料.这是一个注重产品质量的工厂,所以每当有产品要从A部门运到B部门 ...

  7. codevs—— 1077 多源最短路

    1077 多源最短路  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 黄金 Gold 题解       题目描述 Description 已知n个点(n<=100),给你 ...

  8. 16、Java并发性和多线程-死锁

    以下内容转自http://ifeve.com/deadlock/: 死锁是两个或更多线程阻塞着等待其它处于死锁状态的线程所持有的锁.死锁通常发生在多个线程同时但以不同的顺序请求同一组锁的时候. 例如, ...

  9. 拉普拉斯分布,高斯分布,L1 L2

    之前那篇文章里提到,L1其实是加上服从拉普拉斯分布的先验,L2是加上服从高斯分布的先验: http://www.cnblogs.com/charlesblc/p/7977732.html 那么记住拉普 ...

  10. 使用jconsole监控远程JVM

    使用jconsole监控远程JVM 学习了:https://www.linuxidc.com/Linux/2015-02/113420.htm https://www.cnblogs.com/thin ...