HDU 6106 Classes
来源:互联网 发布:淘宝卖家发货扫描单号 编辑:程序博客网 时间:2024/06/01 07:18
题目链接
题目描述
学校有A,B,C三类课程,N个班的学生选课,每个班给你7个数据,代表选课程A,B,C,AB,BC,AC,ABC,的人数,数据中可能有错误的,但是至少有一个是正确的。现在要你求这N个班中至少选了1门课的最大人数。
解题思路
首先我们要判断数据是否错误,如果数据错误,那么直接就可以跳过不用计算。否则,我们只需要算出选A,B,C三类课程的人数就可以知道至少选一门课的人数,然后将N个班级的人数进行对比,输出最大的即可。
选择课程ABC的人数肯定就是给出的人数,那么选择AB的人数就是用给出的选择AB的人数-ABC的人数,以此类推,可以计算选择每门课程的人数。
解题思路
#include<bits/stdc++.h>using namespace std;#define ll long longint main(){ int a[101][7],b[7],t,sum,ans,n; scanf("%d",&t); while (t--) { ans=0; scanf("%d",&n); for (int i=0; i<n; i++) { for (int j=0; j<7; j++) { scanf("%d",&a[i][j]); } } for (int i=0; i<n; i++) { b[6]=a[i][6]; sum=b[6]; for (int j=5; j>2; j--) { b[j]=a[i][j]-a[i][6]; if (b[j]<0) { sum=-1; break; } else sum+=b[j]; } if (sum==-1) continue; b[2]=a[i][2]-b[5]-b[4]-b[6]; if (b[2]<0) { continue; } else sum+=b[2]; b[1]=a[i][1]-b[3]-b[4]-b[6]; if (b[1]<0) { continue; } else sum+=b[1]; b[0]=a[i][0]-b[3]-b[5]-b[6]; if (b[0]<0) { continue; } else sum+=b[0]; if (ans<sum) ans=sum; } printf("%d\n",ans); }}
阅读全文
2 0
- 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 Classes 【】
- HDU 6106 Classes (水题)
- HDU 6106 Classes
- HDU 6106 Classes
- HDU 6106 Classes
- HDU 6106 Classes【简单思维】
- hdu 6106 Classes(容斥)
- HDU 6106 Classes(水~)
- HDU-Classes
- 2017 多校赛6 Classes hdu 6106
- hdu1695 gcd 莫比乌斯反演
- 二叉树的建立和基本操作(递归实现)
- Bone Collector
- HTML之认识标签
- ssl 2674 覆盖
- HDU 6106 Classes
- MySQL错误:You are using safe update mode and you tried to update a table without a WHERE that uses a K
- tensoflow练习5:自动编码器练习
- LeetCode 441 Arranging Coins
- Ios 开发 mac cocoaPods的环境搭建
- 软件缺陷管理
- Angular2 遇到的问题及解决办法
- 【转载】thinkphp的目录结构设计经验总结
- JDBC传入参数使用LIKE模糊搜索