一开始以为是贪心加二分,结果不是,是二分加DP,具体思路是二分L,然后开两个数组f1f2,用n方的时间算出在当前L下从第i个点开始能到达第f1[i]个点,f2同理,然后dp呢就开个二维数组, dp【i】【j】表示当前使用了i次法杖和j次二倍法杖
#include<bits/stdc++.h>
using namespace std;
int a[2086];
int f1[2086],f2[2086],dp[2086][2086];
int main()
{
int n,R,G;
cin>>n>>R>>G;
for (int i=1;i<=n;i++