2016郑州轻工业学院校赛 B 蛤玮的财宝

比赛时没写出来,结束后听ccx学长讲,才知道有多线程DP,感觉自己菜成dog,之前就没听过,还是太弱。

#include <iostream>
#include <queue>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <stack>
using namespace std;

int dp[222][111][111];
int a[111][111];

#define max4(a,b,c,d) max(max(a,b),max(c,d))

int main()
{
    int t, n, m;
    scanf("%d", &t);
    while(t--)
    {
        scanf("%d%d", &n, &m);
        for(int i=1; i<=n; i++)
        {
            for(int j=1; j<=m; j++)
            scanf("%d", &a[i][j]);
        }
        memset(dp, 0, sizeof(dp));
        dp[0][1][1] = a[1][1];
        for(int k=1; k<=n+m-2; k++)
        {
            for(int i=1; i<=k+1; i++)
            {
                for(int j=1; j<=k+1; j++)
                {
                    dp[k][i][j] = max4(dp[k-1][i][j], dp[k-1][i-1][j], dp[k-1][i][j-1], dp[k-1][i-1][j-1]);
                    if(i!=j)
                        dp[k][i][j]+=a[i][k+2-i]+a[j][k+2-j];
                    else
                        dp[k][i][j]+=a[i][k+2-i];
                }
            }
        }
        printf("%d\n", dp[n+m-2][n][n]);
    }

    return 0;
}
时间: 2024-10-04 23:12:53

2016郑州轻工业学院校赛 B 蛤玮的财宝的相关文章

HDU 浙江科技学院校赛2016

Let's go to play 题意:给你N行信息,F 或者 M 是 表示 女士 或者男士 在 A -- B  之间的日期内有有空.作为主人 你要确定一天使得这一天邀请到的人数最多,并且这一天来得男人和女人一样多. 方法:一年一共366天,把每一天的信息记住,最后遍历一下,看哪一天能够邀请到的人数最多. 非常实用的一个点啊..以后到了公司说不定可以用得到.写个程序跑一下,算法简直吊炸天. #include <stdio.h> #include <algorithm> #inclu

线段树区间覆盖 蛤玮打扫教室(zzuli 1877)

http://acm.zzuli.edu.cn/zzuliacm/problem.php?id=1877 Description 现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每个签上写着两个数L,R(L<=R),抽到的人要把[L,R]的教室全部打扫一遍.由于蛤玮是队长而且他很懒,他通过某种交易提前知道了所有m个签上面写的是什么,而且通过某种魔法可以控制自己抽到哪个签.一个教室被打扫一次就干净了,所以蛤玮想知道自己抽哪些签可以不用打扫教室而且不会被教练发现,即他抽到的区间全都会

ZZULI 1876: 蛤玮的项链 Hash + 二分

Time Limit: 6 Sec  Memory Limit: 128 MBSubmit: 153  Solved: 11 SubmitStatusWeb Board Description 蛤玮向心仪的妹子送了一条项链,这条项链是由小写字母构成的首尾相接的字符串,妹子看了看项链对蛤玮说,"我希望它是对称的",蛤玮想了想之后决定,从项链上截取出一段,这段如果是回文的话那么妹子戴起来就是对称的了.由于蛤玮会魔法,他可以把项链上的某一个字母变成任意另一个字母,但由于魔力限制他最多只能变两

【2016北京集训测试赛(八)】 crash的数列

Description 题解 题目说这是一个具有神奇特性的数列!这句话是非常有用的因为我们发现,如果套着这个数列的定义再从原数列引出一个新数列,它居然还是一样的...... 于是我们就想到了能不能用多点数列套着来加速转移呢? 但是发现好像太多数列套起来是可以烦死人的...... 我们就采用嵌套两次吧,记原数列为A,第一层嵌套为B,第二层嵌套为C. 我们其实可以发现一些规律,对于Ci,它对应了B中i的个数:对于Bi,它对应了A中i的个数. 稍加处理即可,我们一边计算一边模拟数列的运算,同时可以计算

zzuli 1877 蛤玮打扫教室

1877: 蛤玮打扫教室 Description 现在知道一共有n个机房,算上蛤玮一共有m个队员,教练做了m个签,每个签上写着两个数L,R(L<=R),抽到的人要把[L,R]的教室全部打扫一遍.由于蛤玮是队长而且他很懒,他通过某种交易提前知道了所有m个签上面写的是什么,而且通过某种魔法可以控制自己抽到哪个签.一个教室被打扫一次就干净了,所以蛤玮想知道自己抽哪些签可以不用打扫教室而且不会被教练发现,即他抽到的区间全都会被别人打扫一遍. 蛤玮被教练叫去打扫机房,集训队有很多机房,也有很多队员,现在他

2016广东工业大学新生杯决赛网络同步赛暨全国新生邀请赛 题解&amp;源码

Problem A: pigofzhou的巧克力棒 Description 众所周知,pigofzhou有许多妹子.有一天,pigofzhou得到了一根巧克力棒,他想把这根巧克力棒分给他的妹子们.具体地,这根巧克力棒长为 n,他想将这根巧克力棒折成 n 段长为 1 的巧克力棒,然后分给妹子们. 但是他妹子之一中的 15zhazhahe 有强迫症.若它每次将一根长为 k 的巧克力棒折成两段长为 a 和 b 的巧克力棒,此时若 a=b,则15zhazhahe会得到一点高兴值. pigofzhou想知

2016年 河南工业大学校赛 A题.饶学妹的比赛

饶学妹的比赛 时间限制: 1 秒  内存限制: 64 MB  |  提交: 385  解决: 120 题目描述 饶学妹组织了一场ACM赛制的比赛,大家纷纷慕名来参加.比赛中大家交题只会有两种结果:AC,WA.比赛结束了,饶学妹制作榜单啦.首先按AC题目的数目(重复AC一道题只算一次)从多到少排名:AC题目数目相同的同学按罚时(罚时计算方式为:单题罚时 = (首次AC该题目时间 + 首次AC之前WA的次数 * 20) min,总罚时 = 各题罚时之和:即某题目AC之后,对这道题目后续的提交均不计入

2016轻院校赛E作死报告

#include <stdio.h>int nums[1000005], judge[1000005];///nums数组表示从1900年到某年期间的闰年个数int days[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, {0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};void Init(){ for(int i=1900; i<=1000000; i

蛤玮学计网 -- 简单的判断ip

心累 , 狗日的想了好多数据 , ......啥也不说了 我去哭一会 .  1 #include<stdio.h> 2 #include<string.h> 3 #include<math.h> 4 #include<iostream> 5 #include<limits.h> 6 #include<algorithm> 7 #include<queue> 8 #include<vector> 9 #inclu