总结

题目描述
     大家都知道,高三的同学很辛苦,需要补充很多营养。但是由于CZYZ高三教室在4楼和5楼,而高一教室在1楼和2楼,所以导致高三同学总是很难到想吃的东西。又由于D,G,Z的动作总是很慢,所以想吃到不错的午餐更是艰难。
     所以自从不用上课,X就承担下了代购午餐的任务。但是由于X不上晚自习,不能代购晚餐,所以大家商议决定每周轮流留一张饭卡给X。
     可是计划赶不上变化,期间出现了忘换饭卡之类的一系列问题,导致了账目的混乱,于是X又承担下了记录账目的任务。
     每天被账目搞得一团糟的X想请你帮她写一个程序,来清楚地记账。
输入
     第1行一个整数n(0<n≤10000), 表示需要记录账目天数。
      第2至n行每行两个字母(只含D,G,Z),表示前一个同学欠后一个同学一顿饭,字母之间有一个空格。
输出
共3行,每行一个字母和一个数字,之间有一个空格,行末无空格。
第1行D x1
第2行G x2
第3行Z x3
Xi为正数是表示该同学欠了别人xi顿;0表示该同学既不欠人,也不被欠;负数表示该同学被欠xi顿。
样例输入
5
D G
G D
G Z
D G
D Z
样例输出
D 2
G 0
Z -2
数据范围限制
题目描述
       高三一年中的考试多不胜数,并且每次考完之后同学们都会预估一下自己的分数。
      G每次都能把自己的分数预估的很准确,这当然是有诀窍的。
      在考试中,首先,G给出一个预期得分,然后将考试分为T个时段(T≤500),一场考试有很多的小题,G决定每个小题都必须在规定期限ti前完成(1≤ti≤T),如果一道题没能在规定期限前完成,则要从预期得分中扣去一部分分数wi,,wi为自然数,不同的题目分数是不同的。当然,每个题目本身都不是很难,保证在一个时间段内能完成,而且必须从整时段开始。G的得分与如何安排组织自己做题的顺序有很大的关系。G当然希望自己能得到最高的分数,但是时间有限,抽不出时间来安排顺序的G想请你帮她安排做题顺序,算出她能获得的最高分数。
 
输入
共4行。
第1行为m,表示一开始G的预期得分;
第2行为n,表示有n个题目(1≤n≤T);
第3行有n个数,分别表示题目1到n的规定完成期限;
第4行有n个数,分别表示题目1到n不能在规定期限前完成的扣分。
输出
仅1行。
表示G能获得的最高分数(假设G可以自动将此分数转化为百分制)。
样例输入
10000
7
4 2 4 3 1 4 6
70 60 50 40 30 20 10
样例输出
9950
数据范围限制
题目描述
         数学课上,D突然想到一件很重要的事情要告诉Z,但是她们分别坐在教室的左前方和右后方,这可怎么办呢?
        D决定传纸条!
         但是问题又出现了,D要告知Z的是个机密,D不希望有很多人知道。可是由于纸条必须经过其它同学,所以D只好希望知道这个机密的人越少越好。
       每个同学都有一个好奇程度k(0≤k≤20),好奇程度越大,偷看纸条的可能性也就越大,D希望传递纸条的路径经过的同学的好奇程度和越小越好。
       我们假定每个同学只会将纸条传递给ta后方或者右方的同学。
输入
第1行,两个整数n,m,表示教室有n行m列。(1≤n,m≤100)
第2行到第n+1行,每行m个整数,表示每个同学的好奇程度。
其中D在第1行第1列,Z在第n行第m列,她们的好奇程度都为0。
输出
共1行,1个整数,表示传递路径的好奇程度.。
样例输入
5 4
0 10 8 3
4 19 16 4
12 9 13 12
13 14 19 15
13 4 18 0
样例输出
52
数据范围限制
题目描述
      纸条终于传到了Z的手上。这个秘密是什么呢?
      原来D发现了一些小纸片,这些纵向长度不一,横向长度都为1个单位长度的小纸片是从一张地图上剪下来的,由于地图有磨损,D无法通过纸片上的图案将完整的地图拼出来,所以她向Z求助。
      经过Z的分析,这张地图是一个完整的矩形,并且它的长宽是一定的。Z确信一旦长宽确定,她就能把地图拼出来。
       现在,D分析出绘制这张地图的人会用横向尽可能长,纵向尽可能窄的短卷式纸张。她向你求助,希望知道这张地图的横向和纵向长度(其中横向长度尽可能长,纵向长度尽可能短)。
输入
共2行。
第1行,一个整数n,表示纸片数量(1≤n≤60)。
第2行,n个整数,表示各张纸片的纵向长度(1≤l≤50)。
输出
共2行。
第1行,一个整数表示地图的横向长度。
第2行,一个整数表示地图的纵向长度。
样例输入
9
5 2 1 5 2 1 5 2 1
样例输出
4
6
数据范围限制

2016.10.4

考试思路:
T1
超级水的一道题,输入时前面的加一,后面的减一,就可以了。
T2
跟之前的学霸一题很相似,也是建一个小根堆,里面放尽量大的扣分,这样没做的扣分就会相对小,然后有两种情况,一种是现在的这个时间点比要做这件事的时间小,就可以之间把现在的时间点加一,然后把扣分放进堆尾,用up维护,还有一种情况,就是现在的时间点,和要做的事的时间一样,所以这件事和前面的发生冲突,要判断和堆顶比谁大,如果比堆顶大,则把堆顶变为这件事的分,用down来维护,最后把一开始的扣分加起来的一个变量减去堆里的分,代表要减的分,再用预期得分减去这个就可以了。
T3
动态规划,f[i,j]表示走到位置为i,j的点最小的好奇度,所以动态转移方程就显而易见,f[i,j]:=a[i,j]+min(f[i-1,j]+f[i,j-1]),min表示求较小值,可是又三种特殊情况,第一种就是i=1,j=1可以直接忽略,还有i=1,就直接f[i,j]:=a[i,j]+f[i,j-1],表示只能是这一行的前面一列,因为行不能再减了,而第三种也基本相同,就是j=1时,f[i,j]:=a[i,j]+f[i-1,j],最后答案就是f[n,m]。
T4
比赛时我想到的就是枚举长,从而得出宽,然后用深搜去判断能不能满足条件,但是很不尽如人意地得到了10分。


正确思路:
T1
同上。
T2
同上。
T3
同上。
T4
主要思想和原本基本相同,只不过是从全部长的总和downto到1,去枚举宽,从而得到长,然后用深搜去判断,有些小细节,自己想想就好啦。


总结:
这次考得还不错,只是最后一题有点细节没有想到,所以比较低分,可最后还是得到了100+100+100+10=310的成绩,下次继续努力!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值