【清华集训2017模拟】Sequence

AI数据集获取实战:构建高可用数据源评估框架 数据集是AI模型训练的基石,其获取效率与合规性直接影响研发效能。本文从数据源可用性、结构化程度、许可清晰度、社区活性和国产替代成熟度五大维度出发,解析现代数据集网站的技术评估逻辑;结合自动化链接验证、Schema校验与License提取等工程实践,揭示如何将‘找数据’转化为可编程、可审计、可复用的数据供给能力。内容覆盖Kaggle、Hugging Face、魔搭(ModelScope)等主流平台,特别融入国产替代兼容性与企业级代理网关设计,为算法工程师、MLOps工程师及高校教学提供面向2026年真实场景的 阅读详情

Description :

这里写图片描述
1<=n<=3e4,1<=m<=1e5

题解:

做的第一道整体二分题。

整体二分的套路:
二分一个答案,对于每个询问求出答案,再把询问分成两部分,第一个部分是答案< mid的,第二个部分是答案大于mid的,至于=mid的,这个询问不一定是mid,先把答案记一下,根据实际情况而决定分到哪个部分。

这题首先得把[x, y]的限制具体化,用一棵主席树预处理[x..y]限制对应的a值是什么。

二分一个答案mid,把b值小于等于mid的元素加入坐标系,横坐标是a值,纵坐标是序号。
对于每个询问,相当于询问[l..r][x_..y_]的点数(x_、y_是x,y具体化以后的a值大小),这个可以拆开,排个序,用个扫描线加树状数组的东西维护一下就可以了。

求出答案,需要把询问分到它们应该去的部分,s>=mid,则说明答案<=mid,s

#include<cstdio>
#include<cstring>
#include<algorithm>
#define low(x) ((x) & -(x))
#define fo(i, x, y) for(int i = x; i <= y; i ++)
using namespace std;

const int N = 100005;

int n, m;

struct node {
    int fi, se, num;
}a[N];

struct tree {
    int l, r, s;
}t[N * 100];
int g[N], tp;
int opl, opr, opx;

struct Ask {
    int l, r, x, y, k, to, ans, s;
}b[N];

int xg(int i, int l, int r) {
    if(l > opl || r < opl) return i;
    if(l == r) {
        t[++ tp] = t[i]; t[tp].s ++;
        return tp;
    }
    int m = l + r >> 1; t[++ tp] = t[i]; i = tp;
    t[i].l = xg(t[i].l, l, m); t[i].r = xg(t[i].r, m + 1, r);
    t[i].s = t[t[i].l].s + t[t[i].r].s;
    return i;
}
int query(int g1, int g2, int l, int r, int v) {
    if(l == r) return l;
    int m = l + r >> 1, l1 = t[g1].l, l2 = t[g2].l;
    if(t[l2].s - t[l1].s >= v)
        return query(t[g1].l, t[g2].l, l, m, v); else
        return query(t[g1].r, t[g2].r, m + 1, r, v - (t[l2].s - t[l1].s));
}

void Init() {
    scanf("%d", &n);
    fo(i, 1, n) scanf("%d", &a[i].fi);
    fo(i, 1, n) scanf("%d", &a[i].se);
    g[0] = tp = 1;
    fo(i, 1, n) {
        opl = a[i].fi;
        g[i] = xg(g[i - 1], 1, n);
    }
    scanf("%d", &m);
    fo(i, 1, m) {
        scanf("%d %d %d %d %d", &b[i].l, &b[i].r, &b[i].x, &b[i].y, &b[i].k);
        b[i].x = query(g[b[i].l - 1], g[b[i].r], 1, n, b[i].x);
        b[i].y = query(g[b[i].l - 1], g[b[i].r], 1, n, b[i].y);
    }
}

struct node2 {
    int h, x, y, f, to;
}c[N * 2];

bool rank_c(node2 a, node2 b) {
    return a.h < b.h;
}

struct node3 {
    int h, w;
}d[N];

bool rank_d(node3 a, node3 b) {
    return a.h < b.h;
}

int f[N];

void add(int x, int y) {
    while(x <= n) {
        f[x] += y;
        x += low(x);
    }
}

int find(int x) {
    int s = 0;
    while(x) {
        s += f[x];
        x -= low(x);
    }
    return s;
}

