THUPC2023 初赛 背包
Posted nike0good
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了THUPC2023 初赛 背包相关的知识,希望对你有一定的参考价值。
[THUPC 2023 初赛] 背包
题目描述
本题中,你需要解决完全背包问题。
有 n n n 种物品,第 i i i 种物品单个体积为 v i v_i vi、价值为 c i c_i ci。
q q q 次询问,每次给出背包的容积 V V V,你需要选择若干个物品,每种物品可以选择任意多个(也可以不选),在选出物品的体积的和恰好为 V V V 的前提下最大化选出物品的价值的和。你需要给出这个最大的价值和,或报告不存在体积和恰好为 V V V 的方案。
为了体现你解决 NP-Hard 问题的能力, V V V 会远大于 v i v_i vi,详见数据范围部分。
输入格式
第一行两个整数 n , q n,q n,q,表示物品种数和询问次数。
接下来 n n n 行每行两个整数 v i , c i v_i,c_i vi,ci 描述一种物品。
接下来 q q q 行每行一个整数 V V V 描述一次询问中背包的体积。
输出格式
对于每组询问输出一行一个整数。若不存在体积和恰好为
V
V
V 的方案,输出 -1
;否则输出最大的选出物品的价值和。
样例 #1
样例输入 #1
2 2
6 10
8 15
100000000001
100000000002
样例输出 #1
-1
187500000000
提示
样例解释 1
第二组询问的最优方案为:选择 3 3 3 个物品 1 1 1 和 12499999998 12499999998 12499999998 个物品 2 2 2。
子任务
对于所有测试数据, 1 ≤ n ≤ 50 , 1 ≤ v i ≤ 1 0 5 , 1 ≤ c i ≤ 1 0 6 , 1 ≤ q ≤ 1 0 5 , 1 0 11 ≤ V ≤ 1 0 12 1 \\le n \\le 50, 1 \\le v_i \\le 10^5, 1 \\le c_i \\le 10^6, 1 \\le q \\le 10^5, 10^11 \\le V \\le 10^12 1≤n≤50,1≤vi≤105,1≤ci≤106,1≤q≤105,1011≤V≤1012。
题目来源
来自 2023 清华大学学生程序设计竞赛暨高校邀请赛(THUPC2023)初赛。
题解等资源可在 https://github.com/THUSAAC/THUPC2023-Pre 查看。
(from luogu)
考虑
c
p
/
v
p
c_p/v_p
cp/vp 最大的item
(
v
p
,
c
p
)
(v_p,c_p)
(vp,cp),最后的答案一定是尽量多取
当
i
i
i足够大时,
f
i
+
v
p
=
f
i
+
c
p
f_i+v_p=f_i+c_p
fi+vp=fi+cp
考虑同余最短路,模
v
p
v_p
vp
发现无法定义图中边的边权,最后会陷入无限负环,无法最短路。
令
f
i
=
g
i
m
o
d
m
+
⌊
i
v
p
⌋
∗
c
p
f_i=g_i \\mod m + \\lfloor \\frac i v_p \\rfloor *c_p
fi=gimodm+⌊vpi⌋∗cp
对于
g
i
g_i
gi求最短路
对于
f
i
f_i
fi取物品
(
v
x
,
c
x
)
(v_x,c_x)
(vx,cx)并转移到
f
j
f_j
fj
等价于
f
i
+
c
x
=
g
i
m
o
d
m
+
⌊
i
v
p
⌋
∗
c
p
+
c
x
f_i+c_x=g_i \\mod m + \\lfloor \\frac i v_p \\rfloor *c_p+c_x
fi+cx=gimodm+⌊vpi⌋∗cp+cx
=
g
i
m
o
d
m
+
c
x
+
(
⌊
i
v
p
⌋
−
⌊
i
+
v
x
v
p
⌋
)
c
p
+
⌊
i
+
v
x
v
p
⌋
∗
c
p
=g_i \\mod m +c_x + (\\lfloor \\frac i v_p \\rfloor -\\lfloor \\frac i+v_x v_p \\rfloor )c_p+ \\lfloor \\frac i+v_x v_p \\rfloor *c_p
=gimodm+cx+(⌊vpi⌋−⌊vpi+vx⌋)cp+⌊vpi+vx⌋∗cp
转移到 g j m o d m + ⌊ j v p ⌋ ∗ c p g_j \\mod m + \\lfloor \\frac j v_p \\rfloor *c_p gjmodm+⌊vpj⌋∗cp
#include<bits/stdc++.h>
using 以上是关于THUPC2023 初赛 背包的主要内容,如果未能解决你的问题,请参考以下文章