首页 > 其他分享 >识海社区打卡-3

识海社区打卡-3

时间:2024-11-12 10:47:21浏览次数:1  
标签:pre std 社区 切割 识海 int 欠训 vector 打卡

Codeforces Round 986 (Div. 2)赛后补题

战况如下:

image-20241111111745649

当然打完这场升绿了,虽然我也没想到。b题wa了很多发还是阅读理解的水平不太够,还没又补了一个样例说明我就看明白了不过还是wa了几发,不过确实用了我太长时间,欠训了。

比赛时c题我没有去实现,不过看样例猜了一个方法,赛后看答案我才发现我的想法是对的,艹了自己懒了没有争分夺秒去实现,不过半个小时以我半信半疑的态度确实想ac也有点困难,还是欠训了。jiangly群还有个大哥看最后一题看样例猜出来答案也是真离谱,欠训了,狠狠加训!

c题的题意大概是一个数组a分割成m +1份,所以切m刀,和昨天的cf的c很像,昨天的c是数组中取出一个区间使得剩下最大,不过不同的是今天是动态规划,今天的是贪心。

解题思路大概就是先从前往后找能符合条件的切割点,再从后往前找能符合的切割点,然后两头切留下中间,再逐步找如此下去的最大值。不过这样子依旧有一个问题,就是如果符合条件的切割方法不足怎么办(所以我估计我自己就算当时实现这种方法也ac不了)。

还是老规矩看哥哥代码,看强者的代码才是变强最快的方法!

void solve() {
    int n, m, v;
    std::cin >> n >> m >> v;
    
    std::vector<int> a(n);
    for (int i = 0; i < n; i++) {
        std::cin >> a[i];
    }
    
    std::vector<i64> pre(n + 1);
    for (int i = 0; i < n; i++) {
        pre[i + 1] = pre[i] + a[i];
    }
    
    i64 ans = -1;
    
    std::vector<int> f(m + 1), g(m + 1);
    for (int i = 1, j = 0; i <= m; i++) {
        while (j <= n && pre[j] - pre[f[i - 1]] < v) {
            j++;
        }
        f[i] = j;
    }
    g[0] = n;
    for (int i = 1, j = n; i <= m; i++) {
        while (j >= 0 && pre[g[i - 1]] - pre[j] < v) {
            j--;
        }
        g[i] = j;
    }
    
    for (int i = 0; i <= m; i++) {
        if (f[i] <= g[m - i]) {
            ans = std::max(ans, pre[g[m - i]] - pre[f[i]]);
        }
    }
    std::cout << ans << "\n";
}

好吧还是哥哥牛逼,因为如果不够切的话,切割点会少一个,这样对于每次查询来说pre[g[m - i]]都会在pre[f[i]]的左边,那么答案也就自然输出-1了。难怪昨天过b的人这么多过c。

标签:pre,std,社区,切割,识海,int,欠训,vector,打卡
From: https://www.cnblogs.com/coloury/p/18541371

相关文章

  • 考研打卡(14)
    开局(14)开始时间 2024-11-11 20:21:43结束时间 2024-11-11 22:00:55今天考研数学的资料到了数据结构设一组初始记录关键字序列为(50,40,95,20,15,70,60,45),则以增量d=4的一趟希尔排序结束后前4条记录关键字为_____(中国地质大学2017年)A40,50,20,95B15,40,60,20C15,20,......
  • springboot 社区便民服务管理系统的设计与实现【附源码】
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • springboot 社区便民服务管理系统的设计与实现【附源码】
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • springboot 社区便民服务管理系统的设计与实现【附源码】
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • SSM城市社区慢性病人信息管理系统-计算机毕业设计源码23699
    目 录摘要1绪论1.1选题背景与意义1.2国内外研究现状1.3论文结构与章节安排2 城市社区慢性病人信息管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3操作可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功......
  • KubeSphere 社区双周报| 2024.10.25-11.07
    KubeSphere社区双周报主要整理展示新增的贡献者名单和证书、新增的讲师证书以及两周内提交过commit的贡献者,并对近期重要的PR进行解析,同时还包含了线上/线下活动和布道推广等一系列社区动态。本次双周报涵盖时间为:2024.10.25-11.07。贡献者名单新晋KubeSpherecontribu......
  • 考研打卡(13)
    开局(13)开始时间 2024-11-10 21:56:51结束时间 2024-11-10 22:48:52今天去了河北经贸大学回来还打了剧本杀数据结构下列说法错误的事____(中国科学技术大学)A只有在线性表的初始状态为反序的情况下,冒泡排序过程中元素的移动次数才会达到最大值B只有在线性表的初始状......
  • 识海社区打卡-2
    今天打卡一道题,白天太忙了,没时间打卡树状数组,昨天就睡了三小时就去软考了差点没猝死我,回来路上还见识到了哈尔滨公交车的险恶导致下午三点才到校,花了一个小时吃饭洗漱然后就睡觉了,7点起到工位上,看了会昨天cf的题解摆烂了一会就到十点了,得抓紧更新打卡然后接着cf,明天还有早八悲,感觉......
  • (2024最新毕设合集)基于SpringBoot的梓锦社区疫苗接种服务系统+42529|可做计算机毕业设
    目 录摘要1绪论1.1选题背景与意义1.2开发现状1.3论文结构与章节安排2 梓锦社区疫苗接种服务系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.......
  • 树状数组learning Day1识海社区打卡1st
    鉴于上次省赛的惨烈失败教训,狠狠加训,距离下次沈阳站还有两星期,再次感谢东北大学赐予的外卡机会,你知道的,东北大学一直是我的第二户籍所在地。今天到下星期周末为止估计都会持续更新树状数组和线段树相关的笔记。我的刷题顺序大概会按照[灵神提单](LC-Rating&Training)->codefor......