[羅谷P3943]:スター(DP +最短経路)

トピックの背景

盗まれた場合は、運命の結果だけを残して、時間、困難を盗むだけ本来の意図を残します。
あなたは来て、その後、あなただけの星を残して、なくなっていました。


 

タイトル説明

その日が来ていたから逃れることはできませんが、$ F $はボーッと夜空を見ています。
空空ではなく、星は-おそらくそれは空が吹き飛ばさ雲ので。
雲が、そこにそれを聞かせて吹き飛ばさ心、とにかく、何も変更する可能性はありません。
$ C $の小さな星が星を装って、小さな球根の長いリストを持って、小さな$ Fが$、幸せ$ F $が小さいましょうを与えました。しかし、少しはOCDは$ F $はこの文字列は、文字列$のランプバルブに点灯していないの$ N $ kは$電球の合計を持って、発見しました。小さな$ F $ $ Cは、すべての電球文字列の小さな意思決定及びこれを$。
しかし、おそらくそれはバルブの状態が反転されたあまりにも面倒、わずか$ F $連続期間であるため-暗い照明ランプ、電球が消灯します。探索後、彼は$ F $電球部の小さな合計は、異なる長さの$ M $ランプ状態で回転させることができるが見つかりました。
$ C $小さく、$ F $の小さなは、最終的にはすべての電球が点灯されて置くのに長い長い長い長い長い長い時間がかかりました。彼らは愚かではないかを知りたいので、彼らはあなたを見つけ、あなたが数学を作るのに役立ちます。最良のケースでは、あなたが点灯する電球の文字列全体に少なくとも数の操作を必要としますか?


 

入力形式

標準入力データから読み込みます。
$ $第一の入力線3つの正の整数$ N、K、M個の$。
$入力$ 2 $ K $行の正の整数、$ $ I $ I $の数は、電球が位置する$ a_iを$を点灯していない意味します。
$ 3 $の入力$ Mの$行正の整数は、$ $ I $ I $の数は、動作の$ b_i $のモードの長さです。


 

出力フォーマット

入力出力規格。
出力線非負整数、操作の最小数を表します。


 

サンプル

サンプル入力

5 2 2
1 5
3 4

サンプル出力

2


 

データ範囲とヒント

サンプルは説明しました:

データ範囲:

子任务会给出部分测试数据的特点。如果你在解决题目中遇到了困难,可以尝试只解决一部分测试数据。
每个测试点的数据规模及特点如下表:

特殊性质:保证答案小于$4$。


 

题解

发现$k$很小。
那么我们考虑转化这个问题,利用状压$DP$。
再想区间修改,离线,那么用差分,也就是异或差分。
问题转化为:
    给定一个长度为$n$的$0/1$串,其中只有不超过$2k$个$0$。
    每次操作是,从给定的$m$种距离中选择一种,选择序列上相距这个距离的两个位同时取反。
    求至少需要操作多少次才能使得整个串全为$1$。
    如果某个地方有$0$,那么这个位置一定会进行操作来消去这个$0$。
    我们假定每次我们都选含$0$的来进行操作:
        一个$1$一个$0$:可以视作移动;
        两个$0$:看作将其中一个$0$移到另一个$0$的位置,随后它们均消去。
发现又可以转化问题:
    给定一个有$n$个点的图,其中之后不超过$2k$个点存在物品。
    每次操作时,从给定的$m$种距离中选择一种,选择序列上一个物品进行移动;两个物品碰到一起会消去。
    求至少需要操作多少次才能使得所有物品消失。
    消去的两个物品可以看作是其中一个移动到了另外一个物品的位置,代价即为从一个物品到另一个物品所需要的最小步数;
    我们发现,这种移动只有$2k$个起点;
    同时,图上$n$个点每个点有$m$条边;
    因此,预处理两两之间所需要的最短步数可以使用$\Theta(n\times m\times k)$的$BFS$

  未完……

おすすめ

転載: www.cnblogs.com/wzc521/p/11347661.html