求调,悬关(样例不过)
查看原帖
求调,悬关(样例不过)
1035155
ggylz49楼主2025/7/25 16:49
#include <iostream>
#include <cmath>
using namespace std;
int n,a[20010][2],dp[20010][2];//0左1右
int main()
{
    int n;
    cin>>n;
    for (int i=1;i<=n;i++)cin>>a[i][0]>>a[i][1];
    dp[1][0]=a[1][1]+abs(a[1][1]-a[1][0]),dp[1][1]=a[1][1];
    for (int i=2;i<=n;i++)
    {
        dp[i][0]=min(dp[i-1][0]+abs(a[i-1][0]-a[i][1])+abs(a[i][1]-a[i][0]),dp[i-1][1]+abs(a[i-1][1]-a[i][1])+abs(a[i][1]-a[i][0]))+1;
        dp[i][1]=min(dp[i-1][0]+abs(a[i-1][0]-a[i][0])+abs(a[i][1]-a[i][0]),dp[i-1][1]+abs(a[i-1][1]-a[i][0])+abs(a[i][1]-a[i][0]))+1;
    }
    cout<<min(dp[n][0]+abs(n-a[n][0]),dp[n][1]+abs(n-a[n][1]));
    return 0;  
}
2025/7/25 16:49
加载中...