P1006 [NOIP2008 提高组] 传纸条和周总结

P1006 [NOIP2008 提高组] 传纸条

1,题意,两条路,一条从左上到右下,另一条从右下到左上,但是第一条拿过的数值第二条不能再拿。
题解:4重循环,判断和比较
解释:这样走不用担心第二次会再一次添加第一次的好感度,因为第二次走到这里,是两次走到这里的最大值,里面包含了两次路线在同一点相遇的情景,而且两个人相遇只会加一次,不如加两个方格的多。

#include <iostream>

using namespace std;
int a[55][55];
int dp[60][60][60][60];
int n,m;

int main()
{
    int i1,i2,i3,i4,i5;
    cin>>n>>m;
    for(i1=1;i1<=n;i1++)
        for(i2=1;i2<=m;i2++)
            cin>>a[i1][i2];

    for(i1=1;i1<=n;i1++)
        {for(i2=1;i2<=m;i2++)
            for(i3=1;i3<=n;i3++)
                for(i4=1;i4<=m;i4++)
                {
                    i5=max(dp[i1-1][i2][i3-1][i4],dp[i1-1][i2][i3][i4-1]);
                    i5=max(dp[i1][i2-1][i3-1][i4],i5);
                    i5=max(dp[i1][i2-1][i3][i4-1],i5);
                    dp[i1][i2][i3][i4]=i5+a[i1][i2]+a[i3][i4];
                    if(i1==i3&&i2==i4) dp[i1][i2][i3][i4]-=a[i1][i2];
                    //if(i1==n) {cout<<dp[i1][i2][i3][i4]<<endl;}
                }
        }
    cout<<dp[n][m][n][m]<<endl;
    return 0;
}

一,周总结。

1.周一写了一个codeforces上的题(三个题简直就是深水题,但是上周末睡觉了,错过了比赛),本周就没有比赛了。
1.这周做的洛谷题有点少,主要是做方格取数的时候一点思路都没有,明明感觉之前做过。看了方格取数的题解之后,做传纸条的时候也是一点思路也没有,看了题解之后,发现这两个题其实同一种做法。简直是无语了。
2.这周时间很多,感觉效率太低了。有时候一道题要用一天多的时间来想,这样三天也做不了两个题。但是其实目前做的题就是单纯地用一个知识点来解决问题,只要会应用了,其实就可以做出来。

二,前段时间的总结

1.11周算是一个分界线吧。有几门课已经结课了,空闲时间就多了,但是考试要来了,所以如何调节好acm,期末考试,英语四级是一个考验。
2.之前codeforces的比赛大部分都是在晚上进行的,所以没时间进行实战,只能补题。
3,洛谷上的题是有些难度的,目前感觉,做普及/提高-的(部分题)是有思路的,但是写不出来,做普及+/提高的是直接没有思路。感觉差距有点大。希望以后刷题多了,能做普及+/提高的题也能有思路,做普及/提高-的题能又快又对地ac,早日做到提高+/省选-。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值