bool rank_b(Ask a, Ask b) {
    if(a.s < a.k && b.s >= b.k) return 0;
    if(a.s > a.k && b.s <= b.k) return 1;
    if(a.s == a.k) {
        if(b.s < b.k) return 1;
        if(b.s > b.k) return 0;
    }
    return 0;
}

void EF(int x, int y, int ax, int ay, int bx, int by) {
    if(x > y) return;
    if(ax > ay) return;
    if(bx > by) return;
    int mid = (x + y) / 2;

    int tc = 0;
    fo(i, bx, by) {
        b[i].s = 0;

        c[++ tc].f = -1;
        c[tc]. h = b[i].l - 1;
        c[tc].x = b[i].x; c[tc].y = b[i].y;
        c[tc].to = i;

        c[++ tc].f = 1;
        c[tc]. h = b[i].r;
        c[tc].x = b[i].x; c[tc].y = b[i].y;
        c[tc].to = i;
    }
    sort(c + 1, c + tc + 1, rank_c);
    int neway = ay;
    while(neway >= ax && a[neway].se > mid) neway --; //find neway
    int td = 0;
    fo(i, ax, neway) d[++ td].h = a[i].num, d[td].w = a[i].fi;
    sort(d + 1, d + td + 1, rank_d);

    int dz = 0;
    fo(i, 1, tc) {
        while(dz < td && d[dz + 1].h <= c[i].h) dz ++, add(d[dz].w, 1);
        b[c[i].to].s += c[i].f * (find(c[i].y) - find(c[i].x - 1));
    }
    while(dz) add(d[dz].w, -1), dz --; //clear f
    sort(b + bx, b + by + 1, rank_b);
    fo(i, bx, by) if(b[i].s == b[i].k) b[i].ans = mid;

    int newby = by;
    while(newby >= bx && b[newby].s < b[newby].k) newby --;

    int newbx = bx;
    while(newbx <= by && b[newbx].s >= b[newbx].k) newbx ++;

    fo(i, newbx, by) b[i].k -= b[i].s;
    EF(x, mid - 1, ax, neway, bx, newby);
    EF(mid + 1, y, neway + 1, ay, newbx, by);

}

bool rank_a(node a, node b) {
    return a.se < b.se;
}

int ans[N];

int main() {
    freopen("sequence.in", "r", stdin); 
    freopen("sequence.out", "w", stdout);
    Init();
    fo(i, 1, n) a[i].num = i;
    sort(a + 1, a + n + 1, rank_a);
    fo(i, 1, m) b[i].to = i;
    EF(1, n, 1, n, 1, m);
    fo(i, 1, m) ans[b[i].to] = b[i].ans;
    fo(i, 1, m) printf("%d\n", ans[i]);
}
Anaconda安装及配置+pytorch深度学习环境(2024复旦计算机工作站0705) Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。Torch 是一个经典的对多维矩阵数据进行操作的张量(tensor )库,在机器学习和其他数学密集型应用有广泛应用。与Tensorflow的静态计算图不同,Pytorch的计算图是动态的,可以根据计算需要实时改变计算图。但由于Torch语言采用 Lua,导致在国内一直很小众,并逐渐被支持 Python 的 Tensorflow 抢走用户。 阅读详情

相关推荐

arduino esp8266_Arduino传感器教程 第22章ESP8266 控制 5V 继电器

ESP8266控制5V继电器目录一、NodeMCU二、工作原理本文将使用亚马逊 AlexaEcho 和 ESP8266 控制 5V 继电器。NodeMCUNodeMCU 是一个开源的 IoT 物联网硬件开发板,由于它支持 WIFI 功能且使用方法十分类似 Arduino 开发板,所以近些年获得了越来越多来自全世界的创客朋友们的青睐。NodeMCU 尺寸与 Arduino Nano 类似。...

weixin_39611722的博客 3456

【清华集训2017】【LOJ2324】【洛谷P4006】小 Y 和二叉树(贪心)

