P1632 各位dalao帮帮忙
  • 板块学术版
  • 楼主xuesj
  • 当前回复3
  • 已保存回复3
  • 发布时间2023/8/12 22:10
  • 上次更新2023/11/3 04:11:17
查看原帖
P1632 各位dalao帮帮忙
655096
xuesj楼主2023/8/12 22:10

各位大佬帮帮忙

问题描述

我用了两份代码写这道题,第一份是自己的思路,第二份是题解的思路。两道题测试样例都过了,但是测试点全红,实在没找出错误所在,希望大家帮帮忙,谢谢

代码

第一份

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n = 0, x[55], y[55];
    int x_min = INT_MAX, y_min = INT_MAX;
    cin >> n;
    for (int i = 0; i < n; i++)
    {
        cin >> x[i];
        cin >> y[i];
    }
    for (int a = 0; a < n; a++)
    {
        for (int i = 0; i < a + 1; i++)
        {
            x_min = min(x_min, x[i]);
            y_min = min(y_min, y[i]);
        }
        int m_min1 = INT_MAX, m_min2 = INT_MAX;
        for (int i = x_min, k = 0; k < a + 1; i++, k++)
        {
            int t = 0;
            for (int j = 0; j < a + 1; j++)
            {

                t += abs(x[j] - i);
            }
            m_min1 = min(m_min1, t);
        }
        for (int i = y_min, k = 0; k < a + 1; i++, k++)
        {
            int t = 0;
            for (int j = 0; j < a + 1; j++)
            {

                t += abs(y[j] - i);
            }
            m_min2 = min(m_min2, t);
        }
        cout << m_min1 + m_min2 << endl;
    }
    return 0;
}

第二份

#include <bits/stdc++.h>
using namespace std;

int main()
{
    int x[55], y[55], ans[55];
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
        cin >> x[i] >> y[i];
    for (int i = 1; i <= n; i++)
    {
        int m_min = INT_MAX;
        for (int j = 1; j <= n; j++)
        {
            int t = 0;
            for (int k = 1; k <= n; k++)
                ans[k] = abs(x[k] - x[j]) + abs(y[k] - y[i]);
            sort(ans + 1, ans + 1 + n);
            for (int k = 1; k <= i; k++)
            {
                t += ans[k];
            }
            m_min = min(m_min, t);
        }
        cout << m_min << endl;
    }
    return 0;
}
2023/8/12 22:10
加载中...