2024.12.16 周一

2024.12.16 周一


Q1. 1000

Monocarp is playing yet another computer game. And yet again, his character is killing some monsters. There are n monsters, numbered from 1 to n, and the i-th of them has ai health points initially.

Monocarp's character has an ability that deals k damage to the monster with the highest current health. If there are several of them, the one with the smaller index is chosen. If a monster's health becomes less than or equal to 0 after Monocarp uses his ability, then it dies.

Monocarp uses his ability until all monsters die. Your task is to determine the order in which monsters will die.

------------------------独自思考分割线------------------------

  • 昨天数据结构考试+第二题被位运算加构造卡了,就润了,所以就一道题..

A1.

  1. 在原有的基础上考虑加速加速操作。发现最终顺序和模 k 之后大小有关。按照这种意义排序即可。

------------------------代码分割线------------------------

A1.

#include <bits/stdc++.h>
#define int long long //
#define endl '\n'     // 交互/调试 关
using namespace std;
#define bug(BUG) cout << "bug:# " << (BUG) << endl
#define bug2(BUG1, BUG2) cout << "bug:# " << (BUG1) << " " << (BUG2) << endl
#define bug3(BUG1, BUG2, BUG3) cout << "bug:# " << (BUG1) << ' ' << (BUG2) << ' ' << (BUG3) << endl
void _();
signed main()
{
    ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
    cout << fixed << setprecision(6);
    int T = 1;
    cin >> T;
    while (T--)
        _();
    return 0;
}

void _()
{
    int n, k;
    cin >> n >> k;
    struct Node
    {
        /* data */
        int x, i;
    };
    vector<Node> a(n);
    for (int i = 0; i < n; i++)
    {
        int t;
        cin >> t;
        // a[i].x = k - t % k;
        a[i].x = t % k;
        a[i].x = !a[i].x ? k : a[i].x;
        a[i].i = i;
        // bug2(i + 1, a[i].x);
    }
    sort(a.begin(), a.end(), [](Node &a, Node &b)
         { return a.x - b.x ? a.x > b.x : a.i < b.i; });
    for (auto [x, i] : a)
        cout
            << i + 1 << ' ';
    cout << endl;
}
posted @   Jkke  阅读(5)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示