求助关于sort写法
  • 板块P1809 过河问题
  • 楼主__er
  • 当前回复7
  • 已保存回复7
  • 发布时间2023/1/29 12:11
  • 上次更新2023/11/19 19:07:21
查看原帖
求助关于sort写法
713955
__er楼主2023/1/29 12:11

是数据水吗,如果不是如何证明这样写的正确性:

#include <bits/stdc++.h>
#define JS ios::sync_with_stdio(false),cin.tie(nullptr),cout.tie(nullptr)
using namespace std;
int dp[100001], a[100001], n;

int main() {
	JS;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> a[i];
	}
	sort(a + 1, a + 1 + n);
	dp[1] = a[1], dp[2] = a[2];
	for (int i = 3; i <= n; i++) {
		dp[i] = min(dp[i - 1] + a[i] + a[1], dp[i - 2] + a[i] + a[2] * 2 + a[1]);
	}
	cout << dp[n];
	return 0;
}

如果将这份代码中的 sort(a + 1, a + 1 + n); 写成 sort(a + 1, a + n); 也能过,按理说 a[] 并不是完全有序,递推的时候会有问题,但凡最后一个是最小值就全挂了

2023/1/29 12:11
加载中...