多校6 HDU-6106 Classes 容斥原理
2017-08-10 23:04
393 查看
题目链接:
HDU-6106
大意:
有三个科目 A,B,C 。已知一个班级选修情况 ,分别为选择 A 的人数,选择 B 的人数,选择 C 的人数,选择 AB 的人数,选择 BC 的人数,选择 AC 的人数,选择 ABC 的人数,
给出 N 个班级,而且有的班级数据是错误的(无法计算),求这些班级里总人数最多为多少。
思路:
画一个韦恩图,每个小块都可以计算出来,着每个小块的人数都必须为自然数。
代码实现;
HDU-6106
大意:
有三个科目 A,B,C 。已知一个班级选修情况 ,分别为选择 A 的人数,选择 B 的人数,选择 C 的人数,选择 AB 的人数,选择 BC 的人数,选择 AC 的人数,选择 ABC 的人数,
给出 N 个班级,而且有的班级数据是错误的(无法计算),求这些班级里总人数最多为多少。
思路:
画一个韦恩图,每个小块都可以计算出来,着每个小块的人数都必须为自然数。
代码实现;
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define mem(s,t) memset(s,t,sizeof(s)) #define D(v) cout<<#v<<" "<<v<<endl #define inf 0x3f3f3f3f #define getans (DIS(x,y,x1,y1)+DIS(x,y,x2,y2)) //#define LOCAL inline void read(int &x){ x=0;char p=getchar(); while(!(p<='9'&&p>='0'))p=getchar(); while(p<='9'&&p>='0')x*=10,x+=p-48,p=getchar(); } int main() { #ifdef LOCAL freopen("in.txt","r",stdin); freopen("out.txt","w",stdout); #endif int t; read(t); while(t--){ int n; read(n); int ans=0; while(n--){ int a,b,c,d,e,f,g; scanf("%d%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f,&g); int ret=0; if(a-d-f+g<0) continue; if(b-d-e+g<0) continue; if(c-e-f+g<0) continue; if(d-g<0 || e-g<0 || f-g<0) continue; ret=(a+b+c-d-e-f+g); ans=max(ans,ret); } printf("%d\n",ans); } return 0; }
相关文章推荐
- 【2017多校】HDU 6106 Classes 【集合计算】
- 2017 多校训练第六场 HDU 6106 Classes
- HDU 6106 (2017 多校训练赛6 1011)Classes
- hdu 6106 Classes 2017多校第六场1011签到题 容斥原理
- HDU 6106 Classes
- 2016多校4 hdu 5768 Lucky7 数论+容斥原理
- hdu-6106-Classes
- HDU 6106 Classes (水题)
- hdu 6106.Classes
- HDU 6106 Classes(水~)
- 【HDU 6106 Classes】
- HDU 6106 Classes【简单思维】
- hdu 6106 Classes
- hdu 6106 Classes
- HDU 6106 17多校6 Classes(容斥简单题)
- 2017 杭电多校联赛第二场 1009 TrickGCD(容斥原理) HDU 6053
- HDU 6106-Classes
- hdu 6106 Classes(容斥)
- HDU 6106 Classes (简单集合运算 17多校第六场)
- HDU 6106 Classes