洛谷_2153 晨跑

题解:洛谷 B2153 求阶乘的和 等知名刷题平台精心挑选而来,并结合各平台提供的算法标签和难度等级进行了系统分类。题目涵盖了从基础到进阶的多种算法和数据结构,旨在为不同阶段的编程学习者提供一条清晰、平稳的学习提升路径。的正整数的阶乘的和(即求。输入一行,包含一个正整数。输出一行,表示阶乘的和。本文分享的必刷题目是从。#入门# #语法基础# 阅读详情

题意

有一个人喜欢跑步,他每天跑的路线都不一样,每个点只能走1次,而且每条路有一个长度。给出几条路线,求出他从点1到点n最多能用这些路线跑多少天并且在这个前提下跑的路程最短。

思路

有最短路程和最长天数我就知道是最小费用最大流了。把每条边的流量设为1,如果有一条路是1直接到n的,我们只能让他走一次。然后把每个点拆成入点和出点,把它们连起来,这样子让每个点只会被走过1次。构完图后跑一遍网络流就好了。

代码

#include<cstdio>
#include<cstring>
#include<queue>
#define min(a,b) a<b?a:b
using namespace std;
int S,T,tot,n,m,a,b,c,ans,head[403],d[403],v[403],p[403],ans1,ans2;
struct node{
    int x,y,flow,cost,next;
}e[40804];
void add(int x,int y,int flow,int cost)
{
    e[++tot].x=x;e[tot].y=y;e[tot].flow=flow;
    e[tot].cost=cost;e[tot].next=head[x];
    head[x]=tot;
    e[++tot].x=y;e[tot].y=x;e[tot].flow=0;
    e[tot].cost=-cost;e[tot].next=head[y];
    head[y]=tot;
}
bool spfa()
{
    queue<int> q;
    int x,y;
    for (int i=1;i<=2*n+2;i++)
    {
        v[i]=0;
        d[i]=2147483647;
    }
    d[S]=0;q.push(S);v[S]=1;
    while (q.size())
    {
        x=q.front();q.pop();v[x]=0;
        for (int i=head[x];i;i=e[i].next)
        {
            if (!e[i].flow) continue;
            y=e[i].y;
            if (d[y]>d[x]+e[i].cost)
            {
                d[y]=d[x]+e[i].cost;
                p[y]=i;
                if (!v[y])
                {
                    v[y]=1;
                    q.push(y);
                }
            }
        }
    }
    return d[T]<2147483647;
}
void addflow()
{
    int i=T,mn=2147483647;
    while (p[i])
    {
        mn=min(mn,e[p[i]].flow);
        i=e[p[i]].x;
    }
    ans1+=mn;ans2+=d[T]*mn;
    i=T;
    while (p[i])
    {
        e[p[i]].flow-=mn;
        e[p[i]^1].flow+=mn;
        i=e[p[i]].x;
    }
}
int main()
{
    tot=1;
    scanf("%d%d",&n,&m);
    S=2*n+1;T=2*n+2;
    for (int i=1;i<=m;i++)
    {
        scanf("%d%d%d",&a,&b,&c);//*2-1表示入点,*2表示出点
        if (a==1&&b!=n) add(S,b*2-1,1,c);
        else if (a!=1&&b==n) add(a*2,T,1,c);
        else if (a==1&&b==n) add(S,T,1,c);
        else add(a*2,b*2-1,1,c);
    }
    for (int i=2;i<n;i++)
        add(i*2-1,i*2,1,0);//入点连出点
    while (spfa()) 
        addflow();
    printf("%d %d",ans1,ans2);
}
BIOS硬件监控实战:如何手动读取IT8738芯片的温度与风扇数据(附代码) 本文深入探讨了如何绕过操作系统和HWMonitor等监控软件,直接通过寄存器级操作读取IT8738超级I/O芯片的硬件监控数据。文章提供了从动态定位EC空间、构建底层读写函数到解码传感器寄存器映射的完整实战指南,并附有C语言代码示例,帮助开发者理解BIOS硬件监控的底层原理,适用于定制硬件开发与故障诊断。 阅读详情

相关推荐

校招总结—FPGA从入门到放弃

校招总结—FPGA从入门到放弃 感谢咸鱼FPGA的授权转发,原文地址为https://www.cnblogs.com/xianyufpga/ 其实 offer 早就定下来了,最近忙着入党考试,现在才腾出时间来写个总结。我校招开始于 7 月底,算是比较晚了,后面加了各大校招交流群,发现很多同学都是过完年后就开始打磨项目、复习基础、寻找实习。对比之下我这准备确实仓促,不过结果还算满意。 ...

qq_31515205的博客 8606

洛谷 [SDOI2009]晨跑

题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑。 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街道,Elaxia只能从 一个十字路口跑向另外一个十字路口,街道之间只在十字路口处相交。Elaxia每天从寝室出发 跑到学校,保证寝室编号为1,学校编号为N。 Elaxia的晨跑计划是按周期(包含若干天...

Beautiful women in tights 267

Unity半透明物体景深失效?教你用双材质球方案完美解决(附完整Shader代码)

本文深入剖析了Unity中半透明物体导致景深效果失效的根本原因,即半透明物体默认不写入摄像机深度图。针对此问题,文章详细介绍了稳定高效的“双材质球”解决方案,通过为物体附加一个仅写入深度信息的不可见材质,完美修复景深效果,并提供了完整的Shader代码与实现脚本。

weixin_29010003的博客 381

洛谷P4057 [Code+#1]晨跑 题解

首先了解一个公式: 进而得到: 具体代码如下: #include <cstdio> long long gcd(long long x,long long y)//gcd标准格式 { if(x%y==0) { return y; } else { gcd(y,x%y); } } int main() { long long x=0,y=0,z=0; scanf("%lld %lld %

jackson2248的博客 512

安卓开发者必看:Win11最新Fastboot驱动安装避坑指南(含Android Bootloader Interface选择技巧)

本文为安卓开发者提供了Windows 11系统下Fastboot驱动安装的详细指南,特别针对Android Bootloader Interface选择技巧和多设备并发连接时的驱动冲突问题。通过解析Windows 11的特殊驱动验证机制,推荐使用Google官方USB驱动,并提供安装流程、版本选择建议及疑难问题排查方法,帮助开发者高效完成开发环境配置。

sea99的博客 1332

本地大模型5:在pycharm用python调用ollama本地大模型

python调用ollama本地大模型

weixin_74825941的博客 8377

(费用流)洛谷P2153 [SDOI2009]晨跑

洛谷P2153 [SDOI2009]晨跑 思路: ·要求路程尽可能短,天数尽可能长,那么肯定是最小费用最大流了。天数作为流量,路程作为费用。 按照要求,每个路口只能走一次,这个就是不重复选取的问题,在最大流中的最长不下降子序列问题有涉及到,解决的办法就是将点拆开,设入点为iii,出点为i′i^{'}i′。然后在之间建一条流量为111的边。 这里也是相同的,只需要拆点后建一条流量为111,费用为000的边即可。由于111和nnn可以使用无限次,所以111和1′1^{'}1′,nnn和n′n^{'}n′之间的流

Z7784562的博客 233

SAP Fiori Launchpad Tile,UI5 应用,和 PFCG Role 的对应关系

问题:已经看到了SAP Fiori Launchpad上的某个tile,如何反推后台需要配置哪个PFCG Role才能看到该tile? 这个问题是今天一个朋友在微信上问我的。因为我最近忙着学习一个新的SAP产品,所以这个问题也没有时间展开来写,本文就只做概要介绍。 下图是一个Gateway系统上打开的SAP CRM Fiori Launchpad: 如何弄清楚后台用户配置了哪个PFCG Role之后,才能看到Sales Representative(CRM)这个Group下的tile? 既然当前我使用的用

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1520

洛谷 P2153 [SDOI2009]晨跑

费用流拆点

我要吃熊猫 417

军品研制过程-转阶段

介绍军品转阶段评审

Abel的博客 2万+

【TC3xx芯片】TC3xx芯片PFlash的ECC校验问题补充

TC3xx芯片PFlash的ECC校验问题补充

qq_36056498的博客 1153

洛谷P2153 [SDOI2009]晨跑

题目描述Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑。 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街道,Elaxia只能从 一个十字路口跑向另外一个十字路口,街道之间只在十字路口处相交。Elaxia每天从寝室出发 跑到学校,保证寝室编号为1,学校编号为N。 Elaxia的晨跑计划是按周期(包含若干天)...

蒟蒻的博客 319

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

洛谷 P2153 [SDOI2009]晨跑(费用流)

题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑。 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街道,Elaxia只能从 一个十字路口跑向另外一个十字路口,街道之间只在十字路口处相交。Elaxia每天从寝室出发 跑到学校,保证寝室编号为1,学校编号为N。 Elaxia的晨跑计划是按周期(包含若干...

whisperlzw的博客 216

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

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

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

luogu2153 [SDOI2009]晨跑

http://www.elijahqi.win/2017/11/24/luogu2153-sdoi2009%e6%99%a8%e8%b7%91/ 题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑。 现在给出一张学校附近的地图,这张地图中包含N个十字路口和M条街道,Elaxia只能从 一个十字路口跑向另外一个十字

Elijahqi 197

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

洛谷 P2153 [SDOI2009]晨跑

题面题意 给出一幅有向无环图,问从点1到点n有几条互相没有交点(除起点终点外不能有公共点)的路径,保证路径数量最多的情况下,路径最大数量与最短的路径长度之和是多少. 分析 与费用流裸题不同的是,不能有公共点,解决方法是将每一个点拆为一个入点和一个出点,流量为1(起点终点不用拆或者流量为INF),建边时,从一个点的出点连向另外一点的入点,再跑一遍费用流即可. 代码#include<iostre

yzyyylx的博客 327

[洛谷P2153] [SDOI2009]晨跑(费用流)

典型的最小费用最大流。只要把一个点拆成两个,中间连一条容量1费用0的边来限制每个点只用一次就好。 要注意第1个点和第n个点不用限制次数,以及从1到n的边容量为1。 #include&lt;cstdio&gt; #include&lt;cstring&gt; #include&lt;queue&gt; #include&lt;algorithm&gt; using namespace std;...

seeeagull 246

P2153 晨跑,费用流裸题

晨跑 题目连接 https://www.luogu.org/problemnew/show/P2153 题解 求最大不相交路径数,并在路径数最大前提下,求总路程最短. 太裸了. 求不相交路径数:将除1,n1,n1,n两点外的所有点拆分,中间连一条容量为111,费用为000的边.然后所有的原边u→vu \rightarrow vu→v视作从uuu的出点连向vvv的入点的一条费用为路程,容量为111的...

SUNSET 224

洛谷 P2153 [SDOI2009]晨跑 网络流 最小费用最大流 Dinic+Spfa

题目链接: https://www.luogu.com.cn/problem/P2153 参考博客: https://siyuan.blog.luogu.org/solution-p2153 算法:1:最小费用最大流 Dinic+Spfa 思路: 1:首先我们发现需要求路程最短,天数尽量长。那么我们可以考虑最小费用最大流,其中路程为费用,天数为流量 2:由于每个点只能被访问 1 次,...

aiwo1376301646的博客 314

BZOJ1877(洛谷P2153)[SDOI2009]晨跑

费用流

forezxl的博客 381

[SDOI2009]晨跑,洛谷P2153,最小费用最大流

正题        给出n个点,m条边,每条边有个长度,且只能走一次,让你规划一种方案,使得1到n的路径条数最多而且总路程最短。        很明显这是一道网络流的题目,我们只要把每一条边的长度改成费用,流量为1,即可。         没有用zkw网络流写法。 #include&lt;cstdio&gt; #include&lt;cstdlib&gt; #include&lt;cst...

Deep_Kevin的娱乐空间 507

P2153 [SDOI2009]晨跑

MCMF的第一道非模板题,一脸懵逼。。。 其实这道题比较难用MCMF的思想想出,就算我做完也不怎么懂。 主要提示内容是主人公矛盾的心理,一个路程最短,一个周期最长。 况且题目所说的每一次周期,都相当于是一次从源点到汇点的增广。 其实每从源点到汇点走一遍,就是一个周期,这个题目其实没怎么细说。 那么用MCMF求解这道题的话,就用路径当作费用,路径能走的次数(1)当作容量。 费用其实是单位费用乘以单...

weixin_34352005的博客 95

洛谷 CF2153B Bitwise Reversion 题解

蒟蒻的第二篇题解QAQ

yoke1224的博客 1727

[Luogu P2153] [BZOJ 1877] [SDOI2009] 晨跑

洛谷传送门 BZOJ传送门 题目描述 Elaxia最近迷恋上了空手道,他为自己设定了一套健身计划,比如俯卧撑、仰卧起坐等 等,不过到目前为止,他坚持下来的只有晨跑。 现在给出一张学校附近的地图,这张地图中包含NNN个十字路口和MMM条街道,Elaxia只能从 一个十字路口跑向另外一个十字路口,街道之间只在十字路口处相交。Elaxia每天从寝室出发 跑到学校,保证寝室编号为111,学校...

LPA的博客 255

洛谷 P2153

这道题,看上去就发现是一个最小费用最大流了,这里还是用的 spfa 写的   首先需要注意一点,每个十字路口只能走一次,那么还是运用我们的拆点方法,来限制入点到出点, 第二次接触带有最小费用的最大流。。。 下边这些话摘选自一个大犇的博客:https://blog.youkuaiyun.com/liusu201601/article/details/79443323 解题思路: 1、请结合最大流的模...

qq_40924940的博客 183

【暖*墟】#网络流# 费用流的学习与练习

最小费用最大流 #include <cmath> #include <iostream> #include <cstdio> #include <string> #include <cstring> #include <vector> #include <algorithm> #...

weixin_30466039的博客 128
上一篇: 洛谷_2517 订货
下一篇: 【最大流 模板】洛谷_3376 网络最大流
nymph181
博客等级 码龄9年 40粉丝 458原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值