洛谷T136039 蒟蒻代表队(针得不水一下吗QAQ)
自己出的题不会打std祭
题目背景
一年一度的普及组还有几个月就要开赛了,今天金牌教练J把南边机房的蒟蒻们叫在一起,为了维护稼轩荣耀,给曾经碾压这帮人的小学生一个下马威,要派出一支实力强大的代表队参加额...普及组的比赛。
但是这帮人呢,能力有强有弱,NB程度各不相同,说话有多有少,各自有表示违纪能力强弱的BB指数。其中性价比啊不,最精英最优秀最有清北水平的那一位就是队长(NB/BB最高)
现在你是J的秘书,请组织一支纪律(huansan)严明而且总体能力(NB指数)最高的代表队参加比赛。
机房里有n名同学,只要不超过纪律涣散指数,则团队中的成员数量无限制。而且这支战队每个成员的BB指数之和不超过纪律涣散指数,否则金牌教练J就会被在睡梦中刺杀。
现在请你拯救J,挽回稼轩的尊严!
这题不难不要喷
题目描述
改版背包QAQ
输入格式
先输入机房总人数
再输入纪律涣散指数
然后依次输入每个人的姓名(大写的拼音首字母,保证每个人的名字都是三个字的),以及BB指数和NB指数。
输出格式
共输出2行
先输出输出此时整支队伍的最大NB指数
后输出这个团队的队长姓名(队长必须在团队中)
如果不能组成团队则输出
“JYX must be dead!”
输入输出样例
输入 #1
4 10 WPX 2 1 WWX 3 3 XMZ 4 5 GXL 7 9
输出 #1
12 GXL
说明/提示
数据范围
最大纪律涣散指数不超过300
机房里的总人员不超过1000人
(好大一个机房)
嗯没错,这题就是我出的(没想到吧)
很简单对吧居然还有人喷我WDNMD
u1s1这题完全是0/1背包的改版
只是在前面需要处理一组名字外加性价比最高的物品需要在背包中
但是我不会写std
(就你妈离谱)
其实是写出来了然后跟做我旁边的涛哥互卡数据卡到崩溃
//T136039 蒟蒻代表队(针得不水一下吗QAQ) #include<cstdio> #include<cstring> #include<algorithm> #define N 70000 #define IAKIOI 0 using namespace std; int f[N],w[N],c[N],n,m,fuck; double maxn=-99999999; char cap[N]; int main() { scanf("%d%d",&n,&m); for(int i=1;i<=n;i++) { char name[5]; scanf("%s%d%d",name,&w[i],&c[i]); double qwq=(double)c[i]/w[i]; if(w[i]<=m) fuck=1; if(qwq>maxn&&w[i]<m) { maxn=qwq; strcpy(cap,name); } } if(fuck==0) { printf("JYX must be dead!"); return IAKIOI; } for(int i=1;i<=n;i++) for(int j=m;j>=w[i];j--) f[j]=max(f[j],f[j-w[i]]+c[i]); printf("%d\n%s",f[m],cap); return IAKIOI; }
完成
完全可以将0/1拿过来用
需要加一波关于队长的特判以及对于姓名的处理
普及-到入门难度
下一次还会有加强版
~End~
(又水了一篇题解)