2021杭电多校第九场 1003——Dota2 Pro Circuit

VLOOKUP_fixed.py 立即下载

题目大意

有 nnn 个人,每个人有一个初始分值,然后再给你 nnn 个数,表示接下来一场比赛获得第 iii 名的得分。问你这场比赛之后每个人可能获得的最好名次和最坏名次。
分数并列则名次并列,且并列名次跳过,如四个人得分为5 3 3 2,那么排名是1 2 2 4。
n<=50001<=T<=20n <= 5000 1 <= T <= 20n<=50001<=T<=20,最多有8组数据n>100n > 100n>100

解题思路

考虑直接暴力每个人的最好名次和最坏名次复杂度是 O(n2logn)=ke9O(n^2logn) = ke9O(n2logn)=ke9,杭电的评测机是跑不过了
我们先将初始分值 aia_iai​ 和 下一场的得分 bib_ibi​ 从小到大排序。
考虑第 iii 个人的最佳名次
设初始最佳名次为1,得分为 now=ai+bnnow = a_i + b_nnow=ai​+bn​,显然想获得最佳名次肯定是拿最高的分,我们可以想,第1到 i−1i-1i−1个人的得分一定不会超过第 iii 个人,(因为他们初始分比第 iii 个人少,得分又比第 iii 个人少,所以名次一定更差),所以我们只需要考虑 i+1i+1i+1 到 nnn。
设第 jjj 个人的获得的所拿的分为 bkb_kbk​,如果 aj+bk>nowa_j + b_k > nowaj​+bk​>now,那么我们让第 jjj 个人拿 第 bk−1b_{k-1}bk−1​,直到 aj+bk<=nowa_j + b_k <= nowaj​+bk​<=now,这样才不会影响第 iii 个人的排名。如果 k=0k = 0k=0,说明从第 jjj 个人开始,他们的得分一定比 iii 高,我们直接让 iii 的排名加上 n−j+1n-j+1n−j+1即可。
为什么可以这样呢?因为如果第 jjj 个人不拿 bkb_kbk​(说明aj+bk>nowa_j + b_k > nowaj​+bk​>now),那么第 j+1j+1j+1 个人也一定不会拿 bkb_kbk​,因为 aj+1+bk>aj+bk>nowa_{j+1} + b_k > a_j + b_k > nowaj+1​+bk​>aj​+bk​>now,同样会超过第 iii 个人的得分。这样我们就可以去掉一个 lognlognlogn的复杂度。

考虑第 iii 个人的最坏名次也是同理,不过我们,要注意一下,如果初始化最坏名次为 nnn ,那么如果有多个人初始得分相同,我们一定要从最后一个开始跑,(因为相同分数,排名是记在前面的),而且初始得分相同,那么最坏排
名也一定相同,所以我们跑一个就可以了
最终复杂度 O(n2)O(n^2)O(n2)

Code

