HDU-2017 多校训练赛6-1011-Classes
2017-08-10 17:26
495 查看
ACM模版
![](http://img.blog.csdn.net/20170810172328326?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZl96eWo=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
签到题,但是要读懂题。差不多每次多校的第十一题都是签到题。只不过这次的题不好读罢了~~~
描述
题解
最基础的容斥,但是一开始没有读懂题,看了半天没有看懂题意……后来仔细看了 Hint 才明白原来就是一个容斥,按照 Hint 的提示求出来各个部分的值是多少即可,比如说,只报了 A 课程的人数一定是 A−AB−AC+ABC,其他都是同理。签到题,但是要读懂题。差不多每次多校的第十一题都是签到题。只不过这次的题不好读罢了~~~
代码
#include <iostream> using namespace std; int N; int A, B, C, AB, BC, AC, ABC; int A_, B_, C_, AB_, BC_, AC_, ABC_; int main(int argc, const char * argv[]) { int T; cin >> T; while (T--) { cin >> N; int ans = 0; while (N--) { cin >> A >> B >> C >> AB >> BC >> AC >> ABC; A_ = A - AB - AC + ABC; B_ = B - AB - BC + ABC; C_ = C - AC - BC + ABC; AB_ = AB - ABC; BC_ = BC - ABC; AC_ = AC - ABC; ABC_ = ABC; if (A_ >= 0 && B_ >= 0 && C_ >= 0 && AB_ >= 0 && BC_ >= 0 && AC_ >= 0 && ABC_ >= 0) { ans = max(ans, A_ + B_ + C_ + AB_ + BC_ + AC_ + ABC_); } } printf("%d\n", ans); } return 0; }
相关文章推荐
- HDU 6106 (2017 多校训练赛6 1011)Classes
- HDU 6043(2017 多校训练赛1 1011) KazaQ's Socks
- HDU 6055 (2017 多校训练赛2 1011)Regular polygon
- HDU-2017 多校训练赛8-1011-Killer Names
- HDU 2017 多校联合训练赛8 1011 6143 Killer Names 排列组合
- HDU 2017 多校联合训练赛2 1011 6055 Regular polygon map&pair
- HDU-2017 多校训练赛2-1011-Regular polygon
- HDU-2017 多校训练赛7-1011-Kolakoski
- HDU 6047 (2017 多校训练赛2 1003)Maximum Sequence
- HDU-2017 多校训练赛2-1009-TrickGCD
- HDU-2017 多校训练赛1-补题
- HDU 2017多校联赛-1011 KazaQ's Socks
- HDU 6105 (2017 多校训练赛6 1010)Gameia(博弈)
- HDU-2017 多校训练赛7-补题
- HDU 6038 (2017 多校训练赛1 1006) Function(图论)
- HDU-2017 多校训练赛6-1010-Gameia
- (2017多校2)1011/hdu-6055 Regular polygon(计算几何)
- HDU6106 Classes(思路,2017 HDU多校联赛 第6场)
- HDU 2017 多校联合训练赛4 4003 6069 Counting Divisors 素数筛和素因数分解
- HDU-2017 多校训练赛4-1007-Matching In Multiplication