#10.6考试总结

10.6考试总结

P1063 能量项链

其实是一道区间DP题.......应该并不难。就是DP做少了? 莫名不会。实际上仔细想一想就明白了。直接枚举分段点进行计算就可以了。

for(int l = 1, r = x; r < n2; ++l, ++r)
    {
        for(int k = l; k < r; ++k)
        {
            f[l][r] = max_(f[l][r], f[l][k] + f[k + 1][r] + num[l] * num[r + 1] * num[k + 1]);
        }
        if(x == n) ans = max_(ans, f[l][r]);
    }

P1092 虫食算

这虫子怕是广东来的

大法师完美解决。但必须要有剪枝。不然肯定会超。

1.根据竖式确定先出现的字母先枚举情况。
2.根据两个加数直接确定和上的数字。最后判断是否可行。

只要有这两个就没有问题了。

IL bool prune (int t)
{//已知a,b,c 三字母都已填数 那么 判断(a+b)%n=c (a+b+1)%n=c都不成立 已知a,b,c三者其中2个求得第3个已经被占用 
    for (int i=n-1; i>=0; --i)
    {
        if (x[a[i]] != -1 && x[b[i]] != -1 && x[c[i]] != -1)
        {
            if ((x[a[i]] + x[b[i]]) % n != x[c[i]] &&
                (x[a[i]] + x[b[i]] + 1) % n != x[c[i]])
                return 1;
            else
            {
                if(x[a[i]] != -1 && x[b[i]] != -1 && x[c[i]] == -1)
                    if (y[(x[a[i]]+x[b[i]])%n] && y[(x[a[i]]+x[b[i]]+1)%n])
                        return 1;
                if (x[a[i]] != -1 && x[b[i]] == -1 && x[c[i]] != -1)
                    if (y[(x[c[i]]-x[a[i]]+n)%n] && y[(x[c[i]]-x[a[i]]+1+n)%n])//b1=(c-a+n)%n b2=(c-a-1+n)%n
                        return 1;
                if (x[a[i]] == -1 && x[b[i]] != -1 && x[c[i]] != -1)
                    if (y[(x[c[i]]-x[b[i]]+n)%n] && y[(x[c[i]]-x[b[i]]+n-1)%n])//a1=(c-b+n)%n a2=(c-b-1+n)%n
                        return 1;
            }
        }
    }
    return 0;
}

P1052 过河

过河最致命的就是长度\(10^9\)然后又是一个明显的DP题目。怎么都会爆........所以肯定要想办法缩短路程

不知道为什么就取了1-10的最小公倍数来压缩了。

压缩了之后就会非常友好

for (int i=1;i<=l+t;i++)
        for (int j=s;j<=t;j++)
        {
            if (i-j>=0)
                f[i]=min(f[i],f[i-j]);
            f[i]+=stone[i];
        }

P1053 篝火晚会

觉得难就跳过了。实际理解一下题目......考试的时候看不懂事后诸葛亮........但是现在至少会做了

就是找最大值......

然后?然后没了

P054等价表达式

考试的时候思考了一下。随机值带入验证。

因为输入数据少,多验证一下就很可以了。

奈何不会随机数

其实这么做就不难了

转载于:https://www.cnblogs.com/rendex/p/9748359.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值