#include <bits/stdc++.h>
#define ll long long
#define qc ios::sync_with_stdio(false); cin.tie(0);cout.tie(0)
#define fi first
#define se second
#define PII pair<int, int>
#define PLL pair<ll, ll>
#define pb push_back
using namespace std;
const int MAXN = 5007;
const int inf = 0x3f3f3f3f;
const ll INF = 0x3f3f3f3f3f3f3f3f;
const ll mod = 1e9 + 7;
inline int read()
{
    int x=0,f=1;char ch=getchar();
    while (!isdigit(ch)){if (ch=='-') f=-1;ch=getchar();}
    while (isdigit(ch)){x=x*10+ch-48;ch=getchar();}
    return x*f;
}
int n;
struct node{
    ll x, idx;
    bool operator<(node b) const{
        return x < b.x;
    }
}a[MAXN];
ll b[MAXN];
void solve(){
    cin >> n;
    for (int i = 1; i <= n; ++i){
        cin >> a[i].x;
        a[i].idx = i;
    }
    for (int i = 1; i <= n; ++i){
        cin >> b[i];
    }
    sort(a+1,a+1+n);
    sort(b+1, b+1+n);
    vector<PII> ans(n+1);
    a[n+1].x = -1;
    int ls = 1;
    for (int i = 1; i <= n; ++i){
        int l = 1, r = n;
        ll now = a[i].x + b[r--];
        int pm = 1;
        for (int j = i+1; j <= n; ++j){
            while(l <= r && a[j].x + b[r] > now) {
                r--;    
            }
            if(l > r){
                pm += (n - j + 1);
                break;
            }
            r--;
        }
        ans[a[i].idx].fi = pm;

        if(a[i].x == a[i+1].x)
            continue;
        pm = n;
        l = 1, r = n;
        now = a[i].x + b[l++];
        for (int j = i-1; j >= 1; --j){
            while(l <= r && a[j].x + b[l] <= now) {
                l++;
            }
            if(l > r){
                pm -= j;
                break;
            }
            l++;
        }
        for (int j = ls; j <= i; ++j){
            ans[a[j].idx].se = pm;
        }
        ls = i+1;
    }
    for (int i = 1; i <= n; ++i){
        cout << ans[i].fi << " " << ans[i].se << endl;
    }
}

int main()
{
    #ifdef ONLINE_JUDGE
    #else
       freopen("in.txt", "r", stdin);
       freopen("out.txt", "w", stdout);
    #endif

    qc;
    int T;
    cin >> T;
    // T = 1;
    while(T--){

        solve();
    }
    return 0;
}
YOLO26算法心电图十二导联目标检测+训练好的模型+368张数据集+pyqt可视化界面.zip 附训练好的 YOLO 权重与 PyQt 可视化检测界面,页面底部含可视化效果预览,毕设/课设开箱即用。 【数据集概况】 · 检测类别(中文):[导联I(I), 导联II(II), 导联III(III), 胸导联V1(V1), 胸导联V2(V2), 胸导联V3(V3), 胸导联V4(V4), 胸导联V5(V5), 胸导联V6(V6), 加压肢体导联aVF(aVF), 加压肢体导联aVL(aVL), 加压肢体导联aVR(aVR)] · 训练集:313 张 · 验证集:37 张 · 测试集:18 张 · 总计:368 张 该数据集聚焦于临床心电图信号的精准识别与定位,其核心检测目标为标准12导联心电图中的各个独立导联波形区域,涵盖肢体导联(I、II、III)与加压肢体导联(aVR、aVL、aVF),以及胸前导联(V1至V6),适用于心电图自动分析系统中对各导联位置的快速准确标注与分类。数据采集场景真实还原了医院心电图室或急诊监护环境下的标准心电图记录纸,波形清晰、基线稳定,具有高度临床参考价值。... 【训练曲线与评估图】 【模型训练配置】 参数 | 值 模型 | yolo26n 训练轮数 | 100 epochs 输入尺寸 | 640x640 批次大小 | 24 优化器 | auto 初始学习率 | 0.01 训练设备 【关键指标汇总】 训练了 57 个 epoch,最终轮指标: 指标 | 数值 mAP50 | **0.9708** mAP50-95 | 0.6344 Precision | 0.8990 Recall | 0.9191 train/box_loss | 1.2231 train/cls_loss | 0.9703 val/box_loss | 1.2779 val/cls_loss | 0.... 使用场景:毕业设计、课程设计、深度学习入门、工业场景落地验证。 立即下载

相关推荐

企业级AI助手平台 开箱即用的全栈AI平台,支持多智能体协同、Supervisor模式编排、多种决策模式、RAG技术和流程编排能力 支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化

企业级AI应用开发框架,支持多厂商大模型统一接入与管理,安全可控的企业知识库与高精度检索优化能力,提供可视化流程编排、自主决策智能体与多智能体协同调度,兼容主流 Agent Skill 协议,帮助企业与开发者零门槛快速构建安全、高效、可落地的AI智能体应用与行业解决方案。

