洛谷 p2530 化工场装箱员(资源型)
化工场装箱员
https://www.luogu.org/problem/show?pid=2530
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需要的最少的装箱次数。
【输入样例】worker.in
11
A
B
C
A
B
C
A
B
C
A
B
【输出样例】worker.out
3
dfs TLE,得70,
状态:装了s次,从流水线上取下了d个,手中有a个A产品,b个B产品,c个C产品深搜
#include<cstdio>
#include<iostream>
using namespace std;
int n,x[],f[][][];
int A,B,C,ans=;
char c;
void dfs(int s,int d,int a,int b,int c)
{
if(d==n)
{
ans=min(ans,s+(a>)+(b>)+(c>));
return;
}
while(d<n)
{
if(a+b+c!=)
{
++d;
switch(x[d])
{
case :a++;break;
case :b++;break;
case :c++;break;
}
}
else break;
}
if(a) dfs(s+,d,,b,c);
if(b) dfs(s+,d,a,,c);
if(c) dfs(s+,d,a,b,);
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
cin>>c;
if(c=='A') x[i]=,A++;
else if(c=='B') x[i]=,B++;
else x[i]=,C++;
}
dfs(,,,,);
printf("%d",ans);
}
记忆化搜索 AC
f[d][a][b][c]=s 表示的意义同上
状态转移:f[d][a][b][c]=min(f[d][0][b][c],f[d][a][0][c],f[d][a][b][0])+1
初始化:f数组赋为极大值
#include<cstdio>
#include<iostream>
using namespace std;
int n,x[],f[][][][];
int A,B,C;
char c;
int dfs(int d,int a,int b,int c)
{
if(d==n)
{
f[d][a][b][c]=(a>)+(b>)+(c>);
return f[d][a][b][c];
}
while(d<n)
{
if(a+b+c!=)
{
++d;
switch(x[d])
{
case :a++;break;
case :b++;break;
case :c++;break;
}
}
else break;
}
if(f[d][a][b][c]<) return f[d][a][b][c];
if(a) f[d][a][b][c]=min(f[d][a][b][c],dfs(d,,b,c)+);
if(b) f[d][a][b][c]=min(f[d][a][b][c],dfs(d,a,,c)+);
if(c) f[d][a][b][c]=min(f[d][a][b][c],dfs(d,a,b,)+);
return f[d][a][b][c];
}
int main()
{
scanf("%d",&n);
for(int i=;i<=n;i++)
{
cin>>c;
if(c=='A') x[i]=,A++;
else if(c=='B') x[i]=,B++;
else x[i]=,C++;
}
for(int l=;l<=n;l++)
for(int i=;i<=;i++)
for(int j=;j<=;j++)
for(int k=;k<=;k++)
f[l][i][j][k]=;
printf("%d",dfs(,,,));
}
洛谷 p2530 化工场装箱员(资源型)的更多相关文章
- 洛谷 P2530 [SHOI2001]化工厂装箱员 解题报告
P2530 [SHOI2001]化工厂装箱员 题目描述 118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B ...
- 洛谷P2530 [SHOI2001]化工厂装箱员
题目描述 118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须把不 ...
- 洛谷2530(codevs2098)化工厂装箱员
题目:https://www.luogu.org/problemnew/show/P2530 dp或搜索. dp做法就是 当前值+1 转移到 当前某一维为0.位置前进了c位 的地方.但没写. 写了搜索 ...
- 斜率优化dp学习笔记 洛谷P3915[HNOI2008]玩具装箱toy
本文为原创??? 作者写这篇文章的时候刚刚初一毕业…… 如有错误请各位大佬指正 从例题入手 洛谷P3915[HNOI2008]玩具装箱toy Step0:读题 Q:暴力? 如果您学习过dp 不难推出d ...
- 化工厂装箱员(洛谷 P2530)
题目描述 118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须 ...
- 化工厂装箱员 洛谷 p2530
题目描述 118号工厂是世界唯一秘密提炼锎的化工厂,由于提炼锎的难度非常高,技术不是十分完善,所以工厂生产的锎成品可能会有3种不同的纯度,A:100%,B:1%,C:0.01%,为了出售方便,必须 ...
- 洛谷 P3195 [HNOI2008] 玩具装箱
链接: P3195 题意: 给出 \(n\) 个物品及其权值 \(c\),连续的物品可以放进一个容器,如果将 \(i\sim j\) 的物品放进一个容器,产生的费用是 \(\left(j-i+\sum ...
- 洛谷P1314 聪明的质监员
P1314 聪明的质监员 题目描述 小T 是一名质量监督员,最近负责检验一批矿产的质量.这批矿产共有 n 个矿石,从 1到n 逐一编号,每个矿石都有自己的重量 wi 以及价值vi .检验矿产的流程是: ...
- 洛谷P1314 聪明的质监员 题解
题目 聪明的质监员 题解 这道题和之前Sabotage G的那道题类似,都是用二分答案求解(这道题还要简单一些,不需要用数学推导二分条件,只需简单判断一下即可). 同时为了降低复杂度,肯定不能用暴力求 ...
随机推荐
- mysql非安装包安装教程
设置mysql的环境变量 本人设置安装的路径是:E:\WebApplication\webMySQL\mysql-5.7.13-winx64 我的电脑 ---> 高级系统配置 ---> 环 ...
- Sysprep错误一则
准备搭建一台基于Windows2008的域控,通过ISO文件装完系统后,照例使用Windows Update打全了补丁.同时,考虑到经常使用Powershell,所以手动再装上了PS5.1 .因为准备 ...
- Window环境下搭建Vue.js开发环境
原文链接:http://blog.csdn.net/solo95/article/details/72084907 笔者最近在进行前端的学习,在点完了HTML5.CSS3.JavaScript等技能树 ...
- 如何处理UIVIew addsubview 不显示subview
老代码: addsubview不显示uilabel -(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSIn ...
- 计算机网络【10】—— Cookie与Session
一.cookie 和session 的区别 a.cookie数据存放在客户的浏览器上,session数据放在服务器上. b.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKI ...
- myeclipse8.6 注册码
MyEclipse8.6 注册码 别处找的均是8.6版本,可以使用到2014年一:MyEclipse Standard Edition: zhucemLR7ZL-655954-695876566190 ...
- BZOJ3142 HNOI2013数列(组合数学)
考虑差分序列.每个差分序列的贡献是n-差分序列的和,即枚举首项.将式子拆开即可得到n*mk-1-Σi*cnt(i),cnt(i)为i在所有差分序列中的出现次数之和.显然每一个数出现次数是相同的,所以c ...
- bzoj 2124 等差子序列 (线段树维护hash)
2124: 等差子序列 Time Limit: 3 Sec Memory Limit: 259 MBSubmit: 1922 Solved: 714[Submit][Status][Discuss ...
- 【刷题】洛谷 P4209 学习小组
题目描述 共有n个学生,m个学习小组,每个学生只愿意参加其中的一些学习小组,且一个学生最多参加k个学习小组.每个学生参加学习小组财务处都收一定的手续费,不同的学习小组有不同的手续费.若有a个学生参加第 ...
- Storm入门到精通(四)---本地实例Demo
单词实时计数 maven项目的结构: 一.Pom.xml [html] view plain copy <project xmlns="http://maven.apache.org/ ...