贪心
- 每一步再选择中都选择当前状态下的最优解
- 通过局部最优解做到全局最优解
- 例:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int N ,sum = 0,p = 1,j =0,emp = 0;
cin >> N;
int arr[N] = {0};
int arrp[N] = {0};
for (size_t i = 1; i <= N; i++)
{
cin >> arr[i];
}
sort(arr+1,arr+N+1);
if (N == 1)
{
cout << arr[1];
return 0;
}
while (1)
{
if (N - j == 2 || N - j == 1)
{
sum += arr[2];
break;
}
sum += arr[1] + 2*arr[2] + arr[N-j];
j += 2;
}
cout << sum;
return 0;
}
Note
- 这题的题解找个时间我再写