2021杭电多校第九场 1007——Boring data structure problem

题目大意 题如其名 有一个双端队列,进行 nnn 次操作,有四种操作 L:L:L:在队首插入一个数 tottottot R:R:R:在队尾插入一个数tottottot GxG xGx删除队列中的数 xxx Q:Q:Q:问你队列中最中间的数是什么 解题思路 用数组模拟链表,数据有 1e71e71e7,可能接受不了很大的常数,我们需要开5个数组 mp:mp:mp:用来映射数的下标 l:l:l:前一个数的下标 r:r:r:后一个数的下标 acc:acc:acc:在最中间的数的左侧还是右侧 ls:ls:ls:存数的

yezi_coder的博客 303

基于动态窗口法DWA的机器人路径规划研究(Matlab代码实现)

内容概要:本文系统研究了基于动态窗口法(DWA)的机器人局部路径规划算法,深入剖析其在动态环境中实现自主避障与实时轨迹优化的核心机制。文章详细阐述了DWA算法的速度空间采样策略、轨迹预测模型、动力学约束处理及多目标代价函数的设计原理,并通过构建完整的Matlab仿真框架验证算法有效性。结合典型场景的仿真实验,展示了机器人在复杂障碍物环境下如何实时生成安全、平滑且符合运动学约束的最优路径,充分体现了DWA在移动机器人导航中的实用性与鲁棒性。; 适合人群:具备机器人运动规划基础知识和Matlab编程能力,从事智能移动机器人、自动驾驶或服务机器人研发的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入理解DWA算法的理论基础与实现细节;②掌握机器人局部路径规划的仿真实现方法;③为实际机器人系统的导航模块开发提供可复用的算法原型与代码参考;④作为进一步研究高级导航算法(如TEB、MPC)的技术基础。; 阅读建议:建议结合提供的Matlab代码逐模块分析与调试,重点关注速度采样、轨迹积分、障碍物距离计算及代价评估等关键环节,通过调整参数在不同地图环境中进行对比实验,以深刻把握算法性能与参数之间的关系,进而提升对实时路径规划系统设计的理解与应用能力。

2021HDU多校第九场1008HDU7073 Integers Have Friends 2. 随机化

HUD地址:https://acm.hdu.edu.cn/showproblem.php?pid=7073 题目大意:选择数组中最多的数,使得他们模m同余(m>=2)。求最大的数量。 思路:然后我们全选奇数或者全选偶数的话,那么我们的答案是最少是n/2的,所以我们随机两个下标,他们都在正确答案的集合里的概率就为1/4,当我们随机k次时,失败的概率就是(3/4)^k,是非常小的,所以这个随机策略是可行的,知道两个数后,我们可以得到他们直接的差t,那么这个正确集合的m必然是t的质因子,所以我...

lalalzo的博客 242

【轴承故障诊断】用于轴承故障诊断的集中时频分析研究(Matlab代码实现)

内容概要:本文系统研究了用于轴承故障诊断的集中时频分析技术,重点解决了传统时频分析方法在处理非平稳信号时存在的能量分散与分辨率不足等问题。通过引入集中时频分析方法,能够有效聚焦信号能量,精确提取轴承故障特征频率,提升故障识别的准确性与时效性。文章详细阐述了该方法的理论基础,并结合仿真信号与实际实验数据验证其优越性能,同时提供了完整的Matlab代码实现流程,涵盖信号预处理、时频变换、参数优化及结果可视化等环节,便于读者复现与拓展应用。; 适合人群:具备一定信号处理理论基础和Matlab编程能力的研究生、科研人员,以及从事机械设备状态监测、故障诊断与预测性维护工作的工程技术人员。; 使用场景及目标:①应用于电机、风机、齿轮箱等旋转机械的早期轴承故障检测,实现故障预警;②提升工业设备运维系统的智能化水平,支撑预测性维护体系构建;③作为高校或研究机构在信号处理、机械故障诊断等课程中的教学案例与实践素材。; 阅读建议:建议读者结合文中提供的Matlab代码逐段运行与调试,深入理解集中时频分布的生成机制及其关键参数(如核函数选择、平滑窗口大小)对诊断效果的影响,并尝试将其应用于其他类型的机械故障信号分析中,开展对比研究以深化对该方法适用性的认识。

