【套题】2015年百度之星程序设计大赛 - 初赛(1)

vllm运行过程中出现cuda out of memory 将长序列分解为多个小块,每个块分别处理。这样可以减少单次 Prefill 的计算量和显存占用,从而优化 TTFT 和显存使用效率。考虑使用 CPU 卸载(如 --cpu-offload-gb),将部分缓存卸载到 CPU 内存中,扩展 GPU 的虚拟内存。在大语言模型中,当输入序列很长(例如超过 1024 个 Token)时,Prefill 阶段的计算量会非常大。最后增加了enable-chunked-prefill参数和max_num_batched_tokens解决了问题。参数来进一步优化性能。 阅读详情

HDU5246 超级赛亚ACMer
- 贪心,每次在当前可以打败的所有人中选择最大的一个与之战斗,维护当前的“实力”和可以提升的数值k即可。

/* **********************************************

  File Name: 5246.cpp

  Auther: zhengdongjian@tju.edu.cn

  Created Time: 2015年09月19日 星期六 10时53分14秒

*********************************************** */
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int MAX = 10007;
#ifdef ONLINE_JUDGE
#define lld I64d
#endif

ll a[MAX];

int main() {
    int n, T;
    ll m, k;
    scanf(" %d", &T);
    for (int cas = 1; cas <= T; ++cas) {
        scanf(" %d %lld %lld", &n, &m, &k);
        for (int i = 0; i < n; ++i) {
            scanf(" %lld", a + i);
        }

        sort(a, a + n);

        int idx;
        idx = upper_bound(a, a + n, m) - a;
        if (idx == 0 || idx == n) {
            printf("Case #%d:\n%s\n", cas, idx == 0 ? "madan!" : "why am I so diao?");
            continue;
        }
        int id = idx - 1;
        m = a[id];

        while (id < n) {
            idx = upper_bound(a, a + n, m + k) - a;
            if (id == idx - 1) {
                break;
            }

            id = idx - 1;
            k--;
            if (k < 0) k = 0;
            m = a[id];
        }
        printf("Case #%d:\n%s\n", cas, m >= a[n - 1] ? "why am I so diao?" : "madan!");
    }
    return 0;
}

HDU5247 找连续数
- 考虑离线处理,O(n∗k),107的暴力水过去了。。。大概数据比较水。。。不过最坏数据本机也只跑了0.116s,也许有编译器优化的功劳?不造哇。。。

/* **********************************************

  File Name: 5247.cpp

  Auther: zhengdongjian@tju.edu.cn

  Created Time: 2015年09月24日 星期四 20时47分18秒

*********************************************** */
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
#ifdef ONLINE_JUDGE
#define lld I64d
#endif

const int MAX = 10007;
ll a[MAX];
int ans[MAX];

int main() {
    int n, m;
    while (~scanf(" %d %d", &n, &m)) {
        for (int i = 1; i <= n; ++i) {
            scanf(" %lld", a + i);
        }
        memset(ans, 0, sizeof(ans));
        for (int i = 1; i <= n; ++i) {
            ll up = a[i], down = a[i];
            set<ll> vis;
            vis.insert(a[i]);
            ++ans[1];
            for (int j = i + 1; j <= n; ++j) {
                up = max(up, a[j]);
                down = min(down, a[j]);
                if (vis.find(a[j]) != vis.end() || up - down > 1000) {
                    break;
                }
                vis.insert(a[j]);
                if (up - down == j - i) {
                    ++ans[j - i + 1];
                }
            }
        }
        static int cas = 1;
        printf("Case #%d:\n", cas++);
        int k;
        while (m--) {
            scanf(" %d", &k);
            printf("%d\n", ans[k]);

        }
    }
    return 0;
}

HDU5248 序列变换
- 考虑代价的含义,我们将Ai和Bi结对,则代价即为所有数对中差异最大的。同时考虑到严格数列的意义, 可以知道当前数尽量小,对后面的贡献是最大的。所以我们考虑二分答案,每次设置一个变化的上限,然后胡乱地处理一下,即可得解。时间复杂度O(n∗log n)

/* **********************************************

  File Name: 5248.cpp

  Auther: zhengdongjian@tju.edu.cn

  Created Time: 2015年09月24日 星期四 21时30分29秒

*********************************************** */
#include <bits/stdc++.h>
using namespace std;

const int BOUND = 2000000;
const int MAX = 100007;
int a[MAX];
int b[MAX];

