题目描述

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

题解:
dp[i][a][b][c]为取了i次,A剩a个,B剩b个,C剩c个。
代码:
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int z[],dp[][][][];
int n,inf; int dfs(int p,int a,int b,int c){
if(p==n){
dp[n][a][b][c]=(a>)+(b>)+(c>);
return dp[p][a][b][c];
}
for(;a+b+c<;){
p++;
if(z[p]==)a++;
if(z[p]==)b++;
if(z[p]==)c++;
if(p==n)break;
}
if(dp[p][a][b][c]!=inf)return dp[p][a][b][c];
if(a)dp[p][a][b][c]=min(dp[p][a][b][c],dfs(p,,b,c)+);
if(b)dp[p][a][b][c]=min(dp[p][a][b][c],dfs(p,a,,c)+);
if(c)dp[p][a][b][c]=min(dp[p][a][b][c],dfs(p,a,b,)+);
return dp[p][a][b][c];
} int main(){
scanf("%d",&n);char ch;
inf=0x3f3f3f3f;
memset(dp,0x3f,sizeof(dp));
for(int i=;i<=n;i++){
ch=getchar();
while(ch<'A'||ch>'C')ch=getchar();
int x=ch-'A'+;
z[i]=x;
}
printf("%d",dfs(,,,));
return ;
}
 

最新文章

  1. 实现在Android 进程和线程
  2. 【PHP面向对象(OOP)编程入门教程】20.PHP5接口技术(interface)
  3. WPF ListBox响应鼠标滚轮
  4. android80 HttpClient框架提交数据 get方式
  5. BZOJ 1044 木棍分割
  6. asp.net中WebForm.aspx与类文件分离使用
  7. 转: 如何用linux命令修改linux主机ip网关子网掩码
  8. 正式学习React (七) react-router 源码分析
  9. 全国计算机等级考试二级教程-C语言程序设计_第6章_字符型数据
  10. perl 面向对象 use base
  11. knockout同时绑定多个实体demo
  12. 使用libpcap过滤arp
  13. 在CentOS 上搭建nginx来部署静态页面网站
  14. Spring AOP @AspectJ 入门基础
  15. JavaWeb学习 (二十六)————监听器(Listener)学习(二)
  16. python windows 安装pandas,numpy....
  17. Mysql缓存中innodb_buffer_pool与Qcache的区别
  18. Sql Server 中使用日期遍历
  19. X86 寻址方式、AT&amp;T 汇编语言相关知识、AT&amp;T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
  20. Mysql的“Table &#39;mysql.servers&#39; doesn&#39;t exist”的解决方法

热门文章

  1. QTreeWidget里嵌套表格QTableView
  2. C语言 结构体作为函数的参数
  3. 试验笔记 - 使用7-ZIP压缩来减小APK安装包体积
  4. NGINX配置文件优化示例
  5. 解决opencv无法读AVI视频的问题
  6. c# .net 关于接口实现方式:隐式实现/显式实现!
  7. 华为云测平台服务再升级!华为M5系列平板调测能力正式上线!
  8. webstorm-----eslint的配置和使用
  9. github commit, issue, pull request, project
  10. 20170325 ABAP调用webservice