华为昇腾Atlas200DK. CANN模型推理——目标检测结果不对(无检测结果)的问题解决

目录前言问题描述问题排查1.后处理模块问题排查2.预处理模块问题排查3.模型问题排查4.算法bug问题排查5.AI板卡问题排查6.模型精度问题排查6.模型推理问题解决:模型输入数据与预处理不同后记 前言 上周我在华为昇腾Atlas200DK中部署nanodet和yolov5时,出现了目标检测结果不对(没有检测到任何物体),困扰了整整三天,最后找到原因并圆满解决,在这里记录一下debug过程。 以上测试均在python中完成。 问题描述 第一天上午,我首先将nanodet由pytorch的.pth模型转换为.

qq_41035283的博客 5604

Dota2 Pro Circuit(hdu7068)

原题链接 题目描述 输入描述 输出描述 输入样例 2 3 5 10 8 5 2 1 2 5 6 4 4 输出样例 2 3 1 2 1 3 2 2 1 1 题目大意:给定两个数组 a 和 b,其中数组 a 的第 i 个元素即为第 i 个队伍的对应分数,每个队伍的最终得分为数组 a 中的对应分加上数组 b 中的任意一项,现求每个队伍的最好名次和最差名次分别是多少。其中,队伍名次的计算公式为 1 + 比分严格大于该队伍的队伍数量。 不难得知每个队伍的最高得分和最低得分分别是加上 b 中的最高分和最低分

国家一级划水运动员的博客 258

blenderproc 制作位姿估计数据集

blenderproc 制作位姿估计数据集 准备工作 1.首先需要去下载blenderproc的源码blenderproc,按照作者的readme文件进行编译。 2.其次需要下载bop_toolkit源码,链接如下bop_toolkit 3.说明:blenderproc主要用来生成数据,包括depth,rgb,位姿标签文件(scene_gt.json),bop_toolkit主要用来生成mask和mask_visib,scene_gt_info.json,用于判断物体的可见区域比例,如果遮挡太多考虑去掉。做

qq_43814359的博客 5697

2021杭电多校第九场 1002——Just another board game

题目大意 有一个 n∗mn*mn∗m 的棋盘,每个格子上有一个值,现在有一个棋子在 (1,1)(1, 1)(1,1),有两个人轮流移动这个棋子,最多移动 kkk 步。 第一个人有两种操作,横着移动棋子或者终止游戏 第二个人有两种操作,竖着移动棋子或者终止游戏 游戏得分即为终止游戏时棋子所在格子的值。 第一个想最大化得分,第二个人想最小化得分,第一个人先走,输出最终得分 解题思路 当 (1,1)(1, 1)(1,1) 位置是最大值,那么得分就为这位置的值 考虑 k=1k = 1k=1 第一个人一定是走到第一行

yezi_coder的博客 339

高等数学第五章---定积分(§5.3定积分的计算方法)

这篇博客详细讲解定积分的计算方法,包括直接法、凑微分法、变量代换法和分部积分法。通过典型例题演示如何运用这些技巧计算定积分,特别强调换元必换限的原则和奇偶函数的简化处理。内容涵盖代数变形、三角代换、分段函数积分等常见题型,并附有详细的解题步骤和常见错误分析。适合微积分学习者系统掌握定积分计算技巧,提升解题效率。文中还包含积分等式证明和变限积分函数求导等进阶内容,帮助读者深入理解定积分的应用。