bool check(int num, int n) {
    b[0] = a[0] - num;
    for (int i = 1; i < n; ++i) {
        /* b[i] can be changed to [a[i] - num, a[i] + num] */
        if (a[i] + num <= b[i - 1]) {
            return false;
        }
        b[i] = max(b[i - 1] + 1, a[i] - num);
    }
    return true;
}

int main() {
    int T, n;
    scanf(" %d", &T);
    for (int cas = 1; cas <= T; ++cas) {
        scanf(" %d", &n);
        for (int i = 0; i < n; ++i) {
            scanf(" %d", a + i);
        }
        int lef = 0, rit = BOUND;
        while (lef < rit) {
            int mid = (lef + rit) >> 1;
            //printf("check %d, %d, %d\n", lef, rit, mid);
            if (check(mid, n)) {
                rit = mid;
            } else {
                lef = mid + 1;
            }
        }
        printf("Case #%d:\n%d\n", cas, lef);
    }
    return 0;
}

HDU5249 KPI
- 对于三种操作,我们考虑维护一个队列和两颗平衡树,分别保存n个数中较大的⌊n2⌋个和较小的n−⌊n2⌋个数,对in操作,将数加入维护较大数的那颗树,然后只需将其中的最小值移动到另一棵即可;对于out操作,对应地从平衡树中删除队列头部的元素即可;对于query,由于我们所维护的两棵树规模相当,我们很容易就可以从维护较小值的那棵树中的最大值和另一棵中的最小值中选择出答案。

/* **********************************************

  File Name: 5249.cpp

  Auther: zhengdongjian@tju.edu.cn

  Created Time: 2015年09月24日 星期四 21时03分23秒

*********************************************** */
#include <bits/stdc++.h>
using namespace std;

const int MAX = 10007;
struct JB {
    int Q[MAX];
    int head, tail;

    set<int> left;
    set<int> right;

    void clear() {
        left.clear();
        right.clear();
        head = tail = 0;
    }

    bool empty() {
        return tail == head;
    }

    size_t size() {
        return tail - head;
    }

    void push(int x) {
        if (left.size() == right.size()) {
            if (left.empty()) {
                left.insert(x);
            } else {
                right.insert(x);
                left.insert(*right.begin());
                right.erase(right.begin());
            }
        } else {
            left.insert(x);
            auto it = left.end();
            --it;
            right.insert(*it);
            left.erase(it);
        }
        Q[tail++] = x;
    }

    void pop() {
        if (left.size() == right.size()) {
            if (empty()) {
                return;
            }
            if (Q[head] > *left.rbegin()) {
                right.erase(Q[head]);
            } else {
                left.erase(Q[head]);
                left.insert(*right.begin());
                right.erase(right.begin());
            }
        } else {
            if (Q[head] <= *left.rbegin()) {
                left.erase(Q[head]);
            } else {
                right.insert(*left.rbegin());
                left.erase(*left.rbegin());
                right.erase(Q[head]);
            }
        }
        ++head;
    }

    int query() {
        if (left.size() == right.size()) {
            if (empty()) {
                return INT_MAX;
            }
            return *right.begin();
        } else {
            return *left.rbegin();
        }
    }
} jb;

int main() {
    int n, x;
    char op[16];
    while (~scanf(" %d", &n)) {
        static int cas = 1;
        printf("Case #%d:\n", cas++);
        jb.clear();
        for (int i = 0; i < n; ++i) {
            scanf(" %s", op);
            if (op[0] == 'i') {
                scanf(" %d", &x);
                jb.push(x);
            } else if (op[0] == 'o') {
                jb.pop();
            } else {
                printf("%d\n", jb.query());
            }
        }
    }
    return 0;
}
  • 窝是水题小王子- -
Ansys Zemax实战:5步搞定多模光纤耦合效率优化(附IMAE操作数详解) 本文详细介绍了使用Ansys Zemax优化多模光纤耦合效率的5个关键步骤,包括几何图像分析设置、IMAE操作数应用及偏振效应处理。通过实战案例解析,帮助工程师快速掌握光纤耦合效率提升技巧,特别针对IMAE操作数的配置保存机制和菲涅尔损耗控制进行深度讲解。 阅读详情

相关推荐

保姆级教程:用SNAP处理哨兵一号数据,5步搞定城区范围提取(附江西晋城案例)

本文提供了一份详细的保姆级教程,介绍如何使用SNAP软件处理哨兵一号数据,通过5个关键步骤快速提取城区范围。以江西晋城为例,教程涵盖数据准备、预处理、核心处理流程、自动化搭建及成果分析,帮助用户轻松掌握SNAP操作技巧,适用于城市规划、环境监测等领域。

