P4304 [TJOI2013]攻击装置】的更多相关文章

$ \color{#0066ff}{ 题目描述 }$ 给定一个01矩阵,其中你可以在0的位置放置攻击装置. 每一个攻击装置(x,y)都可以按照"日"字攻击其周围的8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1),(x+1,y+2),(x+2,y+1) 求在装置互不攻击的情况下,最多可以放置多少个装置.某地方有N个工厂,有N-1条路连接它们,且它们两两都可达.每个工厂都有一个产量值和一个污染值.现在工厂要进行规…
题目链接: https://www.luogu.org/problemnew/show/P4304 分析: 最大独立集 最大独立集=总点数-最大匹配数 独立集:点集,图中选一堆点,这堆点两两之间没有连边 最大独立集:尽可能多得选点,使得其满足独立集的性质 这是网络流二分图经典题目,值得练习 代码: #include<cstdio> #include<utility> #include<vector> using namespace std; int x[9]={0,-1…
传送门 看到棋盘先黑白染色冷静一下 然后发现...攻击的时候同种颜色不会相互攻击 这样就是个网络流经典套路了,关于这个套路我以前好像写过几题,那边有解释一下:传送门 #include<iostream> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include<queue> using namespace std; typedef l…
把坐标按照(x+y)%2染色可以发现这是个二分图 二分图最大独立集=点数-最大匹配 于是就是个算匹配的傻逼题了 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define il inline #define vd void typedef long long ll; il int gi(){ int x=0,f=1; char ch=getchar(); while(!isdigit(ch)){ if(ch=='-')f=-1; ch=g…
题目大意:一个矩阵,一些点被拿掉,在棋盘上马走日,马之间不能落在同一点,求最多放几匹马. 采用对矩阵黑白染色,画个图可以发现:马可以走到的位置和他所处的位置颜色不同,将马和他可以走到的位置连边,最多可以放多少马,相当于求图的最大独立集(任意一条边的两个端点不会同时被选中). 用黑白染色将节点按颜色分成两类,就是一个二分图. 题解代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define maxn 40000 4 struct e…
P4304 [TJOI2013]攻击装置 题目描述 给定一个01矩阵,其中你可以在0的位置放置攻击装置. 每一个攻击装置(x,y)都可以按照“日”字攻击其周围的8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1),(x+1,y+2),(x+2,y+1) 求在装置互不攻击的情况下,最多可以放置多少个装置. 输入输出格式 输入格式: 第一行一个整数N,表示矩阵大小为N*N. 接下来N行每一行一个长度N的01串,表示矩阵. 输出…
题解: 最大点独立集...好像水过头了... 不过发现我二分图好像忘完了!!! 代码: #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #include<algorithm> #include<iostream> #include<vector> #include<map> #include<set> #inc…
黑白染成二分图, 然后不能同时选的就连边, 最大匹配数为m, t为不能放的数目, 则题目所求最大点独立集为 n*n-m-t ------------------------------------------------------------------------- #include<cstdio> #include<cstring> #include<algorithm>   using namespace std;   const int maxn = 209;…
[BZOJ4808]马 Description 众所周知,马后炮是中国象棋中很厉害的一招必杀技."马走日字".本来,如果在要去的方向有别的棋子挡住(俗称"蹩马腿"),则不允许走过去.为了简化问题,我们不考虑这一点.马跟马显然不能在一起打起来,于是rly在一天再次借来了许多许多的马在棋盘上摆了起来……但这次,他实在没兴趣算方案数了,所以他只想知道在N×M的矩形方格中摆马使其互不吃到的情况下的最多个数.但是,有一个很不幸的消息,rly由于玩得太Happy,质量本来就不好…
3175: [Tjoi2013]攻击装置 Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Out…
BZOJ_3175_[Tjoi2013]攻击装置_二分图匹配Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置.Input第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示…
bzoj4808: 马 & bzoj3175: [Tjoi2013]攻击装置 题目:传送门 简要题意: 和n皇后问题差不多,但是这里是每个棋子走日子,而且有些格子不能放棋子.求最多能放多少个棋子. 题解: 双倍经验好评 之前看过机房神犇做...有点印象是最小割. 但是直接割的话不会...要应用到黑白染色: 最开始我想递归染色,也就是取一个开始染,然后递归下去... 波老师说会错ORZ...因为感觉递归的情况不好掌握,有可能会重复染色... 结果有一个肥肠巧妙的方法...直接相邻的染为不同颜色 之…
传送门 Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照"日"字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1) 求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Output 一个整数,表示…
题目描述 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置. 输入 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. 输出 一个整数,表示在装置互不攻击的情况下最多可以放置多少个装置.…
Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1) 求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Output 一个整数,表示在装置互不攻击的情…
Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照"日"字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1) 求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Output 一个整数,表示在装置互…
捉水题真是捉上瘾了TUT Description 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1)求在装置互不攻击的情况下,最多可以放置多少个装置. Input 第一行一个整数N,表示矩阵大小为N*N.接下来N行每一行一个长度N的01串,表示矩阵. Output 一个整数…
前言 网络流被hbx吊起来打 Solution 考虑一下这个走法是不是和象棋中马的走法一模一样(废话) 那么显然我每一次移动是走三次,如果将棋盘二分图染色一下,不就是每一次只能走到另一个颜色的吗? 然后我们题目中求的是最多可以放置多少个装置,不能够攻击,也就是一个裸的二分图最小割? 直接最大流求一下做个减法就没了. 代码实现 #include<stdio.h> #include<stdlib.h> #include<string.h> #include<math.…
题目 癌我竟然会做 发现我们要求的是一个最大独立集问题 发现一个格子和能攻击到的格子的奇偶性和它都不同,于是我们就可以按照\(i+j\)的奇偶性把整张图分成两个部分 两个部分之间没有连边 于是二分图最大独立集=总点数-最小点覆盖 最小点覆盖=最大匹配 代码 #include<queue> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> #defin…
每两个能互相攻击且能放置的点连一条双向边,然后跑二分图最大点独立集即可 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstring> #include<cstdio> #include<cmath> using namespace std; typedef long long LL; #define M 80010 #define N 210 st…
终于知道为啥网络流这么受欢迎了. 其实就是构个图模板一下的事儿,比较好打是吧. 然后这题网络流黑白染色(其实感觉上匈牙利更加直接好想啊,但是实际上黑白染色给人感觉就是二分图) st连白而ed连黑,流量为1 不能同时出现的就建无限流量的边 然后sum-最小割 #include<cstdio> #include<iostream> #include<cstring> #include<cstdlib> #include<algorithm> #inc…
给定 \(N \times N\) 棋盘,某些格子是障碍,问可以放置的互不侵犯的马的个数 黑白染色后建立二分图,求最大独立集 = 总点数 - 最大匹配数 注意把反边也连上会WA掉(脑抽一发血) #include <bits/stdc++.h> using namespace std; // Input: make(u,v,w) // Solver: int solve(s,t); // Output: ans(returned) namespace flow { const int maxn…
[题目大意] 给定一个01矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置(x,y)都可以按照“日”字攻击其周围的 8个位置(x-1,y-2),(x-2,y-1),(x+1,y-2),(x+2,y-1),(x-1,y+2),(x-2,y+1), (x+1,y+2),(x+2,y+1).求在装置互不攻击的情况下,最多可以放置多少个装置. [思路] 最大独立集=总点数-最大二分图匹配 我们都知道最大独立集一般用在二分图里…所以把每个点看作两个点,一个是从它出发,一个是抵达它.实际操作的时候因为…
题目链接 戳我 \(solution\) 这道题和网络24题之骑士共存问题很相似 只是输入方式不一样而已 详细见:这儿 \(Code\) #include<bits/stdc++.h> #define file(a) freopen(a".in","r",stdin);freopen(a".out","w",stdout) #define rg register using namespace std; typed…
题目链接:https://www.luogu.org/problemnew/show/P2172 分析: 不要被[国家集训队]的标签吓到,其实这题不是很难. 本题可以对比P4304 [TJOI2013]攻击装置:互不攻击的网络流问题来想. 这道题唯一添加的条件就是只能从上往下征战,于是我们就从8个方向缩减到了四个放向,哪四个呢? aa[1]=r;bb[1]=-c; aa[2]=r;bb[2]=c; aa[3]=c;bb[3]=-r; aa[4]=c;bb[4]=r; 变量名较丑 然后还是要循环每…
不知不觉AC100题了,放眼望去好像都是水题.在这里就做一个存档吧(特别感谢各位大神尤其是云神http://hi.baidu.com/greencloud和丽洁姐http://wjmzbmr.com/的blog提供的题解) 代码什么的有时间在放. 1000: A+B Problem 好吧,这也算题,记得我第一次直接copy然后他不给我加库然后就CE了= = 1001: [BeiJing2006]狼抓兔子 一道经典的最小割对偶图转spfa,参见白书,第一次打时按边建图然后TLE得很惨,然后又重打了…
写在前面的.. 要去WC了好开心的呢.. 但是之前荒废了好多时间呢.. 好吧从明天开始加紧训练,目标是:WC前bzoj300t..(现在是260呢..) 开始吧 来看看完成情况: 40/40 [2017.1.12] 比较荒废的一天.. 满脑子就是查成绩.. 考得好差没心情.. 真的是太影响了整天才做了2道题..(有道题想错了搞了一个下午加半个晚上还没搞出来,真的sb) 3195: [Jxoi2012]奇怪的道路 定义$f_{i,j,state}$表示在处理第$i$个位置,已经连了$j$条边,后面…
Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem 10983 18765 Y 1036 [ZJOI2008]树的统计Count 5293 13132 Y 1588 [HNOI2002]营业额统计 5056 13607 1001 [BeiJing2006]狼抓兔子 4526 18386 Y 2002 [Hnoi2010]Bounce 弹飞绵羊 43…
本篇博客按照题号排序(带*为推荐题目) 1008 [HNOI2008]越狱 很经典的题了..龟速乘,龟速幂裸题,, 1010 [HNOI2008]玩具装箱toy* 斜率优化 基本算是裸题. 1012 最大数 单调队列/单调栈 随便搞一搞就好 (水题...) 1045 糖果传递(双倍经验请做 3293 分金币) 贪心+中位数  排序后搞一搞可过..(水题...) 1051 受欢迎的牛* tarjan (提高T1+ -- T2难度) 1106: [POI2007]立方体大作战tet* 树状数组+贪心…
题目: 给定一个01 矩阵,其中你可以在0的位置放置攻击装置.每一个攻击装置 (x,y) 都可以按照“日”字攻击其周围八个位置(x−1,y−2),(x−2,y−1),(x+1,y−2),(x+2,y−1),(x−1,y+2), (x−2,y+1),(x+1,y+2),(x+2,y+1). 求在装置不相互攻击的情况下,最多可以放置多少个装置. 输入 第一行一个整数 N,表示矩阵大小为 N*N.接下来 N 行是一个长度为N的01 串,表示矩阵.(N <= 200) 输出 一个整数,表示在装置不相互攻…