博客
关于我
B. Omkar and Infinity Clock
阅读量:150 次
发布时间:2019-02-27

本文共 1665 字,大约阅读时间需要 5 分钟。

为了解决这个问题,我们需要对给定的数组进行k次操作,每次操作包括将数组中的每个元素替换为当前最大值减去该元素。通过分析,我们发现数组会在两次操作后进入一个循环模式,因此我们可以利用这一特性来优化计算过程。

方法思路

  • 第一次操作:计算数组的最大值d,然后将每个元素替换为d减去该元素,得到新数组b。
  • 第二次操作:计算数组的最大值d,再次将每个元素替换为d减去该元素,得到新数组c。
  • 比较数组:检查数组b和c是否相同。如果相同,无论k的值如何,结果都是c。否则,根据k的奇偶性决定最终的数组状态:如果k是奇数,结果为b;如果是偶数,结果为c。
  • 这种方法避免了在k次操作中重复计算,能够在O(n)时间内解决问题,适用于大范围的n和k。

    解决代码

    #include 
    using namespace std;int main() { int t; cin >> t; for (int test_case = 0; test_case < t; ++test_case) { int n, k; cin >> n >> k; ll a[n]; for (int i = 0; i < n; ++i) { cin >> a[i]; } // 第一次操作得到数组b ll d = max(a); ll b[n]; for (int i = 0; i < n; ++i) { b[i] = d - a[i]; } // 第二次操作得到数组c ll d2 = max(b); ll c[n]; for (int i = 0; i < n; ++i) { c[i] = d2 - b[i]; } // 判断b和c是否相同 bool isSame = true; for (int i = 0; i < n; ++i) { if (b[i] != c[i]) { isSame = false; break; } } if (isSame) { for (int i = 0; i < n; ++i) { cout << c[i] << " "; } } else { if (k % 2 == 1) { for (int i = 0; i < n; ++i) { cout << b[i] << " "; } } else { for (int i = 0; i < n; ++i) { cout << c[i] << " "; } } } cout << endl; }}

    代码解释

  • 读取输入:读取测试用例的数量t,然后逐个处理每个测试用例。
  • 第一次操作:计算数组的最大值d,然后生成数组b。
  • 第二次操作:计算数组b的最大值d2,生成数组c。
  • 比较数组:检查b和c是否相同。如果相同,输出c;否则,根据k的奇偶性输出b或c。
  • 输出结果:根据判断结果输出最终数组。
  • 这种方法确保了在处理大范围数据时的效率和正确性。

    转载地址:http://ulib.baihongyu.com/

    你可能感兴趣的文章
    Plotly 域变量解释(多图)
    查看>>
    Plotly 绘制表面 3D 未显示
    查看>>
    Plotly-Dash 存在未知问题并创建“加载依赖项时出错“;通过使用 Python-pandas.date_range
    查看>>
    Plotly-Dash:如何过滤具有多个数据框列的仪表板?
    查看>>
    Plotly:如何为 x 轴上的时间序列设置主要刻度线/网格线的值?
    查看>>
    Plotly:如何从 x 轴删除空日期?
    查看>>
    Plotly:如何从单条迹线制作堆积条形图?
    查看>>
    Plotly:如何以 Root 样式绘制直方图,仅显示直方图的轮廓?
    查看>>
    Plotly:如何使用 Plotly Express 组合散点图和线图?
    查看>>
    Plotly:如何使用 plotly.graph_objects 和 plotly.express 定义图形中的颜色?
    查看>>
    Plotly:如何使用 Python 对绘图对象条形图进行颜色编码?
    查看>>
    Plotly:如何使用 updatemenus 更新一个特定的跟踪?
    查看>>
    Plotly:如何使用长格式或宽格式的 pandas 数据框制作线图?
    查看>>
    Plotly:如何向烛台图添加交易量
    查看>>
    Plotly:如何在 plotly express 中找到趋势线的系数?
    查看>>
    Plotly:如何在桑基图中设置节点位置?
    查看>>
    Plotly:如何处理重叠的颜色条和图例?
    查看>>
    Plotly:如何手动设置 plotly express 散点图中点的颜色?
    查看>>
    Plotly:如何结合 make_subplots() 和 ff.create_distplot()?
    查看>>
    Plotly:如何绘制累积的“步骤“;直方图?
    查看>>