第一篇博客:A+B Problem

(注释:以下t_b是t_b巨佬,LUZ即LightningUZ蒟蒻(因为名字过于长而简写))
LUZ:我们来讲讲A+B问题
t_b: 好难呀...
LUZ: 是的啊。。。至少省选难度。。。洛谷上都是奆佬
会想到这样的代码

#include <stdio.h>

int main() {
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d", a+b);
    return 0;
}

(出题人的代码)
但是,出题人都给你了,显然这个代码就不是正确的。我们考虑DP。
t_b(装蒻中):哇,好神奇呀
LUZ:设dp[i][j]为i+j的结果
t_b(持续装蒻):恩,您说,我太蒟蒻了...
LUZ:那么dp[i][j]=dp[i][j-1]+1。很明显,因为那个1抵消了
t_b: 对
LUZ:当然dp[i][0]=dp[i-1][0]+1。这是最开始的条件,有了这个才能递推下去。
t_b(持续装蒻):您说的太对了.%%%
我们会发现,这个状态只和上一行的状态有关
LUZ:所以考虑滚动数组。当然,dp[i][j]也只和dp[i][j-1]有关,这个也可以优化掉。空间就是O(1),能过
t_b:可以优化成1维吗
LUZ:珂以的,两维都滚掉了。但是时间还需要t_b巨佬优化,有请t_b巨佬(原因是我不会了)
t_b:所以我们考虑乘法原理。由乘法原理(乱搞)得,答案应该是a*b。交上去试试,代码:

#include <stdio.h>

int main() {
    int a,b;
    scanf("%d%d",&a,&b);
    printf("%d", a*b);
    return 0;
}

输入2 2 输出 4
好像差不多。。。
LUZ:仿佛是的。您说的对%%%
t_b(显示出真正的巨佬威风):是否考虑用到spfa呢,不过它好像已经死了..
LUZ(假装会):仿佛珂以。
LUZ(恢复原状):评测姬对您的神仙代码一脸懵逼
t_b(谦虚中):挂掉了...
LUZ:
tmp.png
AC了。并且评测姬告诉您:
Wonderful Answer(绝妙的答案)
他认为您的代码十分的wonderful

好的,瞎BB就到这里了。如果您是新手,千万不要信我们的蒙骗,这只是测试一下。。。

猜你喜欢

转载自www.cnblogs.com/LightningUZ/p/10849804.html