AcWing P373 車的放置】的更多相关文章

Analysis 这道题是二分图匹配,设可以放車的的地方的坐标为(i,j),则连一条i到j的有向边(注意是有向边),然后再跑匈牙利算法就好了.时间复杂度是O(nm(n+m)),在1≤n,m≤200的情况下可以接受. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 205 using namespace std; inline int…
6802 車的放置 0x60「图论」例题 描述 给定一个N行M列的棋盘,已知某些格子禁止放置.问棋盘上最多能放多少个不能互相攻击的車.車放在格子里,攻击范围与中国象棋的"車"一致.N,M≤200. 输入格式 第一行为n,m,t(表示有t个禁止的格子) 第二行到t+1行为x,y,分别表示禁止格子所在的位置,x为第x行,y为第y列,行列编号从1开始. 输出格式 一个整数,表示最多能放多少个車. 样例输入 8 8 0 样例输出 8 题解 把行.列看成节点 1要素:行节点.列节点只能放一个 0…
原题链接 和棋盘覆盖(题解)差不多. 将行和列看成\(n+m\)个节点,且分属两个集合,如果某个节点没有被禁止,则行坐标对应节点向列坐标对应节点连边,然后就是求二分图最大匹配了. #include<cstdio> #include<cstring> using namespace std; const int N = 410; int fi[N], di[N], ne[N], mtc[N], l; bool v[N], a[N >> 1][N >> 1];…
[题解]宫廷守卫 [P1263] 传送门:宫廷守卫 \([P1263]\) [题目描述] 给出一个 \(n*m\) 的方格图,分别用整数 \(0,1,2\) 表示空地.陷阱.墙,空地上可以放置守卫,如果两个守卫在同一行或同一列且他们之间没有墙的阻挡,那么他们就会互相看见.求最多可以放置多少个守卫使得他们互相无法看见对方,并输出其中一种方案. [样例] 样例输入: 3 4 2 0 0 0 2 2 2 1 0 1 0 2 样例输出: 2 1 2 3 3 [数据范围] \(100 \%:\) \(1…
展开 题目描述 在一个 n*n个方格的国际象棋棋盘上,马(骑士)可以攻击的棋盘方格如图所示.棋盘上某些方格设置了障碍,骑士不得进入 对于给定的 n*n 个方格的国际象棋棋盘和障碍标志,计算棋盘上最多可以放置多少个骑士,使得它们彼此互不攻击 输入格式 第一行有 2 个正整数n 和 m (1<=n<=200, 0<=m<n2),分别表示棋盘的大小和障碍数.接下来的 m 行给出障碍的位置.每行 2 个正整数,表示障碍的方格坐标. 输出格式 将计算出的共存骑士数输出 输入输出样例 输入  …
当一个人看见星空,就再无法忍受黑暗 为了点亮渐渐沉寂的星空 不想就这样退役 一定不会鸽の坑 . 一本通提高篇 . 算竞进阶 . CDQ & 整体二分 . 平衡树 . LCT . 字符串 . 随机化算法 . 图论 . 双向BFS . 组合数学 . 同余 UNFINISHED LIST 提高 道路和航线 汽车加油行驶问题 皇宫看守 旅游规划 凸多边形的划分 跳跳棋 叶子的颜色 骑士 旅行问题 股票交易 算竞 Picnic Planning 天天爱跑步 疫情控制 岛屿 Freda的传呼机 PKU AC…
Analysis 这道题跟前几道题差不多,依旧是匈牙利算法求二分图匹配,在连边的时候,要连两个矛盾的位置(即一个骑士和其控制的位置).然后就跑一遍匈牙利算法就好了. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxn 110 using namespace std; inline int read() { ; ; char c=getch…
大型补档计划 题目链接 预处理每个列.行连续块. 每个每个列行只能在一个位置匹配,否则冲突. 符合二分图性质,跑匈牙利即可. 点数最坏情况 \(N * M\) (墙空地相间分布),边数最坏情况 \(N * M\) (每个点最多会加一条边),所以复杂度 \(O(N ^ 2M ^ 2)\) 跑得动 #include <cstdio> #include <iostream> #include <cstring> using namespace std; const int N…
题目大意: Description 众所周知,車是中国象棋中最厉害的一子之一,它能吃到同一行或同一列中的其他棋子.車跟車显然不能在一起打 起来,于是rly一天又借来了许多许多的車在棋盘上摆了起来……他想知道,在N×M的矩形方格中摆最多个数的車 使其互不吃到的情况下方案数有几种.但是,由于上次摆炮摆得实在太累,他为了偷懒,打算增加一个条件:对于 任何一个車A,如果有其他一个車B在它的上面(車B行号小于車A),那么車A必须在車B的右边(車A列号大于車B) . 棋子都是相同的. Input 一行,两个…
题目:蒙德里安的梦想 链接:(蒙德里安的梦想)[https://www.acwing.com/problem/content/293/] 题意:求把N * M的棋盘分割成若干个1 * 2的长方形,有多少种方案. 例如当N = 2,M = 4时,共有5种方案,当N = 2,M = 3时,共有3种方案 分析: 1.当把所有横着的长方形放置好后,那么竖着的长方形的放置方法是唯一的 2.f[i, j]表示放置第i列时,第i列的状态是j的所有方案,j表示从第i - 1列伸出方块到第i列的状态 3.竖着的空…