打卡信奥刷题(3085)用C++实现信奥题 P7095 [yLOI2020] 不离
P7095 [yLOI2020] 不离题目背景乱玄黄时序探风林实虚。我要你共我奇谈怪趣。任日月斑斓待春秋兴残。我要我们有聚无散。——银临《不离》题目描述这道题目来自 zxy 哔哔咕咕让哔哔选一首歌作为题目名但是哔哔说没有想好于是咕咕就帮他选了这首歌。哔哔在玩一款叫做《暗黑破坏神》的游戏某天哔哔灵光乍现以游戏为背景出了一道神仙题并告诉了咕咕。咕咕并不会做于是对题目进行了一定的简化。因此经过简化后这道题已经和《暗黑破坏神》没什么关系了。游戏中人物有两个属性我们分别称之为「力量」和「精神」同时哔哔有nnn件装备穿戴第iii件装备需要人物在穿戴前的力量值不低于aia_iai精神值不低于bib_ibi。在穿戴第iii件装备后人物的力量值会增加cic_ici精神值会增加did_idi。哔哔可以自由选择穿装备的顺序只要满足力量和精神不低于对应值就可以穿戴该装备。现在咕咕想知道如果想让哔哔穿戴上所有的装备那么人物的初始力量值即没有穿任何装备之前的力量值最小应该是多少在初始力量值最小的前提下初始精神值即没有穿任何装备之前的精神值最小应该是多少显然初始力量和初始精神都应该是非负整数。输入格式第一行有一个整数表示该测试点所在的子任务编号TTT。第二行有一个整数表示哔哔的装备件数nnn。第333到第(n2)(n2)(n2)行每行四个整数第(i2)(i2)(i2)行的整数依次表示ai,bi,ci,dia_i,b_i,c_i,d_iai,bi,ci,di。输出格式输出一行两个用空格隔开的整数分别表示最小的初始力量值以及在初始力量值最小的前提下最小的初始精神值。输入输出样例 #1输入 #10 2 1 5 0 2 1 2 3 4输出 #11 2说明/提示样例 1 解释当初始力量值为111精神值为222时可以穿戴第222件装备。在穿戴该装备后增加333点力量和444点精神人物的属性变为444点力量和666点精神此时可以穿戴第111件装备。数据规模与约定本题采用多测试点捆绑测试。子任务111555分保证n0n0n0。子任务222555分保证n1n1n1。子任务333202020分保证ai,bi≤100a_i,b_i \le 100ai,bi≤100n≤6n \le 6n≤6。子任务444101010分保证ai,bi≤105a_i,b_i \le 10^5ai,bi≤105n≤6n \le 6n≤6。子任务555101010分保证ai,bi≤10a_i,b_i \le 10ai,bi≤10。子任务666101010分保证ai,bi≤100a_i,b_i \le 100ai,bi≤100。子任务777101010分保证bi0b_i0bi0n≤6n \le 6n≤6。子任务888101010分保证bi0b_i0bi0。子任务999101010分保证n≤6n \le 6n≤6。子任务101010101010分无特殊约定。对于全部的测试点保证0≤n≤1050 \le n \le 10^50≤n≤1050≤ai,bi,ci,di≤1090 \le a_i,b_i,c_i,d_i \le 10^90≤ai,bi,ci,di≤109。提示有444个样例文件请见附加文件中的 forever.zip。对于第三个样例满足bi0b_i 0bi0。C实现#includebits/stdc.h#definelllonglongusingnamespacestd;constintM100005;intn,j;ll str,spi,add,ad;structnode{inta,b,c,d;}x[M];inlineboolcmp(node s,node q){returns.aq.a;}structsqakioi{inlinebooloperator()(ints,intq){returnx[s].bx[q].b;}};priority_queueint,vectorint,sqakioiqq;inlineintread(){intw0,f1;charchgetchar();while(!isdigit(ch))fch-?-1:f,chgetchar();while(isdigit(ch))ww*10ch-48,chgetchar();returnw*f;}intmain(){nread();nread();for(inti1;in;i)x[i].aread(),x[i].bread(),x[i].cread(),x[i].dread();sort(x1,xn1,cmp);for(inti1;in;i){if(strx[i].a)addx[i].a-str,strx[i].a;strx[i].c;}printf(%lld ,add);for(j1;jnx[j].aadd;j)qq.push(j);while(!qq.empty()){inttqq.top();qq.pop();if(spix[t].b)adx[t].b-spi,spix[t].b;spix[t].d,addx[t].c;for(;jnx[j].aadd;j)qq.push(j);}printf(%lld,ad);return0;}后续接下来我会不断用C来实现信奥比赛中的算法题、GESP考级编程题实现、白名单赛事考题实现记录日常的编程生活、比赛心得感兴趣的请关注我后续将继续分享相关内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2499951.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!