背景描述:
配製成功了珍貴的0號藥水,mm的病治好了。輕鬆下來的佳佳意外的得到了乙個好東西……那就是——一種非常珍貴的樹枝。這些樹枝可以用來做優質的魔杖!當然了,不能只做自己的,至少還要考慮到mm的對吧。選擇怎樣的切割方式來製作魔杖非常重要,關鍵問題是——一把魔杖既不能太長、又不能太短,且製作出來的魔杖不能有衝突……
題目描述:
佳佳得到的這些樹枝在屬性上完全相同。每乙個樹枝都有n段(用1~n編號),給定了每段的長度l[i]和每段的魔力值m[i]。單獨的一段是不可以從中間切開的,你可以做的就是選擇一段或連續的幾段,把它們作為乙個整體切下來,再用來製作魔杖。但是一根魔杖的長度不能太長——不能大於給定的值hi;也不能太短——不能小於給定的值lo。
魔杖有乙個奇怪的要求:如果某一根魔杖的製作材料是另一根魔杖的一部分,則這兩根魔杖之間將發生衝突。比如說樹枝有三段,從左到右的長度分別為4、 1、3,佳佳需要長度為4到5之間的魔杖。佳佳可以用一根樹枝的前兩段做出乙個長度為5的魔杖,用一根樹枝的後兩段做出長度為4的魔杖;但他決不能用一根樹枝的前兩段做了魔杖後再單獨使用另一根樹枝的第一段做成魔杖,因為前者包含了後者的所有成分,這會導致衝突。
我們假設佳佳可以得到任意多這樣的樹枝。佳佳需要製作出若干個互不衝突的魔杖,使所有魔杖的魔力值之和最大。(魔杖的長度就是組成它的那些段的長度的總和,魔力值亦然)。
輸入格式 inputformat
第一行有三個用空格隔開的正整數,分別表示n、lo、hi。
第二行的n個用空格隔開的正整數就是l[1]、l[2]……l[n]。
第三行的n個用空格隔開的正整數就是m[1]、m[2]……m[n]。
輸入檔案以乙個回車/換行符結尾。
輸出格式 outputformat
只用輸出乙個整數,表示能夠獲得的魔力值的最大值。
樣例輸入:
6 4 5
1 3 3 2 2 1
2 3 1 4 5 2
樣例輸出:
21對於50%的資料,n<=100
對於50%的資料,n<=1000, l[i],w[i]在longint範圍內
由於選出的區間不能相互包含,因此,這些區間當中,不可能有兩個區間具有相同的左端點或右端點,並且,如果把這些區間按照左端點公升序排序,則右端點也會變成公升序的.從而,以1..n中的某些數分別作為左端點,其對應的右端點嚴格遞增.這就可以設計狀態了,令f[i][j]為1..i中的某些數作為左端點,且他們對應的右端點的最大值是j時的最優解.如果把左端點和右端點分別稱作區間的起點和終點,就得到了lz發的那個題解的表述.這和lcs沒什麼聯絡,碰巧方程看起來像而已.
題解 老魔杖
給定一些整數,都在 1,4 以內,每次操作可以把乙個整數拆成兩個 1,3 內的整數,或刪掉 n in 1,4 個 n 不能操作輸,則問先手是否必勝。a,b,c,d le 10 這是一道找規律題。可以對所有狀態進行分類,記 u a c bmod 2,v b d bmod 3 則 u v 必勝,證明需要...
佳佳的角色
佳佳的角色可真多,昨天在王奶奶家裡給我打 爸爸,我太開心了!怎麼了啊?我一會兒看見孫悟空我就變成孫悟空了,我一會兒看見哪吒就變成哪吒了,一會兒看見葫蘆兄弟就變成葫蘆娃了!哈哈,變得還真快。今天上午媽媽出去了,佳佳和我在家,玩點兒什麼呢?對了,當哪吒的時候,佳佳已經有了混天綾 乙個毛巾 乾坤圈 乙個繡...
佳佳的角色
佳佳的角色可真多,昨天在王奶奶家裡給我打 爸爸,我太開心了!怎麼了啊?我一會兒看見孫悟空我就變成孫悟空了,我一會兒看見哪吒就變成哪吒了,一會兒看見葫蘆兄弟就變成葫蘆娃了!哈哈,變得還真快。今天上午媽媽出去了,佳佳和我在家,玩點兒什麼呢?對了,當哪吒的時候,佳佳已經有了混天綾 乙個毛巾 乾坤圈 乙個繡...