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:
11abcabc
abca
b
輸出樣例#1:
3題解:
水題哈,明顯狀態可以定義為f[i][j][k][g]為前i個,10個中a,b,c數量分別為j,k,g個
然後轉移列舉清空哪一位再加上新產生的即可.
另外 這題還卡輸入....
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7using
namespace
std;
8const
int n=105;9
int s[n],f[n][12][12][12],sum[n][3
];10
void
work()
1121
if(n<=10)25
intnxt,k1,k2,k3,tmp,inf;
26 memset(f,127/3,sizeof(f));inf=f[0][0][0][0
];27 f[10][sum[10][0]][sum[10][1]][sum[10][2]]=0;28
for(int i=10;i)
40if
(k)46
if(g)52}
53}54int ans=inf;
55for(int i=0;i<=10;i++)61}
62 printf("
%d\n
",ans);63}
64int
main()
65
洛谷 P2530 SHOI2001 化工廠裝箱員
題目描述 118號工廠是世界唯一秘密提煉鉲的化工廠,由於提煉鉲的難度非常高,技術不是十分完善,所以工廠生產的鉲成品可能會有3種不同的純度,a 100 b 1 c 0.01 為了 方便,必須把不同純度的成品分開裝箱,裝箱員grant第1次順序從流水線上取10個成品 如果一共不足10個,則全部取出 以後...
化工廠裝箱員(TYVJ1625)
演算法 dp 分析 看了題解之後,發現這道題並不是那麼難做,之前一直沒有看出這道題究竟dp在哪,現在終於明白了。用f st,a,b,c 表示到st這個位置時,剩餘a a個 b b個 c c個 然後就進行dp,每次可以選擇放a或放b或放c。總共有三種轉移方式。其實這到題的dp不是特別的明顯,還是比較像...
數碼化工廠
上個星期五出去開會,會議的主題是數碼化工廠平台的建設。由上海交通大學的乙個教授進行課題的組織,企業參加進行討論。由企業提出需求,教授的課題組進行總結。教授一開始,做了乙個關於數碼化工廠的最新研究現狀的報告。由於語速較快,也沒有聽得到其中的太多的精髓內容。但是,他介紹的數碼化工廠引入了雲計算 物聯網等...