【链接】http://acm.hdu.edu.cn/showproblem.php?pid=6106
【题意】
给出选 A,B,C,AB,AC,BC,ABC 课程的学生,其中 AB 是 A 和 B 都选….,确定该班级的人数,给出的数据中有一些数错误的,但保证一组正确答案,输出最多的班级的人数
【题解】
除了ab<=a,ac<=c...那些常见的限制之外
如下图,还有1+4+2<=a以及1+4+3<=b....
【错的次数】
0
【反思】
在这了写反思
【代码】
#include<iostream> #include<cstdio> #include<algorithm> #include<queue> #include<map> #include<vector> #include<cmath> #include<cstring> using namespace std; int main() { int T,n,ans; int a,b,c,ab,bc,ac,abc; scanf("%d",&T); while(T--) { scanf("%d",&n); ans=0; while(n--) { scanf("%d%d%d%d%d%d%d",&a,&b,&c,&ab,&bc,&ac,&abc); if(ab<=a&&ab<=b&&bc<=b&&bc<=c&&ac<=a&&ac<=c &&abc<=ab&&abc<=bc&&abc<=ac &&ac+ab-abc<=a&&ac+bc-abc<=c&&ab+bc-abc<=b) { if(a+b+c-ab-bc-ac+abc>ans) ans=a+b+c-ab-bc-ac+abc; } } printf("%d ",ans); } return 0; }