【CH6802】车的放置】的更多相关文章

P1350 车的放置 设$f[i][j]$为当前推到第$i$列,该列高度$h$,已经放了$j$个车的方案数 则$f[i][j]=f[i-1][j]+f[i-1][j-1]*(h-j+1)$ 但是我们发现从左往右递推的话因为突然少掉一块,所以无法正常进行 那么从右往左就行了鸭! #include<iostream> #include<cstdio> #include<cstring> #define re register using namespace std; #de…
洛谷 P1350 车的放置 题目描述 有下面这样的一个网格棋盘,a,b,c,d表示了对应边长度,也就是对应格子数. 当a=b=c=d=2时,对应下面这样一个棋盘 要在这个棋盘上放K个相互不攻击的车,也就是这K个车没有两个车在同一行,也没有两个车在同一列,问有多少种方案.同样只需要输出答案mod 100003后的结果. 输入输出格式 输入格式: 输入文件place.in的第1行为有5个非负整数a, b, c, d和k. 输出格式: 输出文件place.out包括1个正整数,为答案mod 10000…
题目大意:给定一个 N*M 的棋盘,棋盘上有些点不能放置任何东西,现在在棋盘上放置一些车,问最多可以放置多少个车而不会互相攻击. 题解:将放置一个车看作连接一条无向边,因为每一行和每一列之间只能放置一个车,即:车的位置在 (i,j) 时,表示第 i 行和第 j 列之间放置了一个车.可以发现,一个车不会影响到其他的行和列,因此所有的行和所有列之间是没有连边的,这符合二分图的性质.根据建模,跑匈牙利算法即可,时间复杂度为 \(O((N+M)*N*M)\). 代码如下 #include <bits/s…
洛谷P1350:https://www.luogu.org/problemnew/show/P1350 思路 把矩阵分为上下两块N与M 放在N中的有i辆车 则放在M中有k-i辆车 N的长为a   宽为b M的长为a+c   宽为d 在每个矩阵中的放置种类公式如下: A(长度,车辆)*C(宽度,车辆) 给出证明: 比如对于N来说 可以在a列中找出i列放入车 所以是A(a,i) 而且有C(b,i)种选择列的方式 由此可得 枚举放在N和M的车有几辆 并计算两个矩阵种类之积即可 PS:对于矩阵M来说A为…
Problem Description 给定一个n * m的棋盘,在棋盘里放尽量多的国际象棋中的车,使他们不能相互攻击 已知有些格子不能放置,问最多能放置多少个车 并计算出必须棋盘上的必须点. Input 第一行有三个数N.M.K(1<N,M<=100 1<K<=N*M),表示了棋盘的高.宽,以及可以放“车”的格子数目.接下来的K行描述了所有格子的信息:每行两个数X和Y,表示了这个格子在棋盘中的位置. output 对输入的每组数据,按照如下格式输出: Board T have C…
[问题描述] [题解] 先考虑一个最简单的情况.如一个n*n的棋盘.然后要放k个车. 我们可以先选出k行即C(n,k); 然后在列上对这k个棋子进行一次全排列即A(n,k); 比如k = 4;N=5 选的行为1,2,3,4 然后枚举的列1,2,3,4和4,3,2,1 前者表示第一行放在1,第二行放在2,...第4行放在4.(列) 后者表示第一行放在4,第二行放在3....第4行放在1的位置.(列) 这是进行全排列的原因. 然后答案就是C(n,k)*A(n,k); 然后把原题的图切成下面的样子 然…
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];…
--DavidJing提供技术支持 现将今年7月份之前必须刷完的题目列举 完成度[23/34] [178/250] 第 1 章 贪心算法 √ [11/11] #10000 「一本通 1.1 例 1」活动安排 #10001 「一本通 1.1 例 2」种树 #10002 「一本通 1.1 例 3」喷水装置 #10003 「一本通 1.1 例 4」加工生产调度 #10004 「一本通 1.1 例 5」智力大冲浪 #10005 「一本通 1.1 练习 1」数列极差 #10006 「一本通 1.1 练习…
A. Balance 不难发现确定第一行第一列后即可确定全部,列不等式单纯形求解线性规划即可. #include<cstdio> #include<algorithm> using namespace std; typedef long long ll; typedef vector<double>VD; const int N=110; const double eps=1e-9; VD simplex(vector<VD>A, VD b, VD c){…