12-25 tyvj水题记录(1023-1024)

Dec 25, 2016


“明明说好的已弃ACM了么?”

“然而看到水题根本控制不住双手T^T…正好c语言考试马上要来了, 没事刷刷水题”

tyvj是不兹词Chrome了么..登录不上, 于是手动评测(AC滑稽脸), 发现AC不了的话千万不要来找我(逃)

题目

http://www.tyvj.cn/p/1023

http://www.tyvj.cn/p/1024

考前最后一周即将降临~

题解

1023

这种破题最近做起来手感真心弱了好多好多T T

还得看一眼解答才能AC…捂脸

转移方程:

f(i, j) = f(i−1, j−1) + Di f(i, 0) = max{f(i−j, j)}

答案:

#include <cstdio>
#include <algorithm>
#include <cmath>
using namespace std;
int n, m;
int d[2005], f[2005][505];//f[i][j]第i分钟结束剩下j疲劳值的最大距离
//f[i][j] = f[i - 1][j - 1] + Di;
//f[i][0] = max(f[i - j][j])
int i, j;
int main(){
    scanf("%d%d", &n, &m);
    for(i = 1; i <= n; ++i)
        scanf("%d", &d[i]);

    for(i = 1; i <= n; ++i){
        f[i][0] = f[i - 1][0];
        for(j = 1; j <= m; ++j){
            f[i][j] = f[i - 1][j - 1] + d[i];
            if(j <= i)f[i][0] = max(f[i][0], f[i - j][j]);
        }
    }
    printf("%d\n", f[n][0]);
    return 0;
}

1024

这个题号是一个整数!

这破题纯粹是耗时间用的, 题目本身没难度就是理解起来坑爹呐。

#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
char p[27];
char s[260];
int i, j;
int mat(char c){
    for(j = 1; j <= 26; ++j)
        if(c == p[j])
            return j;
}

int main()
{
    scanf("%s", p + 1);
    while(scanf("%s", s + 1) != EOF){
        int cnt = 0;
        for(i = 1; s[i] != '\0'; ++i){
            cnt ++;
            if(mat(s[i + 1]) < mat(s[i]))
                break;
        }
        printf("%d", cnt);
    }
    printf("\n");
    return 0;
}