CF601E A Museum Robbery 题解
1.BZOJ3364 Distance Queries 距离咨询 题解2.UVA12390 Distributing Ballot Boxes 题解3.UVA1108 Mining Your Own Business 题解4.CF1425F Flamingoes of Mystery 题解5.SP16113 SUBTLEBA - Trucks Transportation 题解6.UVA12655 Trucks 题解7.P5943 [POI2002] 最大的园地 题解8.SP9494 ZSUM - Just Add It 题解9.CF1878C Vasilije in Cacak 题解10.CF1010C Border 题解11.CF131D Subway 题解12.B3610 [图论与代数结构 801] 无向图的块 题解13.P9801 [NERC2018] King Kog’s Reception14.CF1089K King Kog's Reception 题解15.SP28304 ADATEAMS - Ada and Teams 题解16.CF327C Magic Five 题解17.P1405 苦恼的小明 题解18.SP10050 POWTOW - Power Tower City 题解19.SP21690 POWERUP - Power the Power Up 题解20.P2898 [USACO08JAN] Haybale Guessing G 题解21.AT_arc125_c [ARC125C] LIS to Original Sequence 题解22.CF1433E Two Round Dances 题解23.CF739A Alyona and mex 题解24.AT_abc270_g [ABC270G] Sequence in mod P 题解25.SP277 CTGAME - City Game 题解26.P8670 [蓝桥杯 2018 国 B] 矩阵求和 题解27.UVA12467 Secret Word 题解28.SP34020 ADAPET - Ada and Pet 题解29.AT_joig2021_d 展覧会 2 (Exhibition 2) 题解30.AT_abc184_f [ABC184F] Programming Contest 题解31.AT_abc343_g [ABC343G] Compress Strings 题解32.CF494C Helping People 题解33.CF922E Birds 题解34.CF1628D1 Game on Sum (Easy Version) 题解35.P7137 [THUPC2021 初赛] 切切糕 题解36.CF1392H ZS Shuffles Cards 题解37.luogu P1543 [POI2004] SZP 题解38.SP64 PERMUT1 - Permutations 题解39.AT_s8pc_2_e 部分文字列 题解40.UVA1223 Editor 题解41.UVA10870 Recurrences 题解42.UVA1362 Exploring Pyramids 题解43.CF1141E Superhero Battle 题解44.SP14943 DRTREE - Dynamically-Rooted Tree 题解45.UVA11922 Permutation Transformer 题解46.UVA1674 闪电的能量 Lightning Energy Report 题解47.P10499 开关问题 题解48.P10466 邻值查找 题解49.P10596 BZOJ2839 集合计数 题解50.UVA12369 Cards 题解51.CF696B Puzzles 题解52.P10672 【MX-S1-T1】壁垒 题解53.P10673 【MX-S1-T2】催化剂 题解54.UVA11181 条件概率 Probability|Given 题解55.SP8177 JZPEXT - Beautiful numbers EXTREME 题解56.AT_tdpc_number 数 题解57.AT_dp_y Grid 2 题解58.P7690 [CEOI2002] A decorative fence 题解59.SP15620 POSTERIN - Postering 题解60.SP14887 GOODA - Good Travels 题解61.P2188 小Z的 k 紧凑数 题解62.SP8099 TABLE - Crash´s number table 题解63.AT_abl_e Replace Digits 题解64.AT_past202010_m 筆塗り 题解65.P8575 「DTOI-2」星之河 题解66.CF641E Little Artem and Time Machine 题解67.P10633 BZOJ2989 数列/BZOJ4170 极光 题解68.P10238 [yLCPC2024] F. PANDORA PARADOXXX 题解69.P4271 [USACO18FEB] New Barns P 题解70.P8512 [Ynoi Easy Round 2021] TEST_152 题解71.CF1514D Cut and Stick 题解72.P10933 创世纪 题解73.P10957 环路运输 题解74.SP10502 VIDEO - Video game combos 题解75.P10956 金字塔 题解76.CF704B Ant Man 题解77.P6638 「JYLOI Round 1」常规 题解78.SP1825 FTOUR2 - Free tour II 题解79.P10603 BZOJ4372 烁烁的游戏 题解80.P3364 Cool loves touli 题解81.CF946G Almost Increasing Array 题解82.AT_abc283_g [ABC283G] Partial Xor Enumeration 题解83.CF959F Mahmoud and Ehab and yet another xor task 题解84.P3794 签到题IV 题解85.P7984 [USACO21DEC] Tickets P 题解86.P5479 [BJOI2015] 隐身术 题解87.CF2030D QED's Favorite Permutation 题解88.CF633H Fibonacci-ish II 题解89.AT_abc129_f [ABC129F] Takahashi's Basics in Education and Learning 题解90.P8060 [POI2003] Sums 题解91.AT_keyence2019_e Connecting Cities 题解92.CF1534G A New Beginning 题解93.AT_abc237_g [ABC237G] Range Sort Query 题解
94.CF601E A Museum Robbery 题解
95.P5680 [GZOI2017] 共享单车 题解96.P3081 [USACO13MAR] Hill Walk G 题解97.AT_abc248_h [ABC248Ex] Beautiful Subsequences 题解前置知识
解法
普通的回退背包无法处理本题中的删除操作,考虑线段树分治后转化为只进行添加的背包。
具体实现时可以对每个深度开一个背包的转移数组,时间复杂度为
代码
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ull unsigned long long
#define sort stable_sort
#define endl '\n'
const ll mod=1000000007,base=10000019;
ll st[15010],ed[15010],v[30010],w[30010],f[18][1010],jc[1010],ans[30010],k;
struct SMT
{
struct SegmentTree
{
vector<ll>info;
}tree[120010];
#define lson(rt) (rt<<1)
#define rson(rt) (rt<<1|1)
void update(ll rt,ll l,ll r,ll x,ll y,ll id)
{
if(x<=l&&r<=y)
{
tree[rt].info.push_back(id);
return;
}
ll mid=(l+r)/2;
if(x<=mid)
{
update(lson(rt),l,mid,x,y,id);
}
if(y>mid)
{
update(rson(rt),mid+1,r,x,y,id);
}
}
void solve(ll rt,ll l,ll r,ll dep)
{
for(ll i=1;i<=k;i++)
{
f[dep][i]=f[dep-1][i];
}
for(ll i=0;i<tree[rt].info.size();i++)
{
for(ll j=k;j>=w[tree[rt].info[i]];j--)
{
f[dep][j]=max(f[dep][j],f[dep][j-w[tree[rt].info[i]]]+v[tree[rt].info[i]]);
}
}
if(l==r)
{
for(ll i=1;i<=k;i++)
{
ans[l]=(ans[l]+f[dep][i]*jc[i-1]%mod)%mod;
}
}
else
{
ll mid=(l+r)/2;
solve(lson(rt),l,mid,dep+1);
solve(rson(rt),mid+1,r,dep+1);
}
}
}T;
int main()
{
// #define Isaac
#ifdef Isaac
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
ll n,m,pd,x,tim=0,i;
cin>>n>>k;
for(i=1;i<=n;i++)
{
cin>>v[i]>>w[i];
st[i]=1;
ed[i]=-1;
}
cin>>m;
for(i=1;i<=m;i++)
{
cin>>pd;
if(pd==1)
{
n++;
cin>>v[n]>>w[n];
st[n]=tim+1;
ed[n]=-1;
}
if(pd==2)
{
cin>>x;
ed[x]=tim;
}
if(pd==3)
{
tim++;
}
}
for(i=1;i<=n;i++)
{
ed[i]=(ed[i]==-1)?tim:ed[i];
if(st[i]<=ed[i])
{
T.update(1,1,tim,st[i],ed[i],i);
}
}
for(i=0;i<=k-1;i++)
{
jc[i]=(i==0)?1:jc[i-1]*base%mod;
}
T.solve(1,1,tim,1);
for(i=1;i<=tim;i++)
{
cout<<ans[i]<<endl;
}
return 0;
}
本文来自博客园,作者:hzoi_Shadow,原文链接:https://www.cnblogs.com/The-Shadow-Dragon/p/18646082,未经允许严禁转载。
版权声明:本作品采用 「署名-非商业性使用-相同方式共享 4.0 国际」许可协议(CC BY-NC-SA 4.0) 进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下