搜索 洛谷P2530 [SHOI2001]化工厂装箱员

P2530 [SHOI2001]化工厂装箱员

题目描述

118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不同纯度的成品分开装箱,装箱员grant第1次顺序从流水线上取10个成品(如果一共不足10个,则全部取出),以后每一次把手中某种纯度的成品放进相应的箱子,然后再从流水线上顺序取一些成品,使手中保持10个成品(如果把剩下的全部取出不足10个,则全部取出),如果所有的成品都装进了箱子,那么grant的任务就完成了。

由于装箱是件非常累的事情,grant希望他能够以最少的装箱次数来完成他的任务,现在他请你编个程序帮助他。

输入输出格式

输入格式:

第1行为n(1<=n<=100),为成品的数量

以后n行,每行为一个大写字母A,B或C,表示成品的纯度。

输出格式:

仅一行,为grant需要的最少的装箱次数。

输入输出样例

输入样例#1:
11
A
B
C
A
B
C
A
B
C
A
B
输出样例#1:
3

复制代码
 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cstring>
 4 #include<algorithm>
 5 using namespace std;
 6 int n;
 7 int data[110],f[110][11][11][11];
 8 char a;
 9 bool check[110][11][11][11];
10 int dfs(int num,int x,int y,int z){
11     int tot=x+y+z;
12     int tmp=0;
13     for(int i=n-num+1;i<=n;i++){
14         if(tot+tmp==10) break;
15         if(data[i]==0) x++;
16         if(data[i]==1) y++;
17         if(data[i]==2) z++;
18         tmp++;
19     }
20     if(check[num-tmp][x][y][z]) return f[num-tmp][x][y][z];
21     check[num-tmp][x][y][z]=1;
22     if(num==tmp){
23         int t=3;
24         if(x==0) t--;
25         if(y==0) t--;
26         if(z==0) t--;
27         f[0][x][y][z]=min(f[0][x][y][z],t);
28         return f[0][x][y][z];
29     }
30     if(x) f[num-tmp][x][y][z]=min(f[num-tmp][x][y][z],dfs(num-tmp,0,y,z)+1);
31     if(y) f[num-tmp][x][y][z]=min(f[num-tmp][x][y][z],dfs(num-tmp,x,0,z)+1);
32     if(z) f[num-tmp][x][y][z]=min(f[num-tmp][x][y][z],dfs(num-tmp,x,y,0)+1);
33     return f[num-tmp][x][y][z];
34 }
35 int main(){
36     scanf("%d",&n);
37     for(int i=1;i<=n;i++){
38         //scanf("%c",&a);
39         cin>>a;
40         data[i]=a-'A';
41     }
42     memset(f,0x3f3f3f3f,sizeof(f));
43     printf("%d",dfs(n,0,0,0));
44     return 0;
45 }
复制代码

 

posted @   zwube  阅读(177)  评论(0编辑  收藏  举报
编辑推荐:
· 用 C# 插值字符串处理器写一个 sscanf
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
阅读排行:
· 趁着过年的时候手搓了一个低代码框架
· 本地部署DeepSeek后,没有好看的交互界面怎么行!
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· 乌龟冬眠箱湿度监控系统和AI辅助建议功能的实现
点击右上角即可分享
微信分享提示