Submission #69875629
Source Code Expand
#include <bits/stdc++.h>
#include <bits/extc++.h>
using namespace std;
using namespace __gnu_pbds;
using namespace __gnu_cxx;
const int maxn = 2e4+5;
int w[maxn],v[maxn];
class SegmentTree
{
public:
gp_hash_table<int,long long> a[4 * maxn];
inline void push_up(int rt) //向上更新
{
a[rt].clear();
for (auto &i:a[rt*2])
{
for (auto &j:a[rt*2+1])
{
if (i.first+j.first<=500)
a[rt][i.first+j.first]=max(a[rt][i.first+j.first],i.second+j.second);
}
}
}
void build(int l, int r, int rt) //从l到r建立线段树
{
if (l == r)
{
a[rt][w[l]]=v[l];
a[rt][0]=0;
return;
}
int mid = (l + r) / 2;
build(l, mid, rt * 2);
build(mid + 1, r, rt * 2 + 1);
push_up(rt);
}
gp_hash_table<int,long long> query(int x, int y, int l, int r, int rt,int c) //线段树区间为从l到r,询问区间x到y的和
{
if (x <= l && y >= r)
return a[rt];
int mid = (l + r) / 2;
gp_hash_table<int,long long> ans;
if (x <= mid)
ans = query(x, y, l, mid, rt * 2,c);
if (y > mid)
{
auto rr=query(x, y, mid + 1, r, rt * 2 + 1,c);
gp_hash_table<int,long long> ll;
swap(ll,ans);
ll[0]=0;
for (auto &i:ll)
{
for (auto &j:rr)
{
if (i.first+j.first<=c)
ans[i.first+j.first]=max(ans[i.first+j.first],i.second+j.second);
}
}
}
return ans;
}
}st;
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);
int n;
cin>>n;
for (int i=1;i<=n;i++)
cin>>w[i]>>v[i];
st.build(1,n,1);
int q;
cin>>q;
while (q--)
{
int l,r,c;
cin>>l>>r>>c;
auto tmp=st.query(l,r,1,n,1,c);
long long ans=0;
for (auto &i:tmp)
if (i.first<=c)
ans=max(ans,i.second);
cout<<ans<<'\n';
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | G - Range Knapsack Query |
| User | Alliy666 |
| Language | C++ 23 (gcc 12.2) |
| Score | 0 |
| Code Size | 2258 Byte |
| Status | TLE |
| Exec Time | 2219 ms |
| Memory | 123660 KiB |
Judge Result
| Set Name | Sample | All | ||||||
|---|---|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 0 / 575 | ||||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00_sample_00.txt, 00_sample_01.txt |
| All | 00_sample_00.txt, 00_sample_01.txt, 01_small_00.txt, 01_small_01.txt, 01_small_02.txt, 01_small_03.txt, 01_small_04.txt, 01_small_05.txt, 01_small_06.txt, 01_small_07.txt, 02_large_00.txt, 02_large_01.txt, 02_large_02.txt, 02_large_03.txt, 02_large_04.txt, 02_large_05.txt, 02_large_06.txt, 02_large_07.txt, 02_large_08.txt, 02_large_09.txt, 02_large_10.txt, 02_large_11.txt, 02_large_12.txt, 02_large_13.txt, 02_large_14.txt, 02_large_15.txt, 02_large_16.txt, 02_large_17.txt, 02_large_18.txt, 02_large_19.txt, 02_large_20.txt, 02_large_21.txt, 02_large_22.txt, 02_large_23.txt, 02_large_24.txt, 02_large_25.txt, 02_large_26.txt, 02_large_27.txt, 02_large_28.txt, 02_large_29.txt, 02_large_30.txt, 02_large_31.txt, 02_large_32.txt, 02_large_33.txt, 02_large_34.txt, 02_large_35.txt, 03_handmade_00.txt, 03_handmade_01.txt, 03_handmade_02.txt, 03_handmade_03.txt, 03_handmade_04.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_00.txt | AC | 21 ms | 27940 KiB |
| 00_sample_01.txt | AC | 15 ms | 27836 KiB |
| 01_small_00.txt | TLE | 2209 ms | 29080 KiB |
| 01_small_01.txt | TLE | 2212 ms | 29164 KiB |
| 01_small_02.txt | TLE | 2209 ms | 29448 KiB |
| 01_small_03.txt | AC | 30 ms | 28044 KiB |
| 01_small_04.txt | TLE | 2209 ms | 30268 KiB |
| 01_small_05.txt | TLE | 2209 ms | 28692 KiB |
| 01_small_06.txt | TLE | 2209 ms | 30320 KiB |
| 01_small_07.txt | TLE | 2209 ms | 30412 KiB |
| 02_large_00.txt | TLE | 2213 ms | 80696 KiB |
| 02_large_01.txt | TLE | 2213 ms | 80680 KiB |
| 02_large_02.txt | TLE | 2213 ms | 80004 KiB |
| 02_large_03.txt | TLE | 2213 ms | 80404 KiB |
| 02_large_04.txt | TLE | 2213 ms | 80756 KiB |
| 02_large_05.txt | TLE | 2213 ms | 80608 KiB |
| 02_large_06.txt | TLE | 2213 ms | 80216 KiB |
| 02_large_07.txt | TLE | 2213 ms | 80432 KiB |
| 02_large_08.txt | TLE | 2213 ms | 80644 KiB |
| 02_large_09.txt | TLE | 2213 ms | 81208 KiB |
| 02_large_10.txt | TLE | 2213 ms | 80924 KiB |
| 02_large_11.txt | TLE | 2213 ms | 80660 KiB |
| 02_large_12.txt | TLE | 2213 ms | 80584 KiB |
| 02_large_13.txt | TLE | 2213 ms | 80288 KiB |
| 02_large_14.txt | TLE | 2213 ms | 80964 KiB |
| 02_large_15.txt | TLE | 2213 ms | 80028 KiB |
| 02_large_16.txt | TLE | 2213 ms | 80300 KiB |
| 02_large_17.txt | TLE | 2213 ms | 80228 KiB |
| 02_large_18.txt | TLE | 2216 ms | 123340 KiB |
| 02_large_19.txt | TLE | 2215 ms | 123616 KiB |
| 02_large_20.txt | TLE | 2215 ms | 122952 KiB |
| 02_large_21.txt | TLE | 2215 ms | 122624 KiB |
| 02_large_22.txt | TLE | 2215 ms | 123024 KiB |
| 02_large_23.txt | TLE | 2215 ms | 122968 KiB |
| 02_large_24.txt | TLE | 2216 ms | 122800 KiB |
| 02_large_25.txt | TLE | 2215 ms | 123320 KiB |
| 02_large_26.txt | TLE | 2216 ms | 123660 KiB |
| 02_large_27.txt | TLE | 2219 ms | 123208 KiB |
| 02_large_28.txt | TLE | 2216 ms | 123504 KiB |
| 02_large_29.txt | TLE | 2216 ms | 122760 KiB |
| 02_large_30.txt | TLE | 2215 ms | 123048 KiB |
| 02_large_31.txt | TLE | 2215 ms | 122752 KiB |
| 02_large_32.txt | TLE | 2216 ms | 123340 KiB |
| 02_large_33.txt | TLE | 2215 ms | 122624 KiB |
| 02_large_34.txt | TLE | 2215 ms | 122796 KiB |
| 02_large_35.txt | TLE | 2215 ms | 123264 KiB |
| 03_handmade_00.txt | AC | 1239 ms | 80708 KiB |
| 03_handmade_01.txt | AC | 51 ms | 27904 KiB |
| 03_handmade_02.txt | TLE | 2213 ms | 40524 KiB |
| 03_handmade_03.txt | AC | 1462 ms | 28004 KiB |
| 03_handmade_04.txt | TLE | 2209 ms | 40456 KiB |