codevs 2651 孔子教学——同桌

2651 孔子教学——同桌

题目描述 Description

孔子是我国古代著名的教育家。他有先见之明,可以判断学生出师以后给他带来的声望。声望共有三种“G”“M”“B”,“G”可以给他带来3点声望,“M”可以给他带来2点声望,“B”可以让他丢失2点声望。每个学生出师后的声望为ai。当然,学生出师的时间不同,第i个的学生需要bi个单位时间。他每次只能教1名学生。他共有x个学生,有y个单位时间,但必须教z名学生。求孔子可获得的最大声望。

输入描述 Input Description

输入格式:

x z y

a1 b1

……

……

……

ax bx

输出描述 Output Description

输出格式:

ans(为最大声望)

无解输出- 1

样例输入 Sample Input

例一:

2 2 2

G 0

G 2

例二:

4 2 2

B 1

B 1

G 4

M 3

样例输出 Sample Output

例一:

6

例二:

-4

数据范围及提示 Data Size & Hint

x<=10,z<=a,y<=200,声望可能为负数,保证时间大于0,但不一定有解。

直接上搜索

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int x,y,z,r,ans=-0x7fffffff;
char c;
int w[11],p[11];
bool v[11];
void dfs(int now,int tot,int pride,int time)//now到底几个学生,tot教了几个学生,pride当前声望,time还剩时间
{
    if(tot>=z) ans=max(ans,pride);
    if(tot==x) return;
    if(now==x) return;
    for(int i=now+1;i<=x;i++)
    {
        if(time>=p[i]&&!v[i])
        {
            dfs(i,tot+1,pride+w[i],time-p[i]);
            v[i]=false;
        }
    }
}
int main()
{
    scanf("%d%d%d",&x,&z,&y);
    for(int i=1;i<=x;i++)
    {
        cin>>c>>r;
        if(c==‘G‘) w[i]=3;
        else if(c==‘M‘) w[i]=2;
        else w[i]=-2;
        p[i]=r;
    }
    dfs(0,0,0,y);
    if(ans==-0x7fffffff) printf("-1");
    else printf("%d",ans);
} 

第一遍忘了题目中还有无解的条件。。。。。。

时间: 2024-11-06 12:03:48

codevs 2651 孔子教学——同桌的相关文章

于丹论语感悟

<论语>是一本记录着两千五百多年前孔子教学和生活的语录.我们从小学开始就接触它,无论在古代还是在现在都有很重要的地位.而今,于丹教授用自己独到的视角,将这样一本古老的书籍,用现代的眼光进行系统的解读和阐释,拉近了我们普通人和圣贤之间的距离.世界上的真理永远是最朴素的,就好像太阳每天从东边升起,西边落下.就好像春天永远要播种,秋天要收获一样.<论语>告诉大家的东西永远是最简单的,只是它把你内心深处的良知给激活了. 于丹教授的<论语心得>是从天地人之道说起的.从盘古开天地这

写在时间管理之前:心态管理也很重要

http://www.doujia.cc/archives/963.html相信大家都对时间管理有所了解,也看过很多<GTD>的书,在美美的规划好一大堆计划,准备大干一场的时候.相信很多大家在真正实践的时候发觉了好多好多的重重阻力,以至于你很难从书上找到.而这些阻挠你的完成目标的因素有很多:有的是人际沟通不对,观点不一致:有的是被外界干扰情绪,自己变得很消极,然后忘记了自己的目标:有的是因为自己内在的焦虑,让自己老是纠结于这个小事,那个小事,白白浪费了自己的时间...等等等等,不胜枚举. 那么

CODEVS——T1332 上白泽慧音 || 洛谷——P1726 上白泽慧音

