码迷,mamicode.com
首页 > 其他好文 > 详细

Codeforces Round #162 (Div. 1) C Choosing Balls dp

时间:2015-05-08 18:10:41      阅读:125      评论:0      收藏:0      [点我收藏+]

标签:

//dp[i] 表示以颜色为i结尾的最大值
//dp[i] = max(dp[i] , dp[i] + a*v[i] ,other_max + b*v[i]) ;
//为除颜色i以外的其它颜色的最大值
#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std ;
const int maxn = 100010 ;
const __int64 inf = 0x7fffffffffffffff;
__int64 dp[maxn] ;
__int64 c[maxn] ;
__int64 v[maxn] ;
int main()
{
   // freopen("input.txt","r" ,stdin) ;
    int n , q;
    while(~scanf("%d%d" ,&n ,&q))
    {
        for(int i = 1;i <= n;i++)
        scanf("%I64d" ,&v[i]) ;
        for(int i = 1;i <= n;i++)
        scanf("%I64d" ,&c[i]) ;
        while(q--)
        {
            for(int i = 1;i <= n;i++)
            dp[i] = -inf;
            __int64 a,b;
            scanf("%I64d%I64d"  ,&a ,&b) ;
            __int64 ma  = 0, ma_s  = 0, ma_c = 0;
            for(int i = 1;i <= n;i++)
            {
                __int64 temp_b;
                __int64 temp_a;
                if(dp[c[i]] == -inf)
                temp_a = b*v[i];
                else
                temp_a = a*v[i] + dp[c[i]] ;
                if(ma_c == c[i])
                {
                    temp_b = b*v[i] + ma_s;
                    dp[c[i]] = max(max(dp[c[i]] , temp_b) ,temp_a) ;
                    ma = max(ma , dp[c[i]]);
                }
                else
                {
                     temp_b = b*v[i] + ma;
                     dp[c[i]] = max(max(dp[c[i]] , temp_b),temp_a);
                     if(dp[c[i]] >= ma)
                     {
                         ma_s = ma;
                         ma_c = c[i] ;
                         ma = dp[c[i]] ;
                     }
                     else ma_s = max(ma_s , dp[c[i]]);
                }
            }
            printf("%I64d\n" , ma) ;
        }
    }
    return  0;
}





























































Codeforces Round #162 (Div. 1) C Choosing Balls dp

标签:

原文地址:http://blog.csdn.net/cq_pf/article/details/45582977

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!