Codeforces854D Jury Meeting

[codeforces] 854D. Jury Meeting(前/后缀最小值) [codeforces] 854D. Jury Meeting题目链接: D. Jury Meeting题目大意: 有n个人分别在1~n的点上, 要让这n个人到0号点并且所有人在一起的天数至少为k天, 之后再回到各自的点。 有m个航班, d f, t, c 表示第d天从u到v的花费为c, 其中f, t 必有一个是0。 输出最小花费, 如果不能满足输出-1。数据范围: (1≤n,m≤105)( 阅读详情

题意:告诉你有n+1个城市,标号0-n,0号是个中心,然后其他n个点每个有一个智障他们都要到0点然后他们n个智障需要在0点至少共同py k天,然后再各自飞回各自原来的城市,飞机要么从0飞到一个城市,要么从一个城市飞到0
题解:我觉得我已经彻底咸鱼了,,,C做了贼久还是队友点了一下才觉得那么简单,,看D的时候已经有点放弃了=-=看题就在瞎看没看到加粗的那句话,感觉血崩。。其实已经想到了相当于两个过程,一个是从0到各个点,还有一个是从各个点到0,那么我们把边分成两类,一个是去0的一个是从0出来的。
那么很明显我们对两类边分别操作就好了。其实我也想到了遍历天数然后把两部分接起来但是。。。我也不造我在想什么反正混了最后20分钟QWQ
那么我们来总结一下QWQ
首先我们把变分成两类,一类是从其他城市到0的另一类是从0到其他城市的。我们先把每类边按照日期排序。设dp[i]是到如果第i天人到齐所需要的最小花费。这个dp[i]有两个要求,第一个是人到齐,第二个是最小。那么我们便利时间然后如果当前这个边的日期是当前日期的,那么我们进行判断,这个点有没有到过0,没有到过说明从这天以后可以到的人又多了一个,如果这个人到过,那么判断这个的人开销有没有变,如果变小了,更新一下这个人的开销,保证dp[i]里面的值是最小的。
那么我们发现从其他城市到0这个过程和从0到其它城市这个过程是相似的,只要倒着扫一遍就行了。那么我们用另一个数组存,之后我们的最终答案关注两个时间点第一个是第i天,这天是人到齐的天,第二个是i+k+1天这个天是开始有人走的天。如果第i天可以到齐并且第i+k+1天开始走可以走完那么我们更新一次答案。
我们设dp[i][0] 是第i天人到齐所需要的最小费用
dp[i][1]是第i天人开始走所需要的最小费用

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

//thanks to pyf ...
//thanks to qhl ...
const int N = 1e6 + 7;
struct Edge
{
    int d, u, c;
    bool operator < (const Edge &rhs) const
    {
        return d < rhs.d;
    }
};
vector<Edge> from0, to0;
long long dp[N][2];
long long cost[N];
int main()
{
    ios :: sync_with_stdio(false);
    int n, m, k;
    while (cin >> n >> m >> k)
    {
        from0.clear(), to0.clear();
        memset(dp, -1, sizeof(dp));
        for (int i = 0; i < m; i++)
        {
            int d, f, t, c;
            cin >> d >> f >> t >> c;
            if (f == 0)
                from0.push_back({d, t, c});
            else
                to0.push_back({d, f, c});
        }
        sort(from0.begin(), from0.end());
        sort(to0.begin(), to0.end());
        memset(cost, -1, sizeof(cost));
        int l = 0;
        long long temp = 0;
        int sz = 0;
        for (int i = 1; i <= 1e6; i++)
        {
            while (l < to0.size() && to0[l].d == i)
            {
                int u = to0[l].u, c = to0[l].c;
                if (cost[u] == -1)
                {
                    sz ++ ;
                    cost[u] = c;
                    temp += c;
                }
                else if (cost[u] > c)
                {
                    temp -= (cost[u] - c);
                    cost[u] = c;
                }
                l ++ ;
            }
            if (sz == n)
                dp[i][0] = temp;
        }
        l = from0.size() - 1, sz = 0;
        temp = 0;
        memset(cost, -1, sizeof(cost));
        for (int i = 1e6; i >= 1; i--)
        {
            while (l >= 0 && from0[l].d == i)
            {
                int u = from0[l].u , c = from0[l].c;
                if (cost[u] == -1)
                {
                    sz ++;
                    cost[u] = c;
                    temp += c;
                }
                else if (cost[u] > c)
                {
                    temp -= (cost[u] - c);
                    cost[u] = c;
                }
                l --;
            }
            if (sz == n)
                dp[i][1] = temp;
        }
        long long ans = -1;
        for (int i = 1; i <= 1e6; i++)
        {
            if (dp[i][0] != -1 && i + k + 1 <= 1e6 && dp[i + k + 1][1] != -1)
            {
                if (ans == -1)
                    ans = dp[i][0] + dp[i + k + 1][1];
                else
                    ans = min(ans, dp[i][0] + dp[i + k + 1][1]);
            }
        }
        printf("%lld\n", ans);
    }
}
基于STM32设计的老人防摔倒报警设备(OneNet)_65 本文设计了一种基于STM32单片机的智能老人防摔倒报警设备。该系统结合MPU6050陀螺仪传感器实时监测老人的姿态变化,检测摔倒事件;通过SIM800C通信模块发送短信通知紧急联系人,并将GPS定位信息上传至云端平台,确保家属能够及时了解老人的准确位置。 阅读详情

相关推荐

卫星通信链路预算实战:从EIRP到Eb/N0的完整计算指南(含Excel模板)

本文提供了一份卫星通信链路预算的实战指南,详细解析了从EIRP到Eb/N0的完整计算流程。文章重点对比了C波段与Ku波段在应对降雨衰减等动态因素时的不同策略,并分享了包含核心公式的Excel模板,帮助工程师将理论转化为可执行的系统设计依据。

weixin_29230773的博客 534

Codeforces 854 D. Jury Meeting(技巧)

Description Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the olympiad should meet together in Metropolis (the capital of the country) for the proble

小坏蛋_千千 953

实战分享:如何用YOLOv5s+BIFPN高效检测隧道裂缝(附数据集获取)

本文详细介绍了如何利用YOLOv5s结合BIFPN(双向特征金字塔网络)构建高效的隧道裂缝智能检测系统。文章从高质量数据集构建、针对性数据增强、模型架构选型与调优,到工程化部署全链路进行了实战分享,旨在为基础设施自动化巡检提供兼顾精度与速度的解决方案。

weixin_29062823的博客 380

CodeForces - 854D(前缀和,后缀和)

题目 又是枚举题。。。 先预处理出起飞和回去,然后枚举每个时间段 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<iostream> #include<algorithm> #include<string.h> #include<vector> #include<math.h> #include<map> using namespace std; #def

weixin_45714726的博客 287

通信原理与MATLAB(八):2PSK的调制解调

通信原理和MATLAB

菜yuan~的博客 3万+

车道线检测(传统基于Opencv的方法)

传统车道线检测方法主要是使用颜色选择、高斯平滑、边缘检测、ROI区域选择、霍夫变换、标定车道边界等Opnecv图像处理操作去检测道路上的车道线,我自己对很多用这类处理对很多道路场景车道线进行过实验,这类算法往往需要人工根据不同街道场景手动去反复调整各算法参数,从而才能使检测效果最佳。

Yangxiaoaijiejie的博客 2072

Codeforces 854 D Jury Meeting(前缀和后缀)

题目地址 题意:从1~n的城市的领导要去0号城市开会,一定要全部到齐了才能开始开会,会议要开k天,给你一个每个航班的飞机票,问最小的花费是多少,如果有领导不能来或者不能走会都不能开,只能输出-1。 思路:我们通过前缀和后缀的思想,把每个时间开会和散会的代价算出来,这就是类似于前缀和的思想,当该天没有算出来,就继承前一天的代价。这样我们就能得到一个表表明了所有天数开会和散会的代价,这样最后枚举一下

不要錯過才珍惜 658

sentaurus学习笔记(HFET_pGate_GaN仿真)(五)

`(sdedr:define-constant-profile`和`(sdedr:define-constant-profile-region`命令用于定义并应用一个恒定的活性硼掺杂浓度剖面`"ndop_GaN_gate_const"`到氮化镓栅极层上,其值为`NpGaN_gate`。- `"Oxide"`指定了这一层的材料名称(在这里代表氧化层),而`"nucleation"`是这一层在仿真中的标识名称。- `"GaN"`指定了这一层的材料名称,而`"GaN_gate"`是这一层在仿真中的标识名称。

qq_52640792的博客 940

Codeforces854D

#include<cstdio> #include<iostream> #include<algorithm> #include<string.h> #include<cmath> #include<queue> #include<vector> using namespace std; #define INF 0...

weixin_45502089的博客 269

Unity Tilemap瓦片动态缩放:保持网格尺寸不变的三种实现方案

本文详细探讨了在Unity中实现Tilemap瓦片动态缩放同时保持网格尺寸不变的三种核心方案。针对编辑器静态调整、整体风格化处理及运行时动态控制等不同场景,分别解析了直接修改瓦片属性、调整Tilemap Renderer材质参数以及使用SetTransformMatrix与Matrix4x4矩阵变换的实践方法、优缺点及选型指南,为2D游戏开发提供灵活高效的视觉与交互解决方案。

grass的博客 626

上线之前多一道闸:业务审核系统的接入定义、双轨状态机与可靠生效闭环

运营后台“保存即生效”,让价格、库存、人群等配置每次修改都相当于一次无评审的上线。本文以至尊会员降价活动为例,系统拆解业务审核系统:用带业务语义的操作编码、规则化审核人与候选人快照、完整的生效回调契约做好接入定义;把业务改造为提交待生效,以不可变快照、字段级差异和唯一约束加幂等号防误配防重复;用审批轨与执行轨双轨状态机、链路式重新提交和以事件为准的审核链路理清状态;最后以发件箱、幂等键、超时先查后试、乐观锁与对账闭合生效环节,并结合两个可运行的Java程序,给出五种生效策略的事故率实测对比。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 6万+

Codeforces854D【数据结构-线段树】

只要相差k天,然后来的航班取个小的,去的航班取个小的就是答案; 先维护去的航班第p天开始能使所有地点都能到达的最小值,拿线段树维护最小值,然后枚举来的航班得出答案。#include <bits/stdc++.h> using namespace std; #define mem(a, b) memset(a, b, sizeof(a)) #define lson num<<1,Left,Mid #

ONE MORE TRY 662

华为OD机试 - 城市聚集度(Python/JS/C/C++ 2025 A卷 200分)

华为OD机试 2025A卷题库疯狂收录中,刷题。

学Java,找哪吒 1129

Jury Meeting CodeForces - 854D

Jury Meeting CodeForces - 854D 题意:给出飞机航班数目,以及延迟时间。第二行给出每个航班每延时一分钟需要的花费。(本来每个航班的起飞时间为第i个i,如今所有的飞机都要在k之后出发,要重新排版飞机起飞的顺序,但是不能让一个航班提前出发) 思路:突然卡出了,然后写了一个超时的写法,要处理这个条件:不能让一个航班提前出发。要维护优先队列,每次只把前k个的放进去。 ...

DeathYmz的博客 556

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Jury Meeting CodeForces - 854D (前缀和维护)

Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the olympiad should meet together in Metropolis (the capital of the country) for the problem preparation...

weixin_30478619的博客 222

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

codeforces 854 D. Jury Meeting(dp水题)

题目链接D. Jury Meeting分析昨晚打正式赛的时候太急了,代码写的有点毒,下了课后一看,立马发现bug…..将去的航班表和返回航班表分别按照时间最小和最大排序,对于去的航班来说,挨个扫描过去,对每一个人维护当前的最小花费,若时间总的航班满足等于 nn 说明这一天可以作为起始时间,更新这一天的花费dp[d]=now_ansdp[d] = now\_ans,now_ansnow\_ans 记录

taotao 的大学墓志 754

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

CodeForces - 854D Jury Meeting(前缀、后缀+思维)

题目链接:点击这里 题目大意: 有 nnn 个人分别住在 111 到 nnn 这 nnn 个点,他们要去 000 号点共同开 kkk 天的会,并在会后各回各家,现给出一些航班情况,求此次集会的最小花费 题目分析: 我们先对去和回家的机票进行分类并按时间排序,对去的机票维护一个前缀花费,回的机票维护一个后缀花费,然后枚举所有时间点来计算花费,取最小值即为答案 具体细节见代码: #include<iostream> #include<cstdio> #include<cstring

羊驼的博客 285

codeforces 854D Jury Meeting (思维、尺取)

题目原文: http://codeforces.com/problemset/problem/853/B B. Jury Meeting Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the olympiad should m

wchhlbt的博客 474

Codeforces 854D Jury Meeting【思维+前后缀和+二分】

D. Jury Meeting time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Country of Metropolia is holding Olympiad of

mengxiang000000 1158

Codeforces Round #433Div. 2 D Jury Meeting 优先队列

原题链接:http://codeforces.com/contest/854/problem/D 大致题意:n个人分别从1-n号城市乘飞机聚集到0号城市开会,开会时间为k天,每架航班都是当天起航,当天到达。只有所有人都已经到达0号城市后的第二天才能开会,开完k天会后的第二天每个人才能返回自己的城市。给出每架航班的出发时间,出发城市,抵达城市,价格,问所有人的最小总花费是多少。 我的想法是,既然

ACM交流帖 317

Codeforces Round #433 题解

比赛链接:http://codeforces.com/contest/854 A. Fraction 解法:按照题意模拟即可。 #include using namespace std; int main() { int n; cin >> n; for(int i=n/2; i>=1; i--){ if(__gcd(i, n-i) == 1){

I good vegetable a! 420

Codeforces 854C. Planning 贪心

题意 给出n(3e5),k(<=n),以及n个数ci(1e7). 表示有n架飞机本需要在[1,n]时间内起飞,一分钟只能飞一架.但是现在[1,k]时间内并不能起飞,只能在[k+1,k+n]内起飞.ci序号为i的飞机起飞延误一分钟的cost.一个飞机不能比原定时间早起飞,请安排一个起飞顺序,求最小的cost和.

秋叶红于二月花 1105

Codeforces Round #433 (Div. 2) Jury Meeting(贪心)

D. Jury Meeting time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Country of Metropolia is holding Olympiad of

信仰.的博客 1104

Codeforces Round #433 (Div. 2, based on Olympiad of Metropolises) D. Jury Meeting(贪心)

D. Jury Meeting time limit per test 1 second memory limit per test 512 megabytes input standard input output standard output Country of Metropolia is holding Olympiad of

WhaleFall 516

Codeforces Round #433 D. Jury Meeting

Country of Metropolia is holding Olympiad of Metrpolises soon. It mean that all jury members of the olympiad should meet together in Metropolis (the capital of the country) for the problem preparation

SSimpLe_Y的博客 965

CF1569C Jury Meeting 组合排列 乘法逆元

题目大意 给定一个长度为n的数组,第i位表示第i个人有a[i]个问题需要提出,会议中每个人按照一个特定的顺序依次提出一个问题,没有问题则被跳过,直到所有人都没有问题。比如a数组为 1 2 3 4 5,这个顺序为 5 4 3 2 1,提出问题的顺序就是先5号提出一个问题,然后4号,然后3号,然后2号,然后1号,再回到开始先5号,然后4号,然后3号,然后2号,1号因为没有问题被跳过,直到所有人都没有问题。有多少个这样的顺序使得所有人都不会连着提出两个及以上的问题,也就是不会一个人提出问题后下一个立马又是他提出问

weixin_45800628的博客 427
上一篇: HDU - 6191 Query on A Tree 可持久化Tire
下一篇: bzoj1969LANE 航线规划
OneDay_pyf
博客等级 码龄10年 6粉丝 35原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值