2302_77045867的博客 4332

联想拯救者r7000p在ubuntu20.04未找到wifi适配器,安装rtl8852ae网卡驱动问题解决方案

新买的拯救者r7000p 2021款,装完ubuntu20.04之后显示未找到wifi适配器, 更换N次源之后还是只有一个显卡驱动,在网上找了很多方法,再自己折腾了一段时间后,总算是解决了这个问题。 1.设置bios 打开主板系统,将security boot设置为disenable,因为设计到修改内核配置,必须得关掉安全启动。 2.查询网卡状态 使用命令查询网卡(hardware of Internet)状态 lshw -C network 因为是双系统,在Windows下控制面板-设备管理器中可以

MCZ777的博客 1万+

7068 Dota2 Pro Circuit 杭电多校(2021“MINIEYE杯”中国大学生算法设计超级联赛9) [贪心+双指针]

题目 Dota2 Pro Circuit *Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Submission(s): 440 Accepted Submission(s): 224 * Problem Description TI10 and ICPC World Finals 2020, which will be held earlier? Take a bet! T

sehnsucht 1145

unity游戏开发日志(一)将mmd模型导入unity,并解决材质丢失的问题

unity音乐游戏开发,导入角色模型并解决材质问题

yizhigou1的博客 1761

2021暑假多校杭电9_1003.Dota2 Pro Circuit

Dota2 Pro Circuit 题目传送门: 题目传送门 思路: 代码: #include<bits/stdc++.h> using namespace std; const int maxn=5005; struct node{ int h,p,resl,resr; }a[maxn]; int b[maxn]; bool cmp(node x,node y){ return x.h<y.h; } bool cmp1(node x,node y){ retur

欧阳小百合 249

灰度发布、蓝绿部署、双活架构与数据同步/备份/迁移

本文系统介绍了现代互联网系统的核心部署策略与数据管理技术体系。主要内容包括:1)三种服务发布策略(灰度发布、蓝绿发布、滚动发布)的原理、实现方式和适用场景对比;2)高可用架构设计(同城双活、异地双活、异地多活)的技术方案;3)数据同步机制、备份策略与迁移方案的设计要点。文章通过架构图、流程图和配置示例详细展示了各类技术的实施方法,并分析了不同方案的优劣及风险控制措施,为构建高可用、高可靠的分布式系统提供了完整的技术指南。

zane的博客 515

UNET改进77:全网首发-添加CFBlock |

本文介绍了在UNet模型中集成CFBlock注意力机制的实现方法。主要分为三个步骤:1) 创建CFBlock模块,包含卷积注意力机制和MLP;2) 在UNet连接处添加注意力模块;3) 在卷积层中嵌入注意力机制。具体实现包括:定义Conv、MLP和ConvolutionalAttention等基础模块,构建CFBlock核心结构;在UNet跳跃连接处插入注意力模块;将注意力机制整合到DoubleConv和Down模块中。该方法通过在不同位置引入注意力机制,可有效提升模型的特征提取能力。代码实现使用PyTor

AIcurator的博客 388

hdu多校第九场题解(>=100人)

虚拟比赛的时候就做了一道题。。晕。 A - Rikka with Nash Equilibrium 这题写了一个深搜,结果5*5都搜不出来呜呜呜 看别人的题解才知道是dp,dp[i][j][k]代表已经放了i个,占了j行k列的数量。 转移式子倒是挺好想的。。 #include&lt;bits/stdc++.h&gt; using namespace std; long long dp...

qq_34921856的博客 548

AutosarMCAL开发——基于EB CRC驱动

本文为博主个人理解总结记录,如有不正,欢迎指正。

qq_45583706的博客 1388

2021杭电多校1-10场总结

文章目录第一场10011005100810091006第二场10011005101210081011第三场101110041007第四场1001100910021008第五场100310061007第六场10011005第七场1001100310121004100810071006第八场10031006100910081004第十场1004第九场100310071010 第一场 1001 思路 全填 111 就可 代码 #include<bits/stdc++.h> using nam

