社区讨论

佬们,这是为什么???

P5019[NOIP 2018 提高组] 铺设道路参与者 3已保存回复 8

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
8 条
当前快照
1 份
快照标识符
@lo1wirnj
此快照首次捕获于
2023/10/23 04:08
2 年前
此快照最后确认于
2023/11/03 04:36
2 年前
查看原帖
CPP
#include <bits/stdc++.h>

using namespace std;

const int N = 2e6 + 10;

int n, m;

struct node {
	int a, b;
}p[N];

bool cmp(node x, node y)
{
	return x.a <= y.a;
}

int main()
{
	scanf("%d %d", &n, &m);
	
	if (n == 0)
	{
		cout << 0;
		return 0;
	}
	
	for (int i = 1; i <= m; i ++ )
		cin >> p[i].a >> p[i].b;
		
	sort(p + 1, p + 1 + m, cmp);
	
	long long ans = 0;
	for (int i = 1; i <= m; i ++ )
	{
		if (n >= p[i].b)
		{
			ans += (long long)(p[i].a * p[i].b);
			n -= p[i].b;
		}
		else
		{
			ans += (long long)(n * p[i].a);
			break;
		}
	}
	
	printf("%lld", ans);
	return 0;
}
把cmp函数里的该成
CPP
x.a < y.a
就对了,这是为什么

回复

8 条回复,欢迎继续交流。

正在加载回复...