zoukankan      html  css  js  c++  java
  • [NOIP 2010] 乌龟棋

    [题目链接]

              https://www.luogu.org/problemnew/show/P1541

    [算法]

            f[x][y][z][t]表示现在剩下x张1号卡片,y张2号卡片,z张3号卡片,t张4号卡片

            我们可以通过状态算出现在所在的位置

            转移十分显然

    [代码]

            

    #include<bits/stdc++.h>
    using namespace std;
    #define MAXN 360
    #define MAXS 45
    
    int i,x,y,z,t,n,m,pos;
    int a[MAXN],cnt[5];
    int f[MAXS][MAXS][MAXS][MAXS];
    
    int main() 
    {
            
            scanf("%d%d",&n,&m);
            for (i = 1; i <= n; i++) scanf("%d",&a[i]);
            for (i = 1; i <= m; i++) 
            {
                    scanf("%d",&x);
                    cnt[x]++;    
            }
            f[cnt[1]][cnt[2]][cnt[3]][cnt[4]] = a[1];
            for (x = cnt[1]; x >= 0; x--)
            {
                    for (y = cnt[2]; y >= 0; y--)
                    {
                            for (z = cnt[3]; z >= 0; z--)
                            {
                                    for (t = cnt[4]; t >= 0; t--)
                                    {        
                                            pos = (cnt[1] - x) + (cnt[2] - y) * 2 + (cnt[3] - z) * 3 + (cnt[4] - t) * 4 + 1;
                                            if (x >= 1) f[x - 1][y][z][t] = max(f[x - 1][y][z][t],f[x][y][z][t] + a[pos + 1]);
                                            if (y >= 1) f[x][y - 1][z][t] = max(f[x][y - 1][z][t],f[x][y][z][t] + a[pos + 2]);
                                            if (z >= 1) f[x][y][z - 1][t] = max(f[x][y][z - 1][t],f[x][y][z][t] + a[pos + 3]);
                                            if (t >= 1) f[x][y][z][t - 1] = max(f[x][y][z][t - 1],f[x][y][z][t] + a[pos + 4]);
                                    }    
                            }
                    }
            }
            printf("%d
    ",f[0][0][0][0]);
            
            return 0;
        
    }
  • 相关阅读:
    linux常用命令
    PHP 魔术方法浅谈
    PHP常用的设计模式
    浅谈Restful
    进程,线程与协程的区别
    http与https的
    get与post的区别
    php连接数据库的两种方式
    DRF框架基本组件之过滤,搜索,排序
    DRF-JWT用户认证
  • 原文地址:https://www.cnblogs.com/evenbao/p/9349547.html
Copyright © 2011-2022 走看看