qq_46264636的博客 580

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

2021杭电暑假多校9_1010.Unfair contest(分类讨论)

1010.Unfair contest 题目大意: 意思是总共nnn个裁判,裁判要求打分区间在[1,h][1,h][1,h]内,同时你已经知道前n−1n-1n−1个裁判对AB两人的打分a1,a2,a3...an−1;b1,b2...bn−1;a_1,a_2,a_3...a_n-_1;b_1,b_2...b_n-_1;a1​,a2​,a3​...an​−1​;b1​,b2​...bn​−1​;,比赛评价机制是总分去掉sss个最高分再去掉ttt个最低分后的总和比较。你希望A胜利,但又不希望太明显,所以会想办法在

欧阳小百合 221

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

2021杭电多校9 1008.Integers Have Friends 2.0(随机数)

题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=7073 主要是为了学习一下mt随机的用法 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int N=2000000; const int maxn=2e6+10; const int K=30; mt19937_64 gen(time(0)); int tot,prime[maxn],_,n,a

Sankkl1的博客 287

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

2021牛客暑期多校训练营9 Dota2 Pro Circuit

#include<bits/stdc++.h> using namespace std; #define int long long int T,n;const int N=5e3+10; int a[N],b[N]; struct node{ int val,id; }p[N]; bool cmp(node a,node b){return a.val<b.val;} int maxi[N],mini[N]; int32_t main(){ scanf("%lld",&a

我们仍未知道那天所看见的花的名字。 143

【2021杭电多校赛】2021“MINIEYE杯”中国大学生算法设计超级联赛(9)签到题4题

Solved Pro.ID Title Ratio(Accepted / Submitted) 1001 NJU emulator 23.27%(37/159) 1002 Just another board game 24.38%(569/2334)(博弈) 1003 Dota2 Pro Circuit 28.72%(664/2312)(双指针,模拟) 1004 Into the woods 40.00%(2/5) 1005 Did I miss the lethal? 21.69%(36/166) 10

小哈里的博客 1130

杭电第九场 题解

比赛传送门 作者: fn 目录基本题1003题 Dota2 Pro Circuit / Dota2职业巡回赛1002题 Just another board game / 又一个棋盘游戏1007题 Boring data structure problem / 无聊的数据结构问题进阶题1010题 Unfair contest / 黑哨 基本题 1003题 Dota2 Pro Circuit / Dota2职业巡回赛 题目大意 给定每个队伍之前的得分 aia_iai​ 和下一场比赛每个名次的得分 bib_

weixin_51937688的博客 615

2021杭电多校9 1006.Guess the weight(线段树)

题目链接:https://acm.hdu.edu.cn/showproblem.php?pid=7071 代码 #include<bits/stdc++.h> using namespace std; typedef long long ll; #define lson (k << 1) #define rson (k << 1 | 1) const int N=2e5 + 10; int n,q; int sum[N]; int t[N << 3]; v

Sankkl1的博客 319

2020杭电多校第九场题解A、C

Tree 题目传送门 Tree 题目大意 给你一个具有n个结点的树,以1为根结点,输入n-1个数分别为父节点 让你创建一条边,使得(x,y)(x,y)(x,y)对(指x能到y)尽可能的多 思路 显然添加的这条边必然是添加在叶结点到根结点的,这样可以使得根结点到该叶结点的所有结点的对数全变为n 所有,首先dfs求出所有的点的子结点的个数,然后dfs找取叶结点连接根结点取最大值即可 AC Code #include<cstdio> #include<algorithm> #include

Kuricip的博客 436
上一篇: 2021牛客多校第二场 G——League of Legends
下一篇: 2021杭电多校第九场 1007——Boring data structure problem
Linda_yezi_coder
博客等级 码龄7年 20粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值