一名苦逼的OIer,想成为ACMer

Iowa_Battleship

2018年9月13日

JoyOI1935 导弹防御塔

摘要: "原题链接" 首先可以二分答案,然后考虑检验答案。 我们可以对炮塔进行拆点,即能发射$x$颗导弹就拆成$n\times x$个点,作为一个集合,另一个集合则是$m$个侵入者,然后对于能在剩余时间攻击到侵入者的炮弹和该侵入者连边,然后跑匈牙利或网络流求二分图最大匹配即可(本质是多重匹配,使用拆点法)。 阅读全文

posted @ 2018-09-13 19:44 Iowa_Battleship 阅读(171) 评论(0) 推荐(0) 编辑

CH6802 車的放置

摘要: "原题链接" 和棋盘覆盖( "题解" )差不多。 将行和列看成$n+m$个节点,且分属两个集合,如果某个节点没有被禁止,则行坐标对应节点向列坐标对应节点连边,然后就是求二分图最大匹配了。 cpp include include using namespace std; const int N = 4 阅读全文

posted @ 2018-09-13 14:26 Iowa_Battleship 阅读(163) 评论(0) 推荐(0) 编辑

JoyOI1035 棋盘覆盖

摘要: "原题链接" 对棋盘染色,坐标和为奇数的染黑,偶数为白。这时会发现对于相同颜色的格子,是无法放置骨牌的,这样我们就将所有格子分成两类,然后根据能否放置骨牌连边,最后就是求二分图最大匹配了。 这里我是用的匈牙利算法。 cpp include include using namespace std; c 阅读全文

posted @ 2018-09-13 13:48 Iowa_Battleship 阅读(199) 评论(0) 推荐(0) 编辑

导航