QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#756518#8034. Ban or Pick, What's the Trickryh7WA 1ms7720kbC++171.6kb2024-11-16 20:47:472024-11-16 20:47:48

Judging History

This is the latest submission verdict.

  • [2024-11-16 20:47:48]
  • Judged
  • Verdict: WA
  • Time: 1ms
  • Memory: 7720kb
  • [2024-11-16 20:47:47]
  • Submitted

answer

#include<bits/stdc++.h>
using namespace std;
using ll = long long;
using ull = unsigned long long;
using VI = vector<int>;
using PII = pair<int,int>;
using VVI = vector<vector<int>>;
const ll mod = 998244353;
const ll INF = 1e18;
const int N = 2e5 + 10;
void solve(){
	
}
ll aa[N];
ll bb[N];
ll vis[N][20][20];
ll dp[N][20][20];
int n,m;
ll dfs(int now , int a , int b , int i , int j){
	
	if(a == m && b == m) return 0;
	if(now == 2 * n + 1) return 0;
	if(vis[now][a][b]) return dp[now][a][b];
	vis[now][a][b] = 1;
	
	if(now % 2 == 1){
		ll &r = dp[now][a][b];
		if(j <= n) {
			r = max(r , dfs(now + 1 , a , b , i , j + 1) );
		}
		if(i <= n && a + 1 <= m){
			r = max(r , dfs(now + 1 , a + 1 , b , i + 1 , j) + aa[i]);
		}
		
		
	}else{
		ll &r = dp[now][a][b];
		r = 1e10;
		if(i <= n) {
			r = min(r , dfs(now + 1 , a , b , i + 1 , j));
		}
		if(j <= n && b + 1 <= m){
			r = min(r , dfs(now + 1 , a  , b + 1 , i , j + 1) - bb[j]);
		}
		
		
	}
	
	return dp[now][a][b];
	
	
}



int main() {
	ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);
    
    
   //int T;cin>>T;while(T--)solve();
    //dp[i][j][k] = dp[i - 1][j][k]
    //A 选了 j 个 , 办了 i-j 个
    //B 选了 k 个 , 办了 i-k 个 
    //f[i][j][k] 第 i 次 A 操作后的最大分数
	//g[i][j][k] 第 i 次 B 操作后的最小分数 
    cin>>n>>m;
    for(int i = 1 ; i <= n ; i++) cin>>aa[i];
    for(int i = 1 ; i <= n ; i++) cin>>bb[i];
    sort(aa + 1 , aa + 1 + n , greater());
    sort(bb + 1 , bb + 1 + n , greater());
  	
    cout<<dfs(1 , 0 , 0 , 1 , 1);
    
    
}


//5 4 3 2 1
//5 4 3 2 1

详细

Test #1:

score: 100
Accepted
time: 1ms
memory: 5632kb

input:

2 1
3 6
2 4

output:

2

result:

ok single line: '2'

Test #2:

score: 0
Accepted
time: 1ms
memory: 5652kb

input:

4 1
1 3 5 7
2 4 6 8

output:

0

result:

ok single line: '0'

Test #3:

score: 0
Accepted
time: 1ms
memory: 7720kb

input:

4 2
4 6 7 9
2 5 8 10

output:

3

result:

ok single line: '3'

Test #4:

score: -100
Wrong Answer
time: 1ms
memory: 5808kb

input:

10 5
42 13 60 42 100 82 22 98 14 55
100 41 89 24 65 38 69 26 37 16

output:

45

result:

wrong answer 1st lines differ - expected: '41', found: '45'