洛谷1002 容斥原理+dfs OR DP
//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的更多相关文章
- 洛谷 P5279 - [ZJOI2019]麻将(dp 套 dp)
洛谷题面传送门 一道 dp 套 dp 的 immortal tea 首先考虑如何判断一套牌是否已经胡牌了,考虑 \(dp\).我们考虑将所有牌按权值大小从大到小排成一列,那我们设 \(dp_ ...
- 洛谷 P2392 kkksc03考前临时抱佛脚, dp / 深搜
题目链接 P2392 kkksc03考前临时抱佛脚 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目 dp代码 #include <iostream> #includ ...
- 洛谷2344 奶牛抗议(DP+BIT+离散化)
洛谷2344 奶牛抗议 本题地址:http://www.luogu.org/problem/show?pid=2344 题目背景 Generic Cow Protests, 2011 Feb 题目描述 ...
- Lightning Conductor 洛谷P3515 决策单调性优化DP
遇见的第一道决策单调性优化DP,虽然看了题解,但是新技能√,很开森. 先%FlashHu大佬,反正我是看了他的题解和精美的配图才明白的,%%%巨佬. 废话不多说,看题: 题目大意 已知一个长度为n的序 ...
- 洛谷P1541 乌龟棋(四维DP)
To 洛谷.1541 乌龟棋 题目背景 小明过生日的时候,爸爸送给他一副乌龟棋当作礼物. 题目描述 乌龟棋的棋盘是一行N个格子,每个格子上一个分数(非负整数).棋盘第1格是唯一的起点,第N格是终点,游 ...
- 【洛谷】P1052 过河【DP+路径压缩】
P1052 过河 题目描述 在河上有一座独木桥,一只青蛙想沿着独木桥从河的一侧跳到另一侧.在桥上有一些石子,青蛙很讨厌踩在这些石子上.由于桥的长度和青蛙一次跳过的距离都是正整数,我们可以把独木桥上青蛙 ...
- 【题解】洛谷P1052 [NOIP2005TG] 过河(DP+离散化)
题目来源:洛谷P1052 思路 一开始觉得是贪心 但是仔细一想不对 是DP 再仔细一看数据不对 有点大 如果直接存下的话 显然会炸 那么就需要考虑离散化 因为一步最大跳10格 那么我们考虑从1到10都 ...
- 洛谷 P1784 数独[DFS/回溯]
To 洛谷.1784 数独类似题:CODEVS.4966 简单数独(4*4数独) CODEVS.2924 数独挑战) 题目描述 数独是根据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]))吧?这个有“只有对 ...
随机推荐
- CentOS7 安装、配置 Memcached
点击访问原文地址 介绍 Memcached 是一个分布式.高性能的内存缓存系统,通过缓存内存中的数据和对象,提高和加速动态 web 应用程序的性能.它主要用于加速对数据库重度使用的站点. Memcac ...
- PAT 1146 Topological Order
This is a problem given in the Graduate Entrance Exam in 2018: Which of the following is NOT a topol ...
- 关于ant引用android第三方工程打包的问题, invalid resource directory name: F:\workspace\Zlib\bin\res/crunch
转载自 https://zhidao.baidu.com/question/200134399463655885.html invalid resource directory name: F:\wo ...
- Java高级应用之泛型与反射
/*************************************************************************************************** ...
- 在JQuery中$(document.body)和这个$("body") 这两的区别在哪里?
两种写法代表的是同一个对象 $("body") 是一个选择器,jQuery 会从 DOM 顶端开始搜索,直到找到标签为 body 的元素. 而 $(document.body) 中 ...
- Ubuntu 16.04错误:The update information is outdated this may be caused by network...的问题解决
说明:这个问题没有最终的解决方案,只有不断的尝试. 错误: The update information is outdated this may be caused by network probl ...
- 一份关于jvm内存调优及原理的学习笔记(转)
JVM 一.虚拟机的基本结构 1.jvm整体架构 类加载子系统:负责从文件系统或者网络中加载class信息,存入方法区中. 方法区(Perm):存放加载后的class信息,包括静态方法,jdk1.6以 ...
- [Vue @Component] Load Vue Async Components
Vue provides a straight-forward syntax for loading components at runtime to help shave off initial b ...
- 闲聊ROOT权限——ROOT权限的前世今生
近期工作一直非常忙.居然慢慢地疏远了CSDN的博客,然而在工作中遇到问题,又会被多次的引导至CSDN,故笔者抽出时间也将自己学习的成果与大家分享在这里,希望能帮助到须要帮助的人. 本文将从几个方面,由 ...
- 错误代码: 1045 Access denied for user 'skyusers'@'%' (using password: YES)
1. 错误描写叙述 GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY "."; 1 queries e ...