noip2005提高组题解

T1.谁拿了最多的奖学金

给出n个学生的信息,分别表示:姓名,期末成绩,班级评议成绩,是否学生干部(Y/N),是否西部学生(Y/N),论文数;

奖学金分为:

1).院士奖学金,每人8000 元,期末平均成绩高于80 分(>80),并且在本学期内发表1 篇或1

篇以上论文的学生均可获得;

2).五四奖学金,每人4000 元,期末平均成绩高于85 分(>85),并且班级评议成绩高于80 分

(>80)的学生均可获得;

3).成绩优秀奖,每人2000 元,期末平均成绩高于90 分(>90)的学生均可获得;

4).西部奖学金,每人1000 元,期末平均成绩高于85 分(>85)的西部省份学生均可获得;

5).班级贡献奖,每人850 元,班级评议成绩高于80 分(>80)的学生干部均可获得;

求得奖金最多的人,最多奖金数,总奖金数。

直接每个模拟过去,一一对照条件就行了。

T2.过河

给出一座桥长为L(10^9),有一只青蛙过桥,每次可跳[s,t]的距离。桥上有m(100)个石子,给出位置。求过桥能踩到最少的石子数。

显然一看距离和石子数不成比例啊。。。。中间大段大段的完全可以去掉嘛,所以只要缩一下距离,保证两颗石子间距离%t不变就好。(防止错误可以加几个t)【这点是我忽略的所以WA了两个点吧。。】然后就可以dp了,f[i]表示到坐标为i的点踩到的最小石子数,则f[i]=max(a[i]+f[i-k])【s<=k<=t】

T3.篝火晚会

给出n个人,坐成一圈,每个人有最想坐在两边的人,求出从(1~n)的序列变成目标序列的代价,或者不可能则输出-1。(交换规则:每次令{b1,b2,b3…bm},b1换到b2,b2换到b3……,代价位m)。

说起来。。。其实没有说顺序的话,只换一次最优了吧。。。毕竟总是要连成一个环的,所以题目就是找出不在位的个数。先判断是否可能,只要判断每个人想坐的人是否也想和他坐就行了。。然后就可以生成目标序列,再判断出以当前方式排列,每个位子到目标位子的位数差,然后对于每个位数差取一个最大值就好了。(毕竟环可以旋转。。)

T4.等价表达式

给出个含未知数a的中缀表达式,以及n个其他的含a表达式,求哪几个始终等于给出的那个。。

显然不是数学的因式分解啥的。。。应该是把几个a的值代进去检验。。

然后就涉及了中缀表达式运算的过程,这个我的博客上也写了。。http://www.cnblogs.com/zcyhhh/p/5933945.html

然后其实那个代码有点冗长。。。毕竟我这次的就200行而已。。上次的主要是因为有重复代码,然后处理括号比较清奇。。。然后其实可以把calc函数带上操作字串作为一个参数,这样每次substr取一下还是比较快的。。。然后就可以全都用一个函数解决,不用main函数的长篇大论了。。。

时间: 2025-01-14 04:36:59

noip2005提高组题解的相关文章

noip2005提高组 题解

水 正经题解 最多的奖学金 https://www.luogu.com.cn/problem/P1051 就水题,但我还是wa了一个点[??] 大概就是排序的时候把“>"换成 "<"就过了,应该是输出时优先输出排前面的[无可奈何] 代码就不贴了 过河 https://www.luogu.com.cn/problem/P1052 这道题状态转移方程很显然. f[i]表示到第i个点经过的最少石子数:f[i]=min(f[i],f[i-j]+a[i]):j取s~t,a[

noip2004提高组题解

