#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

时间: 2024-10-27 17:47:27

#10.6考试总结的相关文章

#10.4考试总结

10.4考试总结 P1017 进制转换 题目里的进制转换跟最开始做的区别就是这个权值是负数......在短除过程中可能会有各种问题..... 我想用短除就必须要解决这个负数的问题:-3/-2=2 要做到这个样子.....系统从来不会让你好过:-3%-2=-1,总会为难你一下.就需要自己想办法来解决这个问题 -m+n%m 这个样子就可以解决了.....然后题目就简单了起来.栈储存结果,或者递归输出随意就好 P1004 方格取数 没有仔细看数据范围.在认证研读了一边以后.....这.....(哔~~

10.11考试总结

10.11考试总结 全是DP实际上发现暴力也能有部分分....... 三角形牧场 DP......当时总是感觉不像啊 需要处理的就是枚举三角形边长可能出现的情况.因为周长在输入端时候就可以确定了,所以只需要通过枚举两条边就可以强行算出第三条边..... 所以就省空间+时间.... f[0][0] = 1; for (int i=1; i<=n; ++i) for(int j=half; j>=0; j--) for(int k=j; k>=0; k--) if(j >= d[i]

10.23 考试总结

10.23 考试总结 救火行动 不得不说还是想问候一下出题人的,那个白色的字是什么鬼.....不过看到了不要喧哗倒是很有意思 所以就是一个大模拟题.....因为比较麻烦,只不过数据很小,纯模拟循环都可以过的说. 考试的时候没有注意到一个点就是可以直接灭火的时候当前这一轮是不算这层着火的,也就是说第五层的火势应该只涨i-1 稍微注意一下这个就可以了,然后就还好,其余的还是都有好好注意到的 打篮球 这个题目我是考试的时候一下没有相同怎么建图....实际上暴力枚举各种参数就可以了. 然后就是纯最短最长

10.25 考试总结

10.25 考试总结 距离退役死亡越来越近. circle 其实只要暴力查找就可以了 搜索跑图,稍微注意一下不要让法师反复横跳就可以了,多加一个数据就可以解决只要一找到已经访问过的就证明是环了.... 开始想复杂了,以为可能有一个奇葩的图....原来就是一个简单的环啊 path 其实就是找必经之路,把一些可以多选择的....缩点,实际上就是tarjan缩点, 然后找桥. 桥就是我们要的必经之路 然后又要去学tarjan.....模板一下背不下来 mst 首先用prim 作出最小生成树.然后考虑修

10.29 考试总结

10.29 考试总结 a 咋一看是暴力跑循环,实际上还是暴力循环.只不过根据题目意思,实际上公式\(f(x) + x = n\)而这个f(x)就是x各个位的和.大概脑补一下还是能算出来f(x)最大也就是9*位数就可以将整体的循环控制在几千...... b 设\(dp[i][j][k][0/1]\) 表示当前字符串s 到了第i 位,字符串t 到了第j 位,目前一共 选出了k 个子串,s[i] 与t[j] 是否都被选择的最大长度. 考虑s[i] 与t[j] ,如果我们不将它们加入选择的k 个子串,那

2019.10.18考试解题报告

总结 期望得分:\(100 + 100 + 10\) 实际得分:\(0 + 20 + 10\) 完美. 今天的考试格外完美,\(T1\)做了*\(2.5h\),最后换来了\(0\)分的好成绩,史无前例,美妙绝伦,我竟然不删调试,做得?好. \(T2\)是个好题,是个好阅读题,\(n\)和\(m\)写反了,样例给的是\(n\)和\(m\)相等的情况,最终完美\(100->20\),我竟然这么粗心,题目竟然没读好,做得?好. \(T3\)没时间了,都耗在\(T1\)上了,可惜\(T1\)还没有分,做

2019.10.28~2019.10.31考试总结

连续几天的考试都没有总结,今天有些时间,总结一下这几场考试的情况. 10.28场 开场先读题,然后推了推T2,发现是水题.出于对期望的恐惧,没有选择研究T3,而是回头肝T1,想了很久,没有思路.打完T2,自己搓了一些数据,过了,回头打了T1的暴搜,再打了一个表,似乎部分分挺多的.再做T3,有点思路,但思路并不清晰,于是打了特殊数据就完了. 期望得分:70+100+20=190 最终得分:30+100+20=150 结果T1是DP,没看出来.唔...原题,地精部落,题果然还是做的太少了,有些人做过

10.2考试总结

你没看错,国庆第二天我就来了 第一题:基本都能水到分,这道题暴力枚举+dfs即可,注意需要两遍dfs 第二题: 这题说白了考的知识点我还没学=w= 为了以后看,我就把题解复制上去吧 问题1,最少死几个人: 没有入度的点必然不死,不死的点指向的点必死.使用拓扑排序实现,若最后剩下环且环上所有点都不死,则每个环死亡人数为(L+1)/2. 问题2,最多死几个人: 没有入度的点必然不死,若存在没有叶子且长度大于1的环,则该环上有一个人不死.其余人都可以死亡. http://blog.csdn.net/p

18.10.17 考试总结

今天心态崩崩,,,.. 这道题比较简单 因为每一位是单独对答案产生贡献的 所以枚举每一位 用数位dp求出该位是$1$的数量 在求出该位是$0$的 那么答案就是那一位对应的二的幂次再乘以$num1 * num0 * 2$ 每一对会产生两次贡献 代码 #include <bits/stdc++.h> #define rg register #define il inline using namespace std; typedef long long ll; const ll MOD = 1e9