首页 > 其他分享 >P2530 [SHOI2001] 化工厂装箱员

P2530 [SHOI2001] 化工厂装箱员

时间:2024-12-06 12:13:32浏览次数:6  
标签:const int P2530 化工厂 装箱 SHOI2001

P2530 [SHOI2001] 化工厂装箱员

记状态f[i][a][b][c]表示到i这个位置,手里还剩下的a个A,b个B,c个C时装了几次箱.

那么状态转移(以A为例):
if(ch[i]==A&&a)f[i][a][b][c]=f[i][a-1][b][c]
f[i][0][b][c]=min(f[i][0][b][c],f[i][a][b][c]+1)

答案既为f[n][0][0][0]

Code:

#include<bits/stdc++.h>
const int N=105;
const int M=11;
const int inf=1e9;
using namespace std;
int f[N][M][M][M];
void init()
{
    for(int i=0;i<N;i++)for(int a=0;a<M;a++)
    for(int b=0;b<M;b++)for(int c=0;c<M;c++)
    f[i][a][b][c]=inf;
}
int n;
char ch[N];
void work()
{
    cin>>n;
    init();
    for(int i=1;i<=n;i++)
    {
        cin>>ch[i];
    }
    f[0][0][0][0]=0;
    for(int i=1;i<=n;i++)
    {
        for(int a=0;a<=10;a++)
        {
            for(int b=0;a+b<=10;b++)
            {
                for(int c=0;a+b+c<=10;c++)
                {
                    if(ch[i]=='A'&&a)f[i][a][b][c]=f[i-1][a-1][b][c];
                    if(ch[i]=='B'&&b)f[i][a][b][c]=f[i-1][a][b-1][c];
                    if(ch[i]=='C'&&c)f[i][a][b][c]=f[i-1][a][b][c-1];
                    f[i][0][b][c]=min(f[i][0][b][c],f[i][a][b][c]+1);
                    f[i][a][0][c]=min(f[i][a][0][c],f[i][a][b][c]+1);
                    f[i][a][b][0]=min(f[i][a][b][0],f[i][a][b][c]+1);
                }
            }
        }
    }
    printf("%d",f[n][0][0][0]);
}
int main()
{
    //freopen("P2530.in","r",stdin);
    //freopen("P2530.out","w",stdout);
    work();
    return 0;
}

标签:const,int,P2530,化工厂,装箱,SHOI2001
From: https://www.cnblogs.com/LG017/p/18590468

相关文章

  • 晃电治理新思路之来自国高电气的新一代预装箱式无扰动快切开闭所
    钢铁产业是国民经济的重要支柱,持续的安全生产是企业得以生存与发展的关键。然而,晃电现象却如同隐形杀手,总是在意想不到的时刻对企业的正常生产造成严重打击。在炼铁工艺中,焦化炼焦是至关重要的一环,对电力的连续性要求极为严格。为了更好地了解客户的需求,国高电气在过去一两年内对河......
  • 【生日视频制作】集装箱红色货车大卡车身AE模板AE模板修改文字软件生成器教程特效素材
    生日视频制作教程集装箱红色货车大卡车身AE模板修改文字特效广告生成神器素材祝福玩法AE模板工程怎么如何做的【生日视频制作】集装箱红色货车大卡车身AE模板AE模板修改文字软件生成器教程特效素材【AE模板】生日视频制作步骤:下载AE模板安装AE软件把AE模板导入AE......
  • 【题解】【动态规划】—— [NOIP2001 普及组] 装箱问题
    【题解】【动态规划】——[NOIP2001普及组]装箱问题[NOIP2001普及组]装箱问题题目描述输入格式输出格式输入输出样例输入#1输出#1提示1.题意解析2.AC代码2.1.二维d......
  • 装箱拆箱(boxing and unboxing)
    1.引用类型和值类型为了理解装箱和拆箱,首先需要了解值类型和引用类型的特点。引用类型:必须从托管堆分配每个对象有一些额外成员,这些成员必须初始化对象中其它字节总是为0从托管堆分配对象,可能强制执行一次垃圾回收从引用类型的特点我们可以知道,如果所有类型都是引用......
  • 值类型和引用类型、装箱和拆箱、静态类和普通类、方法的重载、继承和多态、访问修饰符
    目录一、值类型和引用类型的区别?值类型(ValueTypes)定义:特点:示例:引用类型(ReferenceTypes)定义:特点:示例:举例说明:总结:二、装箱和拆箱装箱(Boxing)特点:示例:拆箱(Unboxing)特点:示例:示例代码:装箱和拆箱的影响最佳实践:三、静态类和普通类的区别?静态类(Static......
  • c#优化装箱拆箱
    1、通过泛型//obj是一个int类型的值类型,在newTest的时候传进去的obj是就会装箱成引用类型,以为Test类是引用类型intobj=2;Testtest=newTest(obj);//通过泛型这里obj传进去的就是值类型,就不需要装箱了Test<int>test=newTest<int>(obj);第一段代码中会发生装箱,因......
  • 值类型和引用类型、装箱和拆箱、静态类和普通类、方法的重载、继承和多态
    目录值类型和引用类型的区别?值类型(ValueTypes)定义:特点:示例:引用类型(ReferenceTypes)定义:特点:示例:举例说明:总结:装箱和拆箱装箱(Boxing)特点:示例:拆箱(Unboxing)特点:示例:示例代码:装箱和拆箱的影响最佳实践:静态类和普通类的区别?静态类(StaticClass)普通......
  • SimPy仿真:集装箱码头如何保证单个集装箱卸货和顺序运输?
    我正在对集装箱码头进行SimPy模拟,船舶到达、停泊并使用起重机卸载集装箱,然后使用卡车进行运输。问题陈述_pt1、问题陈述_pt2我需要确保:每台起重机一次仅卸载一个集装箱。在有空卡车可用之前,起重机应继续其卸载过程,无论之前的卡车是否已完成......
  • Java中的装箱与拆箱详解
    Java中的装箱与拆箱详解大家好,我是微赚淘客系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!装箱与拆箱的基本概念在Java中,装箱(Boxing)和拆箱(Unboxing)是指将基本数据类型与它们对应的包装类之间进行相互转换的过程。Java为每种基本数据类型提供了对应的包装类,如Integer对应in......
  • 拆箱和装箱
    //手动装箱Integerinteger=newInteger(10);//手动拆箱inti=integer.intValue();//自动装箱,通过Integer.valueOf()完成Integerinteger=10;//自动拆箱,通过Integer.intValue()完成inti=integer;IntegerCachepublicstaticIntegervalueOf(inti)......