LOJ传送门 洛谷传送门 解析: 其实仔细想一想,这道题其实需要支持的操作就是交换左右儿子和Splay里面的Rotate,然后求最小中序遍历。 显然Rotate是不会改变中序遍历的,重点其实就是交换左右儿子。 我们找到第一个度数小于三的点,显然它就是最优解中极左链的末端。 处理出以它为根的时候每个点子树中序遍历的最小开头。 然后贪心选择最小的那边,考虑一个作为父亲另一个作为右儿子的情况就行了。 ...

zxyoi_dreamer的博客(不定期诈尸) 266

别再死磕官方文档了!用宿舍开黑的故事,5分钟搞懂Autosar CanNM网管报文

本文通过宿舍开黑游戏的生动类比,深入浅出地解析了Autosar CanNM网管报文的工作原理。从游戏队友协作到汽车ECU节点的同步机制,详细介绍了网管报文的唤醒流程、通信协议及休眠策略,帮助读者快速掌握这一关键技术。

weixin_30463341的博客 262

【LOJ2324】「清华集训 2017」小 Y 和二叉树

【题目链接】 点击打开链接 【思路要点】 答案的第一位一定是编号最小的度数不为 333 的节点,不妨设为 rootrootroot ,以 rootrootroot 为根, iii 的子树内编号最小的度数不为 333 的节点为 dpidp_idpi​ 。 在这个思路上,我们考虑如何比较 xxx 和 yyy 两点作为根节点时的答案哪个更优。 111 、当 lca(x,y)≠x,ylca(x...

cz_xuyixuan的博客 628

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

【ESP32】ESP32连接JY61P并通过WIFI发送给电脑

ESP32S连接JY61P并通过WIFI把姿态数据发送给电脑1.采用Arduino IDE编译器;需要安装ESP32的开发板管理器;2.电脑接受数据是基于python的;

Doudou_Nai的博客 1133

P4224 [清华集训2017]简单数据结构 题解

(本文是基于队爷 @s_r_f 所写题解的完善和补充) 可以发现,如果我们暴力地枚举一个数的因数或倍数,时间复杂度是可接受的。 对于前者,单次复杂度为 O(n)O(\sqrt n)O(n​);对于后者,由于题目保证了 C≤10C \leq 10C≤10,所以单次的均摊复杂度应为调和级数 O(ln⁡n)O(\ln n)O(lnn)。 所以,我们可以考虑直接模拟题意中的操作。 首先,我们设 fif_ifi​ 为以 iii 开头的最长上升倍数子序列的长度。同时,为了方便统计答案的第二项,我们再设一个 fcnti

Recalling_Clouds的博客 320

ESP32搭配LVGL显示图片的两种方法详解:内部存储 vs 外部文件

本文详细介绍了ESP32搭配LVGL显示图片的两种方法:内部存储与外部文件。内部存储方案适合快速响应的小图片,而外部文件方案则适用于需要灵活更新和大容量图片的场景。通过对比分析,帮助开发者根据项目需求选择最优方案,提升嵌入式系统的UI性能。

weixin_30399821的博客 519

【LOJ2326】「清华集训 2017」简单数据结构

【题目链接】 点击打开链接 【思路要点】 注意到答案是 O(LogM)O(LogM)O(LogM) 级别的。 对于每一个点 iii 我们暴力维护其 dpdpdp 值 dpidp_idpi​ 以及能够转移到 iii 的各个位置的中 dpdpdp 值为 jjj 的位置数 cnti,jcnt_{i,j}cnti,j​ 。 令 f(x)f(x)f(x) 表示 xxx 的因子个数。 对于操作 0...

cz_xuyixuan的博客 774

2025浏览器指纹伪装终极指南:Playwright修改WebGL+时区+分辨率,小红书爬1000条零验证

2025年小红书的反爬已经进入“多维校验”时代,单纯修改某一个指纹维度已失效。本文方案的核心是“让所有特征都一致且合理”——WebGL+Canvas+时区+分辨率+UA+行为,形成一个完整的“真实用户画像”,让小红书的反爬系统无法区分是爬虫还是真人。这套方案不仅适用于小红书,也可迁移到知乎、抖音、跨境电商等其他高反爬平台,只需替换对应的指纹库和数据提取逻辑。记住:指纹伪装的本质不是“欺骗”,而是“模拟真实”,把每个细节都做到和人类一致,自然就能实现“零验证”爬取。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 3071

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

域适应分类:MCD论文笔记——Maximum Classifier Discrepancy for Unsupervised Domain Adaptation

qq_50001789的博客 1007

loj#2326. 「清华集训 2017」简单数据结构【动态规划+set】

传送门 解题思路: 感觉复杂度是证不来的……不过跑得挺快…… 注意序列长度不超过20,所以也比较暴力,就是记录每个值的位置,以每个点开头的最长长度和每个长度对应的最小结尾位置,用set维护以每个点为结尾的最长序列开头位置,用桶维护答案……向左加就枚举倍数更新,向右加就枚举约数更新…… #include&amp;lt;bits/stdc++.h&amp;gt; using namespace std; in...

cdsszjj的博客 971

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

西门子S7-1200PLC与FANUC机器人进行PROFINET IO通信的具体方法和步骤详解

Robot_PLC_HMI_Automation 1万+

【JZOJ5296】【清华集训2017模拟】Sequence

DescriptionData ConstraintSolution对于S和S’,我们可以用主席树很轻松的求出,但不能求出二关键字的k大。所以我们考虑整体二分。我们可以求出排名在[x,y]内的元素的范围[a,b]。对于一个范围[l,r]设满足排名k在该区间的询问[x,y],我们二分出mid,对于一个询问,若满足区间[l,r]内第一关键字在[a,b]且满足第二关键字小于mid的数量少于k,则答案一定在

dance in th dark的博客 444

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

【JZOJ 5296】【清华集训2017模拟】Sequence

Solution发现,那个条件2其实没有用,可以用主席树预处理一下,转为数值在x,y之间, 那么这题就变成了求二维平面上的第k大, 这个用整体二分即可,复杂度:O(nlog(n)2)O(n\log(n)^2)Code#include <cstdio> #include <cstdlib> #include <algorithm> #define fo(i,a,b) for(int i=a;i<=

523

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

JZOJ5296.【清华集训2017模拟】Sequence

题意 数据范围 Analysis 首先考虑第二个条件如何解决,不可能直接把元素提取出来,考虑类似求区间第KKK小的方法,在主席树上根据给出的x,yx,yx,y来求,发现是一段连续的权值区间。那么再考虑第三个条件如何解决,不可能再在里面套数据结构,考虑整体二分解决。每次二分出一个值,然后,对于小于等于midmidmid的第二个元素,其权值设为111,然后通过排序和树状数组求出,每个询问...

XLno_name的博客 400

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

5296. 【清华集训2017模拟】Sequence 树套树

题意:给你一些二元组如(ai,bi)(ai,bi),每次询问l,r,x,y,k. 先把元素按照第一关键字排序,取出其中排名为x,y的,按照第二关键字排序后取出排名为k的元素。树套树很明显了其实。。 对于第一个操作,我们对于a维护一颗主席树,取出第x,y的端点,然后在外层主席树中把第x到y中的节点信息取出来然后做个线段树区间k大就好了。。#include<cstdio> #include<algo

老臣 222

【JZOJ5296】【清华集训模拟】Sequence(整体二分)

DescriptionSolution这是第一次打整体二分。是一道十分裸的整体二分。 整体二分大致思想就是,对于一坨询问,我们二分一个值,然后对所有的询问都进行判断,然后分别放到[l,mid]和[mid+1,r],这要每次枚举的区间都是[l,r]的话,时间复杂度就是log的。 首先排名[x,y]的可以用主席树来搞出它的值域范围。 我们对于b的答案二分一个值mid。然后找到所有b的值小于mid(

Facico的博客 689

Apollo:音频还原的高效建模方案

Apollo:音频还原的高效建模方案 项目介绍 Apollo项目是由清华大学与腾讯AI实验室共同研发的一种新型音频还原模型。在当前社会,音频还原技术越来越受到重视,不仅因为高质量的音频体验对现代播放设备的支持需求,更是由于音频生成模型能力的提升对高保真音频的需求日益增长。Apollo项目通过其独特的频率带序列建模方式,为高采样率音频的还原提供了高效解决方案。 项目技术分析 Apollo项目的主要技...

gitblog_01132的博客 921

一文带你了解HuggingFace Transformer 理论基础,Transformer 实战,十万字精读

在 Hugging Face 的库中,Pipeline(流水线)是最高层、最易用的推理 API。如果把直接调用 PyTorch 底层代码比作“驾驶手动挡赛车”(需要精细控制离合、油门和换挡),那么 Pipeline 就是一辆开箱即用的“全自动无人驾驶汽车”。你只需要输入目的地(文本),它就能直接把你送到终点(预测结果)。你不需要知道到底该用 BERT 还是 T5。你只需要告诉 Pipeline 你的任务目标文本生成、翻译、问答、图像分类),它就会自动为你匹配一套默认的最佳预训练模型和分词器。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 553

清华集训2017给修记

day -1开启懵逼之旅。 高铁上和__debug,h10,dy0607打扑克牌,每一局规则都不一样。1h后各自颓。samjia又打通了一次以撒。 来到西郊后跟着h10和__debug颓,虽然最后莫名奇妙的变成了看电影。h10掘地求升居然过灯了。 今天没给到修修。day 0早上睡得舒服,吃的舒服,报道完颓的舒服。 中午富榄请去thu吃饭,舒服。 下午回来给到修修,舒服。 晚上连赢AK杀,

不来也不去的一只失忆蝴蝶 1945

清华集训2017题解

ioi赛制好评QAQ 好像啥都记不得了就不写游记了 Day 1 1.1 生成树计数(tree.cpp) 1.1.1. 题意 ​ 有 n≤30000n≤30000 n \le 30000 个点,第 ii i 个点有点权 aiai a_i ,设第 ii i 个点的点度为 didi d_i ,那么求求所有生成树的权值和。一个生成树的权值 w(T)w(T) w(T)...

whzzt的博客 2469

【清华集训2017模拟】ces

Description: 1<=n<=1e5,1<=q<=m<=2e5题解:首先把用tajan把桥边全部找出来,桥边会把图分成若干个双联通分量。 把每个双联通分量并成一个点,桥边作为边,这会构成一棵树。显然,对于每个询问加k条边最多能去掉多少条桥边,就是用k条简单路径去覆盖这棵树,最多能覆盖多少条边。有一个很优的贪心,把k按1-q做,每次找到树的直径,答案加上直径的长度,把直径压成一个点,继续做

Cold_Chair的博客 687

[LOJ#2326]「清华集训 2017」简单数据结构

[LOJ#2326]「清华集训 2017」简单数据结构 试题描述 参加完IOI2018之后就是姚班面试。而你,由于讨厌物理、并且想成为乔布斯一样的创业家,被成功踢回贵系。 转眼,时间的指针被指向2019,大二,12月初,考试周。 你早听学长说,数据结构期中考很难,对竞赛生不友好,集训队选手做不完卷子。 你冷笑。哼,堂堂国际金,这点难度的考试算什么。 两小时,你看完习题解析前五章所有内容,并且倒背如...

weixin_30783629的博客 228

loj#2324. 「清华集训 2017」小 Y 和二叉树(贪心+分类讨论)

题面在这里 题意: 给出一棵每个点度数不超过3的无根树,节点编号为111~nnn 你需要确定根和每个节点的左右儿子,使其成为一棵二叉树。 问所有可得到的二叉树中中序遍历字典序最小的树的中序遍历。 n≤1,000,000n≤1,000,000n ≤ 1,000,000 做法: 这题似乎当时集训队全场ac 首先找出一个最小的度≤2≤2\le2的点作为最左边的拐角点,也就是中序遍历的第一...

juruo? juruo! 506

LibreOJ #2324.「清华集训 2017」小 Y 和二叉树 贪心

题意 有一棵二叉树,现在可以选定任意一个点为根,要求使得这棵二叉树的中序遍历字典序最小。 n≤1000000n≤1000000n\le1000000 分析 不难发现若一个点度数小于3则一定可以成为第一个点。 那么我们可以先确定第一个点然后树形dp出以每个点为根编号最小且度数小于3的点。 然后从第一个点开始贪心,若走到某一棵子树内会使得答案更优,则走过去,不然就不走。 确定根后直接...

beginend 498
上一篇: 【清华集训2017模拟】ces
下一篇: 卡特兰数学习小记
Cold_Chair
博客等级 码龄11年 158粉丝 410原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值