zoukankan      html  css  js  c++  java
  • HDU5074 dp xingxing在努力

      这道题就是给你一个序列a, 定义序列的最优美度为d[a[i]][a[i+1]], 现在让sigma(d[a[i]][a[i+1]]) i=1 - n-1最大,当a[i]<0是序列这个位置可以随便选, 否则不能随便选, 则sigma(d[a[i]][a[i+1]]) i=1 - n-1最大是多少?这道题乍一看是搜索, 然而看一下数据范围, 感觉搜索胜任不了, 于是果断想了一种dp的做法,定义dp[i][j]为第i个位置为j时的最大值, 那么答案就可以推出来, 具体见代码:

    /*************************************************************************
        > File Name: 1004.cpp
        > Author: xingxing
        > Mail: 
        > Created Time: 2015年12月08日 星期二 19时14分21秒
     ************************************************************************/
    
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    
    int f[100+10][55];
    int a[55][55];
    int num[105];
    int n, m;
    
    int main()
    {
        int T;
        scanf("%d", &T);
        while(T--)
        {
            scanf("%d%d", &n, &m);
            for(int i=1; i<=m; i++)
                for(int j=1; j<=m; j++)
                    scanf("%d", &a[i][j]);
            memset(f, 0, sizeof(f));
            for(int i=1; i<=n; i++)
                scanf("%d", &num[i]);
            for(int i=2; i<=n; i++)
            {
                if(num[i-1] < 0)
                {
                    for(int j=1; j<=m; j++)
                         for(int k=1; k<=m; k++)
                            f[i][j] =max(f[i][j], f[i-1][k] + a[k][j]);
                        
                }
                else 
                {
                    for(int j=1; j<=m; j++)
                        f[i][j] = max(f[i][j], f[i-1][num[i-1]]+a[num[i-1]][j]);
                }
            }
            int res = 0;
            if(num[n] < 0)
                for(int j=1; j<=m; j++)
                    res = max(res, f[n][j]);
            else 
                res = f[n][num[n]];
            printf("%d
    ", res);
        }
        return 0;
    }
  • 相关阅读:
    CH负责内容的两个人——北漂18年(66)
    perl 跨行匹配;
    elk之nginx
    perl 分析binlog 定位错误sql 思路
    rsyslog 日志格式和输出
    rsyslog 定义模板
    rsyslog ~ 波浪号
    过滤器
    rsyslog masg和rawmsg的区别
    金融行业的BI应用分析
  • 原文地址:https://www.cnblogs.com/xingxing1024/p/5031314.html
Copyright © 2011-2022 走看看