这次有两道题以前已经做过了,所以分数什么的也没有意义了.发现这年的难度设置极不靠谱,前三题都比较简单,最后一题太难,不知道出题人怎么想的. 第一题:储蓄计划 模拟. 第二题:合并果子 贪心.每次选最小的两堆合并. 第三题:合唱队形 两次动规.题目可以转化为找出一个人,使得以他为尾的最长上升子序列的长度最大,并且以他为首的最长下降子序列的长度也最大. 第四题:虫食算 马上想到搜索.但是规模太大,N可能有26位,如果简单枚举那么运算次数是26!≍4e27:剪枝方面只想到一个很弱的剪枝(对于26的规模

noip2003提高组题解

这一年的前三题虽然难度不高,但是第二题极为繁琐,想在考场上用较短的时间拿到第二题的分数难上加难.所以必须要调整策略,争取拿其他三题的分数.第四题是比较普通的搜索题,分数比较好拿,但是很容易想成树形DP,就只能拿30~50分. ? 第一题:神经网络 模拟 有几个注意点: 输入层(即第一层)的结点的U(阈值)是没有用的: 题目说输出「最后状态非零的输出层神经元状态」,但实际上输出的是状态大于0的值. 由于没有注意到神经元只有在兴奋状态时才会向下传送信号,所以WA了1次. ? 第二题:侦探推理 模拟+

【水】NOIP2005提高组 谁拿了最多的奖学金

PID16 / 谁拿了最多奖学金 类型:模拟 来源 NOIP2005提高组 题目描述 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成绩高于80分(>80)的学生均可获得: 3) 成绩优秀奖,每人2000元,期末平均成绩高于90分(>90)

noip2000提高组题解

事实再次向我证明了RP的重要性... 第一题:进制转换 是我最没有把握AC的一道题目却是我唯一一道AC的题目,真是讽刺.看完题目几乎完全没有往正常的解法(取余倒序)去想,直接写了搜索,因为数据范围在2^16,感觉枚举每一位上的数应该就够了,但是在自己的电脑上连样例都用了3.4s,然后想不到任何有效的剪枝,就果断放弃了.最后写完其他三题之后还是回过头看了下这道题,还是没往正常的解法想....结果惊人地AC了...RP真的太重要了. 然后经提醒终于想到了正常一点的解法,查了网上的题解之后开始自己写取

NOIP2005提高组 &amp;&amp; HLG 1219 谁拿了最多奖学金 (好经典的基础题 )

链接: http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1219 Description 某校的惯例是在每学期的期末考试之后发放奖学金.发放的奖学金共有五种,获取的条件各自不同: 1) 院士奖学金,每人8000元,期末平均成绩高于80分(>80),并且在本学期内发表1篇或1篇以上论文的学生均可获得: 2) 五四奖学金,每人4000元,期末平均成绩高于85分(>85),并且班级评议成

NOIP 2014 提高组 题解

NOIP 2014 提高组 题解 No 1. 生活大爆炸版石头剪刀布 http://www.luogu.org/problem/show?pid=1328 这是道大水题,我都在想怎么会有人错了,没算法,直接模拟,别读错题. 1 int wn[5][5]={{2,0,1,1,0}, 2 {1,2,0,1,0}, 3 {0,1,2,0,1}, 4 {0,0,1,2,1}, 5 {1,1,0,0,2}}; 6 7 int n,na,nb; 8 int a[222],b[222]; 9 int s1,s

noip2010提高组题解

NOIP2010提高组题解 T1:机器翻译 题目大意:顺序输入n个数,有一个队列容量为m,遇到未出现元素入队,求入队次数. AC做法:直接开1000的队列模拟过程. T2:乌龟棋 题目大意:有长度为n的棋盘,每个格子对应一个分数,1,2,3,4的卡片共m张,给出四种卡片各自的数量,求改变出牌顺序能获得的最大分数. 思路:开了一个四维的f[i][j][k][l]来表示每张牌有了几张时的最大分数: F[i][j][k][l]=max(f[i-1][j][k][l],f[i][j-1][k][l],f

NOIP2007 提高组 题解

2007 提高组题解 第一题 一开始还想是不是要用哈希表储存呢,但仔细想了一会儿,那个数据量20W 用个快排序,时间是能过的.所以这道题用个STL的快排,再一个循环统计个数就OK了.但最后交上去评测时0分,很尴尬.就是我在数据初始化时从一开始计数,我循环又从一开始,你懂的,多算了一次,爆掉了.改了就100了.200W的话数据就很强了,用哈希好一些. 第二题 额,写得很快,果然这种无脑模拟题最适合我了.但自信没检查,带了3组给的数据就走了.果然错了,过了4个点好像.主要是题没读完,没有判断处于字母