题目: Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为115,466,99.那么这两张牌是可以配对的,因为只有101和99一组属性互质. 游戏的目的是最大化匹配上的卡牌组数,当然每张卡牌只能用一次. Input 数据第一行两个数n1,n2,空格分割.…
Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为115,466,99.那么这两张牌是可以配对的,因为只有101和99一组属性互质. 游戏的目的是最大化匹配上的卡牌组数,当然每张卡牌只能用一次. Input 数据第一行两个数n1,n2,空格分割. 接下来…
[BZOJ4205]卡牌配对 Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为115,466,99.那么这两张牌是可以配对的,因为只有101和99一组属性互质. 游戏的目的是最大化匹配上的卡牌组数,当然每张卡牌只能用一次. Input 数据第一行两个数…
题目:卡牌配对 传送门:None 题目大意:有$n_1$张$X$类牌和$n_2$张$Y$类类牌,每张卡牌上有三个属性值:$A,B,C$.两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同.每张卡牌只能用一次,最大化匹配上的卡牌组数. 分析: 做法一:直接上二分图匹配,然后TLE 做法二:只有三个属性值,又存在至多一项属性值使得两张卡牌该项属性值互质 等价于两张卡牌属性$A,B$均不互质,或属性$A,C$均不互质,或属性$B,C$均不互质 等价于两张卡牌属…
4205: 卡牌配对 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 173  Solved: 76[Submit][Status][Discuss] Description 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为11…
题面 这是bzoj权限题,题面可以去下面的离线题库找 离线4205,只有题面,不能提交 思路 二分图匹配 这道题模型显然就是个二分图匹配嘛 那我们两两判断一下然后连边匹配.....就只有30分了 因为点数是30000,建的边太多了 这张二分图,如果用dinic跑网络流的话,因为是分层图,所以优势很大,但是也不可能支撑9亿条边 所以我们要优化边的数量 优化建边 观察题目条件,发现每个数字都不大于200,而200以下的只有46个质数,且235*7=210>200 也就是说,每个数最多有3个不同的质因…
题目描述 现在有一种卡牌游戏,每张卡牌上有三个属性值:A,B,C.把卡牌分为X,Y两类,分别有n1,n2张. 两张卡牌能够配对,当且仅当,存在至多一项属性值使得两张卡牌该项属性值互质,且两张卡牌类别不同. 比如一张X类卡牌属性值分别是225,233,101,一张Y类卡牌属性值分别为115,466,99.那么这两张牌是可以配对的,因为只有101和99一组属性互质. 游戏的目的是最大化匹配上的卡牌组数,当然每张卡牌只能用一次. 输入 数据第一行两个数n1,n2,空格分割. 接下来n1行,每行3个数,…
对于两张卡牌,如果存在两种属性值不互质,则可以匹配. 只考虑200以内的质数,一共有46个,可以新建3*46*46个点来表示一类属性值中有这两种质数的卡牌. 然后对于每张卡牌,枚举它的质因子,最多只有3个,如此建图求出最大流即可. #include<cstdio> const int N=66500,inf=~0U>>2,P=201; struct edge{int t,f;edge*nxt,*pair;}*g[N],*d[N],pool[3500000],*cur=pool; i…
昨天是元宵节,过完元宵节相当于这个年正式过完了.不知道大家有没有投入继续投入紧张的学习工作中.年前我想开一个Leetcode刷题专栏,于是发了一个投票想了解大家的需求征集意见.投票于2019年2月1日截止,共有204人参加,根据投票结果显示,大多数人希望通过刷LeetCode能够提高代码水平,在工作中和面试中有帮助,然而有一半人没有接触过Leetcode,一半人接触过,但只刷了一点.几乎所有投票的人刷题的数量都小于100题,说明大家对刷题的认识和热情都还比较浅,可能是因为刷题比较枯燥,又不能马上…
题目描述 给定平面 \(\text{xoy}\) 上 \(n\) 个开线段组成的集合 \(\text{I}\) ,和一个正整数 \(k\) ,试设计一个算法. 从开线段集合 \(\text{I}\) 中选取出开线段集合 \(\text{S}\in \text{I}\) , 使得在x轴上的任何一点 \(\text{p}\) , \(\text{S}\) 中与直线 \(\text{x}=\text{p}\) 相交的开线段个数不超过 \(\text{k}\) , 且 \(\sum_{\text{z}…