hdu 6106 Classes 2017多校第六场1011签到题 容斥原理
2017-08-10 19:16
465 查看
http://acm.split.hdu.edu.cn/showproblem.php?pid=6106
题意:已知A课程报了a人,B课程报了b人,C课程报了c人,AB课程都报的ab人,BC课程都报的bc人,AC课程都报的ac人,ABC课程都报的abc人。
题解:容斥原理,要注意数据是否合法,画个维恩图就好。
代码:
题意:已知A课程报了a人,B课程报了b人,C课程报了c人,AB课程都报的ab人,BC课程都报的bc人,AC课程都报的ac人,ABC课程都报的abc人。
题解:容斥原理,要注意数据是否合法,画个维恩图就好。
代码:
#include<bits/stdc++.h> #define debug cout<<"aaa"<<endl #define mem(a,b) memset(a,b,sizeof(a)) #define LL long long #define lson l,mid,root<<1 #define rson mid+1,r,root<<1|1 #define MIN_INT (-2147483647-1) #define MAX_INT 2147483647 #define MAX_LL 9223372036854775807i64 #define MIN_LL (-9223372036854775807i64-1) using namespace std; const int N = 100000 + 5; const int mod = 1000000000 + 7; int main(){ int a,b,c,ab,bc,ac,abc; int t,n,ans,sum; scanf("%d",&t); while(t--){ scanf("%d",&n); ans=0; for(int i=1;i<=n;i++){ scanf("%d%d%d%d%d%d%d",&a,&b,&c,&ab,&bc,&ac,&abc); if(a<ac+ab-abc) continue; if(b<ab+bc-abc) continue; if(c<ac+bc-abc) continue; if(ab<abc||bc<abc||ac<abc) continue; sum=a+b+c-ab-bc-ac+abc; ans=max(ans,sum); } printf("%d\n",ans); } return 0; }
相关文章推荐
- 2017 多校训练第六场 HDU 6106 Classes
- HDU 6106 (2017 多校训练赛6 1011)Classes
- 多校6 HDU-6106 Classes 容斥原理
- 2017杭电多校第六场 1011 (勉强算容斥吧)HDU 6106
- HDU 6106 Classes (简单集合运算 17多校第六场)
- 2017多校联合第六场String/hdu 6096 (tire tree/ac自动机)
- HDU 6106 Classes (水题)
- HDU 6106 Classes
- 2017多校联合第六场1008/hdu 6103
- hdu 5803 Zhu’s Math Problem (2016多校第六场1011)数位dp
- 2017多校训练八-1011(hdu 6143 Killer Names)
- HDU-2017 多校训练赛6-1011-Classes
- HDU - 6106 Classes
- HDU 6106 Classes -逻辑题-2017多效联盟6 第11题
- HDU 6106 Classes【水题】
- HDU 6106 Classes
- 多校第六场 1011 hdu 5363Key Set(组合数学)
- HDU 6106 Classes 【】
- HDU 6106 Classes【简单思维】
- HDU 6106 Classes