这次考试比上次有进步,不过就差5秒我就把第二题叫上去了,本来交上去的话有240分的,结果我现在只有195分。。。早上我先研究了一下第一题,觉得可能是计数排序,然后,就看第二题,认为有公式,接着,我就开始算公式,算得差不多了,我也基本认为是对的,我就去看第三题和第四题,没啥思路,于是呢我打了一个计数排序,但是我还是有点犹豫,快排好像也可以吧(后来证实差不多)然后换了快排,第二题就是做不对,后来暴力45,第三题排序了一下,然后累加,就交了,后来我发现第二题怎么做了,就差5秒我就交上去了,我的心情多么崩溃。第三题我也想到优化了,只是没时间[哭].
第一题的题目大意是输出倒数k个分数,很简单的,快排就ac了.倒着输出k个数,o了.
第二题的题目大意是求1到n里有多少个1,这是有一点思考难度的,根据规律我们可以推出一个公式
ans:=ans+(n div x)*y;
if(n mod x>=y*2-1)then ans:=ans+y
else ans:=ans+max(0,n mod x-y+1);
这就是算1的个数的公式了,已开始记得算出读入的数的长度,然后1 to 长度进行循环,每次将x和y乘10,因为把个位,十位,百位等分开计算,每次都要计算一次,算累加和.
第三题呢,题目大意是要你求最小的方法中的最大危险值,危险值:累加重量-此人力气。就是快排力量加重量的和,然后累加每层的重量,最后计算最大值就可以了.
第四题就是看看前面的可不可以组成这个字符串,如果可以就算什么时候可以组成,否则就输出-1,当读入0的时候就更新f数组的值.
我也想去c组,要努力!
希望 ,自己 ,奇迹.
第一题的题目大意是输出倒数k个分数,很简单的,快排就ac了.倒着输出k个数,o了.
第二题的题目大意是求1到n里有多少个1,这是有一点思考难度的,根据规律我们可以推出一个公式
ans:=ans+(n div x)*y;
if(n mod x>=y*2-1)then ans:=ans+y
else ans:=ans+max(0,n mod x-y+1);
这就是算1的个数的公式了,已开始记得算出读入的数的长度,然后1 to 长度进行循环,每次将x和y乘10,因为把个位,十位,百位等分开计算,每次都要计算一次,算累加和.
第三题呢,题目大意是要你求最小的方法中的最大危险值,危险值:累加重量-此人力气。就是快排力量加重量的和,然后累加每层的重量,最后计算最大值就可以了.
第四题就是看看前面的可不可以组成这个字符串,如果可以就算什么时候可以组成,否则就输出-1,当读入0的时候就更新f数组的值.
我也想去c组,要努力!
希望 ,自己 ,奇迹.