4月26日

这两天打了一套手速练习赛,还有一场真题,主要a的是HDU - 6024,题意大概是,有n个教室,现在想在这n个教室中建一些超市,问你最少费用为多少?费用有两种情况第一种情况是在第i个教室建超市,费用为ci第二种情况是不建超市的教室的费用为它和它左边最接近的超市的坐标之间的距离,然后进行dp,dp[i][0】表示在第i个教室不建的情况下的最少费用,这个要把前面所有的dp[j][1]都走一遍,主要这个地方比较难想,然后是dp[i][1]表示在第i个教室建的情况下的最少费用,这个判一下最小值就好了。然后是HDU - 6029题意是:有n个点,1表示当前点与之前所有点连一条边,2表示不动,问通过选出其中的某些边,能否使所有的点都能够有一个点与其配对。如果有奇数个点不行,如果最后一个点是2不行,从后找1,然后将1与1前面的没有配对的2配对,如果找到一个2没有配对就不行,找到底,剩下的一随便配对就好了。主要是HDU - 6030这道题,题意是对于一个串仅包含0和1两种状态,要求任意素数长度的子串,满足1的个数大于等于0的个数问若串长为n,能构造出多少满足条件的串?dp[i][j][k]表示串长为1<=2 。然后进行求和得结果。HDU - 6020比较坑,没想到这是一道水题,对一个大数,删除n个点要求能够,被三整除,而且没有前导0。被前导0难住了,看题解才发现是一道枚举题,枚举每个非零点i为最高位,判断剩余的数中能不能删出符合(0*a+1*b+2*c)%3==sum%3 && a+b+c==k-i 的情况。I题是一道博弈论,没看懂题意。

你可能感兴趣的:(训练日记)