首页 > 其他分享 >J. Joy of Handcraft

J. Joy of Handcraft

时间:2023-05-16 13:45:14浏览次数:48  
标签:int Joy tr 亮度 Handcraft 灯泡 define

J. Joy of Handcraft

题意:

给定 n 个灯泡的时间周期以及对应的亮度值,求 1 ~ m 的时刻,每一时刻的灯泡最大亮度

分析:

按时间轴建树,维护时间区间的亮度最大值
按亮度值递减排序,遍历灯泡时只 modify 为相同周期中亮度值最大的一个灯泡作为区间亮度最大值
区间修改,单点查询

实现:

#include <bits/stdc++.h>
using namespace std;
#define mst(x, y) memset(x, y, sizeof x)
#define endl '\n'
#define INF LONG_LONG_MAX
#define int long long
#define Lson u << 1, l, mid
#define Rson u << 1 | 1, mid + 1, r
#define FAST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0)
const int N = 200010, MOD = 1e9 + 7;
const double EPS = 1e-6;
typedef pair<int, int> PII;
int T;
int n, m;
int Case = 1;
bool st[N];
struct Q
{
    int t, x;
} q[N];
struct Node
{
    int l, r;
    int val;
    int lz;
} tr[N << 2];
void pushup(Node u, Node l, Node r)
{
    u.val = max(l.val, r.val);
}
void pushup(int u)
{
    pushup(tr[u], tr[u << 1], tr[u << 1 | 1]);
}
void pushdown(int u)
{
    tr[u << 1].lz = max(tr[u].lz, tr[u << 1].lz);
    tr[u << 1 | 1].lz = max(tr[u].lz, tr[u << 1 | 1].lz);
    tr[u << 1].val = max(tr[u << 1].val, tr[u].lz);
    tr[u << 1 | 1].val = max(tr[u << 1 | 1].val, tr[u].lz);
    tr[u].lz = 0;
}
void build(int u, int l, int r)
{
    if (l == r)
        tr[u] = {l, l, 0, 0};
    else
    {
        tr[u] = {l, r};
        int mid = l + r >> 1;
        build(Lson), build(Rson);
        pushup(u);
    }
}
void modify(int u, int l, int r, int k)
{
    if (tr[u].l >= l && tr[u].r <= r)
    {
        tr[u].lz = max(tr[u].lz, k);
        tr[u].val = max(tr[u].val, tr[u].lz);
    }
    else
    {
        pushdown(u);
        int mid = tr[u].l + tr[u].r >> 1;
        if (l <= mid)
            modify(u << 1, l, r, k);
        if (r > mid)
            modify(u << 1 | 1, l, r, k);
        pushup(u);
    }
}
int query(int u, int l, int r)
{
    if (tr[u].l >= l && tr[u].r <= r)
        return tr[u].val;
    else
    {
        pushdown(u);
        int mid = tr[u].l + tr[u].r >> 1;
        if (l <= mid)
            return query(u << 1, l, r);
        else
            return query(u << 1 | 1, l, r);
    }
}
void solve()
{
    mst(st, false);
    cin >> n >> m;
    for (int i = 1; i <= n; i++)
        cin >> q[i].t >> q[i].x;
    sort(q + 1, q + 1 + n, [&](Q a, Q b)
         { return a.x > b.x; });

    build(1, 1, m);

    for (int i = 1; i <= n; i++)
    {
        if (st[q[i].t])
            continue;
        st[q[i].t] = true;

        int l = 1, r = q[i].t;
        while (l <= m)
        {
            // int tmp = query(1, l, min(r, m));
            // if (tmp < q[i].x)
                modify(1, l, min(r, m), q[i].x);
            l += 2 * q[i].t, r += 2 * q[i].t;
        }
    }

    for (int i = 1; i <= m; i++)
    {
        cout << query(1, i, i) << " \n"[i == m];
    }
}
signed main()
{
    FAST;
    T = 1;
    cin >> T;
    while (T--)
    {
        cout << "Case #" << Case++ << ": ";
        solve();
    }
    return 0;
}

标签:int,Joy,tr,亮度,Handcraft,灯泡,define
From: https://www.cnblogs.com/Aidan347/p/17405377.html

相关文章

  • Vulnhub Joy Walkthrough
    Recon这台靶机对枚举的要求较高,如果枚举不出有用的信息可能无法进一步展开,我们首先进行普通的扫描。┌──(kali㉿kali)-[~/Labs/Joy/80]└─$sudonmap-sS-sV-p-192.168.80.136StartingNmap7.93(https://nmap.org)at2023-04-1022:42EDTNmapscanreportfor......
  • AllJoyn:高通推出的近距离P2P通讯技术
    以NFC为代表的近距离无线通讯技术已经不是什么新鲜玩意了,而近场通讯的实用性和便利性,也使其成为业界一大热点,众多顶级公司都对这项技术寄予厚望,连全球最大的手机芯片制造商高通也推出了近距离P2P通讯技术AllJoyn,两台同样使用AllJoyn技术的设备可以快速实现......
  • Tapjoy创始人新推移动电商平台Karma
    圣诞将至,是否有意为你的亲朋好友送上一份别致的节日礼物,但又不需花费太多时间和精力?赶紧试试这款最新推出的iOS应用Karma吧。Karma是由科技创业公司Tapjoy创始人LeeLin......
  • sound joy和JBL万花筒6哪个音质好
    soundjoy和JBL万花筒6哪个音质好,虽然我没用过JBL的万花筒6,但是可以猜到是JBL万花筒6音质更好。因为soundjoy固件更新最新版本后音质负优化。华为工程师可能看了网上的评......
  • [Docker] Handcrafting a Container Image
    Pullhttpdimageandrunthecontainer[cloud_user@ip-10-0-1-78~]$dockerpullhttpd:2.4[cloud_user@ip-10-0-1-78~]$dockerrun--namewebtemplate-dhttpd:2......
  • 了解下Foundation Joyride
    Foundation用于开发响应式的HTML,CSSandJavaScript框架。oyride是一个功能向导的JavaScript效果,创建实例如下:实例<h3id="first">Firststop!</h3><h3id="second"......
  • 得利捷发布全新自助购物伴侣 JOYA TOUCH 22
    自动数据采集和工厂自动化市场的全球领导者Datalogic得利捷欣然宣布推出新的JoyaTouch22自助购物设备。JoyaTouch22被誉为当今繁忙的购物者和零售商唯一需要的购物......
  • 2022 ChinaJoy玩起了元宇宙,虚拟与现实融合全新交互体验重磅来袭
     元宇宙概念的火热催生了虚拟平行世界的诞生,今年的ChinaJoy别出心裁地玩起了元宇宙,将于2022年8月27日至9月2日在MetaCJ元宇宙数字世界中举办ChinaJoy线上展(CJPlus)。MetaCJ......
  • Vulnhub之Joy靶机详细测试过程
    Joy作者:jason_huawen靶机基本信息名称:digitalworld.local:JOY地址:https://www.vulnhub.com/entry/digitalworldlocal-joy,298/识别目标主机IP地址(kali㉿kali)-[......
  • 【iOS-cocos2d-X 游戏开发之十二】自定义Cocos2dx摇杆(增强Joystick),增加摇杆跟随用
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明对于虚拟摇杆在游戏开发中必不可少,Android方面的是由Himi自己实现封装的,大家可以移步到这里查看详细实现机......