QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#866323#9916. Defeat the Enemiespiggy123RE 0ms9836kbC++174.1kb2025-01-22 14:30:522025-01-22 14:30:52

Judging History

This is the latest submission verdict.

  • [2025-01-22 14:30:52]
  • Judged
  • Verdict: RE
  • Time: 0ms
  • Memory: 9836kb
  • [2025-01-22 14:30:52]
  • Submitted

answer

#include <bits/stdc++.h>
#define ll long long
using namespace std;

struct pl {
	ll a,b;
} p[500005];
ll c[105];
pair<ll,ll> dp[30105][105];
ll gx[105][30105],MX[30105];
const ll mod=998244353;

inline void upd(pair<ll,ll> &a,ll b,ll c) {
	if (a.first>b) {
		a.first=b;
		a.second=c;
	} else if (a.first==b) {
		a.second+=c;
		a.second%=mod;
	}
}

int main() {
	cin.tie(0);cout.tie(0);
	ios::sync_with_stdio(false);
	ll t;
	cin >> t;
	while (t--) {
		ll n,m;
		cin >> n >> m;
		for (ll i=1; i<=n; i++) {
			cin >> p[i].a;
		}
		for (ll i=1; i<=n; i++) {
			cin >> p[i].b;
		}
		ll k;
		cin >> k;
		for (ll i=1; i<=k; i++) {
			cin >> c[i];
		}
		ll mx=0;
		for (ll i=1; i<=n; i++) {
			mx=max(mx,p[i].a+p[i].b);
		}
		for (ll i=0; i<=mx+k*k; i++){
			for (ll j=0; j<=k; j++)
				dp[i][j]= {(ll)1e9,0};
		}
		for (ll i=1;i<=m;i++)MX[i]=0;
		for (ll i=1;i<=n;i++)MX[p[i].b]=max(MX[p[i].b],p[i].a);
		for (ll a=1; a<=k; a++) {
			for (ll i=0; i<=mx+k*k; i++) {
				gx[a][i]=0;
				for (ll j=i+1;j<=min(m,i+a);j++){
					gx[a][i]=max(gx[a][i],MX[j]+i+a-mx);
				}		
				assert(gx[a][i]<=k);
			}
		}
		dp[0][0]={0,1};
		for (ll i=0; i<=mx+k*k; i++) {
			for (ll j=0; j<=k; j++) {
				for (ll a=1; a<=k&&i+a<=mx+k*k; a++) {
					// sm>=p[i].a+i+a
					// p[i].b in [i+1,i+a]
					upd(dp[i+a][max(gx[a][i],j)],dp[i][j].first+c[a],dp[i][j].second);
				}
			}
		}
		pair<ll,ll> zw={(ll)1e9,0};
		for (ll i=mx;i<=mx+k*k;i++){
			for (ll j=0;j<=k;j++){
				if (i>=mx+j)
				upd(zw,dp[i][j].first,dp[i][j].second);
			}
		}
		cout<< zw.first<<" "<< zw.second<< "\n";
	}
	return 0;
}

/*
 4
 5 5
 3 5 2 1 2
 3 1 3 2 3
 3
 2 3 4
 3 2
 2 2 2
 2 2 2
 3
 2 3 3
 7 6
 5 3 4 6 6 3 4
 4 6 4 2 3 5 5
 4
 2 4 6 7
 10 100
 38 49 79 66 49 89 21 55 13 23
 67 56 26 39 56 16 84 50 92 82
 11
 6 6 7 8 9 9 9 9 9 9 9
                                                                
 ■■■■■     ■■      ■■■     ■■■   ■    ■     ■     ■■■■    ■■■■  
 ■   ■■    ■■     ■  ■■   ■  ■■  ■    ■    ■■     ■  ■■  ■■  ■  
 ■    ■    ■■    ■    ■  ■    ■   ■  ■    ■■■    ■■  ■■  ■   ■■ 
 ■    ■    ■■    ■    ■  ■    ■   ■  ■     ■■    ■   ■■      ■■ 
 ■    ■    ■■    ■       ■         ■■      ■■        ■■      ■  
 ■   ■■    ■■    ■  ■■■  ■  ■■■    ■■      ■■       ■■     ■■■  
 ■■■■■     ■■    ■    ■  ■    ■    ■■      ■■      ■■        ■■ 
 ■         ■■    ■    ■  ■    ■    ■■      ■■     ■■          ■ 
 ■         ■■    ■    ■  ■    ■    ■■      ■■     ■      ■   ■■ 
 ■         ■■    ■■  ■■  ■■  ■■    ■■      ■■    ■       ■■  ■■ 
 ■         ■■      ■■■■    ■■■■    ■■      ■■    ■■■■■■   ■■■■  
*/

详细

Test #1:

score: 100
Accepted
time: 0ms
memory: 9836kb

input:

4
5 5
3 5 2 1 2
3 1 3 2 3
3
2 3 4
3 2
2 2 2
2 2 2
3
2 3 3
7 6
5 3 4 6 6 3 4
4 6 4 2 3 5 5
4
2 4 6 7
10 100
38 49 79 66 49 89 21 55 13 23
67 56 26 39 56 16 84 50 92 82
11
6 6 7 8 9 9 9 9 9 9 9

output:

9 1
6 4
18 18
99 44387

result:

ok 8 numbers

Test #2:

score: -100
Runtime Error

input:

1000
5 3
1 1 3 1 2
3 2 1 1 2
1
5
5 3
3 3 2 2 1
1 1 3 1 1
3
3 1 3
5 5
4 3 5 1 4
5 5 2 5 5
2
1 5
5 5
5 5 5 5 4
2 1 2 4 1
2
1 1
5 3
2 1 2 1 1
1 3 2 1 1
1
5
2 1
1 1
1 1
3
2 2 1
5 5
2 3 5 2 2
5 2 4 3 1
2
3 3
5 1
1 1 1 1 1
1 1 1 1 1
3
5 4 4
5 4
1 4 4 4 2
4 3 1 3 3
1
2
1 5
2
2
3
4 2 4
1 5
4
5
1
4
2 5
1 5
1...

output:


result: