P3877 [TJOI2010]打扫房间】的更多相关文章

首先整理一下条件: 1.恰好进出每个需打扫的房间各一次 2.进出每个房间不能通过同一个门 (其实前两个条件是一回事) 3.要求每条路线都是一个闭合的环线 4.每条路线经过的房间数大于2 让你在一个n*m的矩阵中,找出是否能按照约定方案打扫全部指定房间. 首先不难得出一个结论:有奇数个需要打扫的房间时一定无解. 证明? 每一次打扫都要满足条件3和4,而闭合的环线为多边形,显然必须对称(即通过平移可得到矩形),不难看出:每一次都能且只能打扫偶数个房间. 然后稍作分析,发现每个格子的度为2(即进入此房…
正解:网络流 解题报告: 传送门$QwQ$ 昂考虑把题目的约束条件详细化?就说每个格点能向四连通连边,问能否做到每个格点度数等于2? $umm$就先黑白染色建两排点呗,然后就$S$向左侧连流量为2的边右侧向$T$连流量为2的边,然后四连通之间连流量为1的边,跑个最大流看跑满没有,然后就做完了?$QwQ$ 解释下趴还是,,,毕竟我之前没解释重新看一遍我题解都没想通$QAQ$ 首先找出题目的所有约束条件$QwQ$ 1)每个房间进出各一次 2)每扇门最多经过一次 3)环长大于2 昂条件一等价于每个点度…
xswl以为是个插头dp,然后发现就是个sb题 相当于就是个匹配.每个格子度数为2,所以可以匹配2个相邻的点.匹配显然的用网络流.最后check有没有不匹配的点即可. #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…
题目描述 学校新建了一批宿舍,值日生小A要把所有的空房间都打扫一遍.这些宿舍的布局很奇怪,整个建筑物里所有的房间组成一个N * M的矩阵,每个房间的东南西北四面墙上都有一个门通向隔壁房间.另外有些房间是堆放杂物的,无需打扫.小A想设计若干条打扫路线,使得恰好进出每个需打扫的房间各一次,而且进出每个房间不能通过同一个门.要求每条路线都是一个闭合的环线,并且每条路线经过的房间数大于2. 如下面两图所示均为满足要求的打扫方案(灰色格子为放杂物的房间): 小A发现对于某些房间布局是不存在这样的满足要求的…
传送门 真是菜死了模板题都不会-- 首先\(30 \times 30\)并不能插头DP,但是范围仍然很小所以考虑网络流. 注意每个点都要包含在一个回路中,那么每一个点的度数都必须为\(2\),也就是说每一个点必须向与它四连通的点中恰好\(2\)个连边.而"四连通"又是经典的黑白染色+二分图模型. 所以对于原图黑白染色,原点向黑点.白点向汇点连流量为\(2\)的边,相邻的黑点向白点连流量为\(1\)的边,跑一边Dinic看最大流等于需要打扫的格点数量. #include<iostr…
\(\\\) Description 给出一个\(N\times M\) 的网格,一些格子是污点,求是否能用多个封闭的环路覆盖所有不是污点的格点. 封闭的环路覆盖的含义是,每条路径都必须是一个环,且每一个格点正好只被一条路径覆盖.图是四联通的. \(N,M\le 30\) \(\\\) Solution 一开始以为是插头,后来发现只能做\(50\%\)的数据...... 将图黑白染色.注意到一个合法的图一定满足每个格点正好进出各一次.每个黑点只能由周围至多的四个白点进出,白点同理. 所以理论上应…
同tjoi2010 打扫房间,每个点入度,出度都为1,可以向相邻4个点连边,但只有原来存在的边费用为0. // 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=getc…
俗话说,自己写的代码,6个月后也是别人的代码……复习!复习!复习!涉及到的知识点总结如下: 一些JVM的跟踪参数的设置 Java堆的分配参数 -Xmx 和 –Xms 应该保持一个什么关系,可以让系统的性能尽可能的好呢?是不是虚拟机内存越大越好? Java 7之前和Java 8的堆内存结构 Java栈的分配参数 GC算法思想介绍 –GC ROOT可达性算法 –标记清除 –标记压缩 –复制算法 可触及性含义和在Java中的体现 finalize方法理解 Java的强引用,软引用,弱引用,虚引用 GC…
为一个类扩展功能:1.子类化:2.修改源代码:3.定义协议:4.Category:类目 1.Category 1> Category的作用 Category:也叫分类,类目,是为没有源代码的类扩充功能. 扩充的功能会成为原有类的一部分,可以通过原有类或者原有类的对象直接调用,并且可继承. 该方法只能扩充方法,不能扩充实例变量. 作为子类的替代手段(不需要定义子类,直接使用现有类的对象调用方法). 一个庞大的类可以分模块开发,能够更好的对类中的方法进行更新和维护. 2> Category文件的创…
 The Cat in the Hat  Background (An homage to Theodore Seuss Geisel) The Cat in the Hat is a nasty creature,But the striped hat he is wearing has a rather nifty feature. With one flick of his wrist he pops his top off. Do you know what's inside that…