weixin_32535389的博客 452

2015年百度之星程序设计大赛 - 初赛(1)

B:http://acm.hdu.edu.cn/showproblem.php?pid=5247 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。   Input 输

yellowjianokok的博客 617

数字IC后端实战:OCC电路时钟树综合的5个关键技巧(附Synopsys工具配置)

本文深入探讨了数字IC后端设计中OCC电路时钟树综合的实战技巧。针对工具自动平衡导致的绕线拥塞和时序问题,文章提出了分段处理的核心思路,并详细阐述了通过物理隔离、分段长树策略以及Synopsys工具链(如ICC2、PrimeTime)的精准配置来优化function clk与occ clk路径的关键方法,旨在提升时序收敛性和可制造性。

jwt8token的博客 854

2015年百度之星程序设计大赛 - 初赛(1) 【解题报告】【未完待续】

总结一波 : 还是读题不清,中文题关键部分读错,导致最终GG, 计算几何薄弱,模板匮乏。超级赛亚ACMer虽然题目说打完一次k–,但是没有限定顺序 所以这个限制可以忽略不计然后说正常怎么来, 先从小到大排序一遍,然后每一次遇到与其相等的就升级战斗力. 为了确保我下一次还能升级战斗力,我就变成比当前战斗力+k小的最大的那个战斗力就行了, 然后扫一遍即可,(当时以为遇到相等的不能赢.wa一发

Tabris的博客 1385

告别混乱!用Cadence Capture CIS高效管理你的原理图库:以单逻辑器件K9F2G08U0M为例

本文以单逻辑器件K9F2G08U0M为例,详细介绍了如何使用Cadence Capture CIS高效管理原理图库。通过三级分类体系、工程化命名规范和智能检索技术,帮助工程师实现从混乱到有序的转变,提升团队协作效率和设计准确性。

aizhi0169的博客 398

LoRa模块选型指南:正点原子ATK-LORA-01与SX1278芯片深度评测(含实测距离/功耗数据)

本文深度评测了正点原子ATK-LORA-01与SX1278芯片的性能表现,通过实测数据展示其在复杂环境中的通信距离与功耗表现。特别适合智慧农业、工业监测等物联网应用场景,提供详细的配置指南和优化技巧,帮助开发者实现高效、低功耗的LoRa通信解决方案。

weixin_29191081的博客 290

2017"百度之星"程序设计大赛 - 初赛(A)1006——HDU 6113

度度熊的01世界 Accepts: 627 Submissions: 2714 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 度度熊是一个喜欢计算机的孩子,在计算机的世界中,所有事物实际上都...

aaf76097的博客 258

图像算法中的 Blob 分析

在计算机视觉中,Blob 可以理解为在图像中具有相似性质(如颜色、亮度等)的像素群体。Blob 通常用作基本单元,在图像分析和处理任务中能够提取出有意义的特征。

m0_44975814的博客 2483

2018年 “百度之星”程序设计大赛试题分析 - 初赛(A)-1002 度度熊学队列

度度熊学队列 Problem Url Problem Description Input Output 对于每组数据的每一个操作②,输出一行表示答案。 注意,如果操作②的队列是空的,就输出-1−1且不执行删除操作。 Sample Input 2 10 1 1 1 23 1 1 0 233 2 1 1 1 2 1 2333 1 2 1 23333 3 1 2 1 2...

林毅洋 1472

YOLO系列算法改进 | C3k2改进篇 | 融合MambaOut轻量化门控架构 | 纯卷积实现超越Mamba性能的同时兼顾极致轻量化与边缘部署效率 | CVPR 2025

YOLO系列算法改进 | C3k2改进篇 | 融合MambaOut轻量化门控架构 | 纯卷积实现超越Mamba性能的同时兼顾极致轻量化与边缘部署效率 | CVPR 2025 (以YOLOv26最新目标检测模型为基础,利用C3k2_MambaOut创新模块进行改进)

2502_91881744的博客 224

基于深度学习YOLOv11的布匹缺陷检测系统(Python+PySide6界面+训练代码)

YOLOv11模型训练:根据布匹缺陷数据集训练YOLOv11模型,以识别布匹中的各种缺陷,如裂纹、污渍、破损等。PySide6界面设计:设计一个图形用户界面,帮助用户上传布匹图像,并显示模型的检测结果。模型优化与精度提升:通过数据增强、超参数调优等手段提高模型的准确性。本文介绍了如何基于YOLOv11实现布匹缺陷检测系统,并通过PySide6构建了一个图形用户界面。该系统能够自动检测布匹中的各种缺陷,具有较高的效率和精度。

斌擎科技 529

2015百度之星初赛(1)1001

超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 569    Accepted Submission(s): 179 Problem Description 百小度是一个ACMer,也是一个

雾都 706

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2018 “百度之星”程序设计大赛 - 初赛(B) - (1001,1004,1006)

吐槽优快云,这篇博客我编辑了半天,发表之后竟然没变,感觉像是日了狗了,强迫症的我当然要再写一遍。 比赛链接:http://bestcoder.hdu.edu.cn/contests/contest_show.php?cid=826       1001:HDU6380 1004:HDU6383 1006:HDU6385 bestcoder首页的官方题解简直是业界良心,建议作为参考:ht...

Orz 825

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

百度之星2015初赛(1)1002 HDOJ5247 找连续数(暴力 简单做法)

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 819    Accepted Submission(s): 300 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道

Pashudeanan的专栏 1184

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

没参加的2015百度之星——找连续数

传送门: http://acm.hdu.edu.cn/showproblem.php?pid=5247 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小度熊想知道是否能找到一个k 的区间,里面的 k 个数字排完序后是连续的。 现在小度熊增加题目难度,他不想知道是否有这样的 k 的区间,而是想知道有几个这样的 k 的区间。  

雷_u013188850的专栏 490

2015Astar百度之星初赛 1005 序列变化

序列变换 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 114    Accepted Submission(s): 57 Problem Description 给定序列A={A1,A2,...,An},

qq_18661257的专栏 714

HDU 5251 矩形面积 (旋转卡壳)

2015年百度之星程序设计大赛 - 初赛(1) 1006 比赛链接:2015年百度之星程序设计大赛 - 初赛(1) 题目链接:HDU 5251 Problem Description 小度熊有一个桌面,小度熊剪了很多矩形放在桌面上,小度熊想知道能把这些矩形包围起来的面积最小的矩形的面积是多少。 Input 第一行一个正整数 \(T\),代表测试数据组数 \((1\le T\le 2...

G19850917的博客 208

2015年百度之星程序设计大赛 - 初赛(1) 【题解】

1001.超级赛亚ACMer Accepts: 867 Submissions: 5329 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Problem Description 百小度是一个ACMer,也是一个超级赛亚人,每个ACMer都有一个战斗力,包括百小度。
所谓超级赛

poursoul 3592

hdu 5247 找连续数-2015年百度之星程序设计大赛 - 初赛(1)

找连续数 Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 1248    Accepted Submission(s): 451 Problem Description 小度熊拿到了一个无序的数组,对于这个数组,小

B100402352的专栏 618

2015Astar百度之星初赛 1001 超级赛亚ACMer

超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 916    Accepted Submission(s): 287 Problem Description 百小度是一个ACMer,也是一个超级

qq_18661257的专栏 1249

hdu 5248 序列变换(二分枚举)

Problem Description 给定序列A={A1,A2,...,An}, 要求改变序列A中的某些元素,形成一个严格单调的序列B(严格单调的定义为:Bi<Bi+1,1≤i<N)。 我们定义从序列A到序列B变换的代价为cost(A,B)=max(|Ai−Bi|)(1≤i≤N)。 请求出满足条件的最小代价。 注意,每个元素在变换前后都是整数。 ...

dielucuan8830的博客 139

hdu5247 找连续数 2015百度之星初赛(1)

题目连接:http://acm.hdu.edu.cn/showproblem.php?pid=5247 找连续数 Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2122Accepted Submission(s): 777 ...

CharllotteQZY的博客 241

(HDU-5246)2015Astar-初赛-1001-超级赛亚ACMer

超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 964    Accepted Submission(s): 303 Problem Description 百小度是一个ACMer,也是一个超级

保持对编程的热情! 856

2015年百度之星程序设计大赛 - 初赛(2)【题解】

1001.追星族 Accepts: 21 Submissions: 122 Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Description 度度熊最近迷上了S明星,恰逢她正在巡回演出,得知所有的演出安排后,它希望一场不落的看完所有的演出。每场演出的地点

poursoul 3528

hdu 5246 超级赛亚ACMer-2015年百度之星程序设计大赛 - 初赛(1)

超级赛亚ACMer Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 2284    Accepted Submission(s): 613 Problem Description 百小度是一个ACMer,也是一个超

B100402352的专栏 969
上一篇: 【小练】树状数组&线段树
下一篇: 【套题】Codeforces#321 div2
bit_line
博客等级 码龄12年 33粉丝 150原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值