题目描述不清,请求更正
查看原帖
题目描述不清,请求更正
1118614
I_Love_DS楼主2024/3/7 17:50
  1. zz 的值域未说明。(搞得我不知道是 int 还是 long long 甚至是高精度)

  2. 经试验,每个骑士只能砍下一个头。

代码(每个骑士能砍下多个头)

#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e4 + 50;
int n,m;
long long a[maxn],b[maxn],ans = 0;
bool c[maxn];
int main(){
	memset(c,false,sizeof(c));
	scanf("%d%d",&n,&m);
	for (int i = 1; i <= n; i++) scanf("%lld",&a[i]);
	for (int i = 1; i <= m; i++) scanf("%lld",&b[i]);
	sort(b + 1,b + m + 1);
	for (int i = 1; i <= n; i++) {
		int j = 1;
		while (b[j] < a[i] && j <= m) j++;
		if (j == m + 1) {
			printf("you died!");
			return 0;
		}
		else ans += b[j];
	}
	printf("%lld",ans);
	return 0;
}

70分记录

代码(每个骑士只能砍下一个头)

#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e4 + 50;
int n,m;
long long a[maxn],b[maxn],ans = 0;
bool c[maxn];
int main(){
	memset(c,false,sizeof(c));
	scanf("%d%d",&n,&m);
	for (int i = 1; i <= n; i++) scanf("%lld",&a[i]);
	for (int i = 1; i <= m; i++) scanf("%lld",&b[i]);
	sort(b + 1,b + m + 1);
	for (int i = 1; i <= n; i++) {
		int j = 1;
		while ((b[j] < a[i] || c[j] != false) && j <= m) j++;
		if (j == m + 1) {
			printf("you died!");
			return 0;
		}
		else {
			ans += b[j];
			c[j] = true;
		}
	}
	printf("%lld",ans);
	return 0;
}

100分记录

请求更正,谢谢

2024/3/7 17:50
加载中...