http://codevs.cn/problem/1332/|| https://www.luogu.org/problem/show?pid=1726#sub 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在幻想乡,上白泽慧音是以知识渊博闻名的老师.春雪异变导致人间之里的很多道路都被大雪堵塞,使有的学生不能顺利地到达慧音所在的村庄.因此慧音决定换一个能够聚集最多人数的村庄作为新的教学地点.人间之里由N个村

提高高职文学鉴赏课教学效果的途径

一.高职文学鉴赏课在教学实践活动中的意义 文学素质教育的功能是多方面的,文学素质教育对提高人的思想道德修养.培养人的健康高尚的情感.提高人的审美能力.促进人形成良好心态.发展人的创造力.促进人的身心健康发展等方面都具有很大的作用.从高职院校培养对象来看,文学鉴赏是美育的重要组成部分,它在培养学生全面发展过程中发挥着不可替代的作用,特别是在学生的人格塑造.情操熏陶以及审美能力提高等方面. (一)文学素质教育有益于高职学生的德育 文学素质教育是一种美感教育,伴随着优美的文字,人的精神进入一个美好的境

[ CodeVS冲杯之路 ] P2492

不充钱,你怎么AC? 题目:http://codevs.cn/problem/2492/ 在此先orz小胖子,教我怎么路径压缩链表,那么这样就可以在任意节点跳进链表啦(手动@LCF) 对于查询操作,直接树状数组(以下简称BIT)维护,修改操作就一个个暴力开方搞,再用差值单点更新BIT 不过这样会TLE,要加一点优化对不对,正如开头所说的路径压缩链表 路径压缩链表其实就是个并查集,在普通的链表里,删去两个连续的节点后会是下面这种情况,如删去2,3 当访问 2 的时候,会跳到3,但 3 已经删除了,

[CODEVS 1281] Xn数列

描述 给你6个数,m, a, c, x0, n, g Xn+1 = ( aXn + c ) mod m,求Xn http://codevs.cn/problem/1281/ 分析 比较裸的矩阵乘法题, 好久没做了, 写写思路 假设矩阵 A = { {a1, a2}, {a3, a4} }, B = { {b1, b2}, {b3, b4} }. 根据矩阵乘法的计算方法, 有 : A×B = { {a1b1+a2b2, a1b2+a2b4}, {a3b1+a4b3, a3b2+a4b4} }. 那

云和数据免费教学:UI到底是什么?与UX怎么被混淆的!

云和数据UI老师免费教学时间到了,人们常把"UI"跟"UX"两个词混着用.本篇文章云和数据的UI老师将为大家免费解读.这样一个免费学习的机会,大家一定要好好学习啊. UX 这词其实很奇妙,因为它本身并没有指涉任何一件特定的事.界面设计.视觉风格.程序效能.正常运作和功能都是"UX"的一环.而UX 相关书籍更是包含了研究和开发方法的理论,把事情变得更复杂. 这就是为什么云和数据老师会避免教人家"UX"这个术语,那对许多不同的人来

gradle视频教学

夜行侠老师gradle视频教学地址:http://www.itjoin.org/course/detail/575771f20cf22db210ccab6b课时1:简单项目构建 课时2:springbootmaven项目构建 课时3:maven的插件 课时4:maven的生命周期以及常见问题 课时5:maven的私服 课时6:maven的继承与聚合 课时7:Springboot的freemark课时8:Springboot的Websocket 课时9:Gradle的springboot项目构建

Codevs 1257 打砖块

1257 打砖块 http://codevs.cn/problem/1257/ 题目描述 Description 在一个凹槽中放置了n层砖块,最上面的一层有n块砖,第二层有n-1块,……最下面一层仅有一块砖.第i层的砖块从左至右编号为1,2,……i,第i层的第j块砖有一个价值a[i,j](a[i,j]<=50).下面是一个有5层砖块的例子.如果你要敲掉第i层的第j块砖的话,若i=1,你可以直接敲掉它,若i>1,则你必须先敲掉第i-1层的第j和第j+1块砖. 你的任务是从一个有n(n<=5