Candies POJ - 3159 (差分约束+最短路)

最短路算法.pdf 这是最短路径的算法,刚学的,有所不足敬请谅解。 立即下载

Candies

POJ - 3159

During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All the kids loved candies very much and often compared the numbers of candies they got with others. A kid A could had the idea that though it might be the case that another kid B was better than him in some aspect and therefore had a reason for deserving more candies than he did, he should never get a certain number of candies fewer than B did no matter how many candies he actually got, otherwise he would feel dissatisfied and go to the head-teacher to complain about flymouse’s biased distribution.

snoopy shared class with flymouse at that time. flymouse always compared the number of his candies with that of snoopy’s. He wanted to make the difference between the numbers as large as possible while keeping every kid satisfied. Now he had just got another bag of candies from the head-teacher, what was the largest difference he could make out of it?

Input

The input contains a single test cases. The test cases starts with a line with two integers N and M not exceeding 30 000 and 150 000 respectively. N is the number of kids in the class and the kids were numbered 1 through N. snoopy and flymouse were always numbered 1 and N. Then follow M lines each holding three integers A, B and c in order, meaning that kid A believed that kid B should never get over c candies more than he did.

Output

Output one line with only the largest difference desired. The difference is guaranteed to be finite.

Sample Input
2 2
1 2 5
2 1 4
Sample Output
5
Hint
32-bit signed integer type is capable of doing all arithmetic.

首先如果你不知道差分约束系统是什么请看下面链接

差分约束系统详解

http://www.cppblog.com/menjitianya/archive/2015/11/19/212292.html

code:

/**
题意:给n个人分配糖果,给出m组数据,每组数据包含A,B,c三个数
意思是B的糖果数比A多的个数不能超过c,也就是Numb - Numa <= c;
最后求n比1最多可以多多少个糖果

解题思路:
这是一道查分约束题,不妨将糖果数当做距离,把两个人之间不能超过的
那个差值看成有向边AB的权值,则根据题目的意思我们就可以得到
dis[B] - dis[A] <= w(A,B),那么这个问题就可以转化成判断
dis[B] > dis[A] + w(A,B),如果为真,就更新使得dis[B] = dis[A] + w(A,B)
这样就变成了求最短路
spfa + stack 使用邻接表
**/
#include <iostream>
#include <algorithm>
#include <cstdio>
#include <cstring>
using namespace std;
const int MAXN = 30010;
const int MAXE = 150010;
const int INF = 0x3f3f3f3f;
int first[MAXN];//储蓄每个顶点的第一条边的编号
int vis[MAXN];//标记数组

int Q[MAXN];//栈模拟数组
int dis[MAXN];//距离
struct Edge{
    int to;
    int v;
    int next;
}edge[MAXE];
int tol;
void add(int a,int b,int v){//加边
    edge[tol].to = b;
    edge[tol].v = v;
    //这两句为邻接表的关键语句
    edge[tol].next = first[a];//先更新第一条边的下一条边,把下一条边更新成当前的第一条边
    first[a] = tol;//然后在更新第一条边

    tol++;
}
void spfa(int start,int n){
    int top = -1;
    memset(dis,INF,sizeof(dis));
    memset(vis,0,sizeof(vis));
    dis[start] = 0;
    vis[start] = 1;
    Q[++top] = start;
    while(top > -1){
        int u = Q[top--];
        vis[u] = 0;
        int i;
        for(i = first[u]; i != -1; i = edge[i].next){
            int v = edge[i].to;
            if(dis[v] > dis[u] + edge[i].v){
                dis[v] = dis[u] + edge[i].v;
                if(!vis[v]){
                    vis[v] = 1;
                    Q[++top] = v;
                }
            }
        }
    }
}
int main(){
    int n;
    int M;
    int a,b,c;
    while(~scanf("%d%d",&n,&M)){
        tol = 0;//给每条边编号
        memset(first,-1,sizeof(first));
        while(M--){
            scanf("%d%d%d",&a,&b,&c);
            //b-a <= c
            add(a,b,c);
        }
        spfa(1,n);
        cout << dis[n] << endl;
    }
    return 0;
}


Unity集成阿里Qwen2.5-Omni全模态大模型实战:语音交互与多模态AI开发指南 本文详细介绍了在Unity中集成阿里Qwen2.5-Omni全模态大模型的实战指南。通过C#脚本开发,实现语音交互、图像分析等多模态AI功能,涵盖API调用、音频处理、流式响应解析等核心步骤,为游戏、虚拟人等Unity应用提供沉浸式智能交互解决方案。 阅读详情

相关推荐

STM32串口调试踩坑记:HAL_UART_ErrorCallback里不先解锁,你的中断接收就废了

本文深入分析了STM32串口调试中HAL_UART_ErrorCallback的锁机制陷阱,指出在错误回调中不先解锁会导致中断接收失效的问题。通过解析HAL库源码,提出了正确的错误处理实现方法,并分享了预防措施与最佳实践,帮助开发者提升串口通信的可靠性。

weixin_33733810的博客 514

poj 3159 Candies(优先队列 dijkstra+堆)

题目链接 http://poj.org/problem?id=3159 Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 26118   Accepted: 7147 Description During the kinderga

ACMan 541

阿里云人工智能工程师ACA认证免费课程学习笔记

阿里云人工智能工程师ACA认证免费课程学习笔记

engchina的专栏 2014

初步 poj3159Candies

终于放假了,考试爆炸,算了,还不如学学算法,Dijkstra`s算法。。。 先给题目链接好吧,poj3159Candies:http://poj.org/problem?id=3159   题目意思抄一下: 有N个孩子(N&lt;=3000)分糖果。有M个关系(M&lt;=150000)。每个关系形如: A B C 表示第B个学生比第A个学生多分到的糖果数目,不能超过C 求第N个学生最...

A_Pathfinder的博客 457

Windows Server上OpenVPN 2.4.8双因子认证实战:账号密码+证书,附一键脚本

本文详细介绍了在Windows Server上部署OpenVPN 2.4.8双因子认证(账号密码+证书)的实战方案,包括架构设计、证书体系规划、环境准备、服务器端配置及客户端自动化部署。通过一键脚本和优化配置,提升企业VPN的安全性和运维效率,特别适合金融、医疗等对安全性要求高的行业。

weixin_29231221的博客 466

信息奥赛课课通(C++)p154-1近似排序

试题描述 读入一对正整数,将这两个数之间(包括这两个数本身)的所有数按下述特别规则排序后输出,该特别规则是按两数倒过来的值进行比较决定其大小,如30倒过来为3,29倒过来为92,则29大于30. 输入要求 1行,包含两个用空格隔开的自然数,这两个自然数给出了待排序数的范围,其中1≤第一个数≤第二个数≤999999999,两个数之差不超过100. 输出要求 输出排序后的数据,每行输出...

mengdicfm的博客 7284

poj3159 Candies 最短路&差分约束

题目链接:http://poj.org/problem?id=3159 题意:n个点,m对A,B,C,表示B的值减A的值不超过C,求1和n的最大差值(后来我才知道这叫差分约束)。 分析:开始拿到这题有点懵比,没读懂,后来自己在草稿上画了画感觉就是求1点到n点的最短路。 如下图: 后来写了spfa+queue就交了上去T了一发,想了想,没招了,看了disscus发现说用堆栈可以,可是我不

Na_OH的博客 503

运算放大器测试方法-输入失调电压

由于运放输入回路的不对称性,在输入端将产生一定的误差信号,从而限制运放信号灵敏度。通常用输入失调电压(VOS)、输入失调电流(Ios)和输入偏置电流(IB)表示。运放有四个主要特征:输入失调特征、开环特征、共模特征及输出特征。其放大倍数较大,由于外界的影响,即使运放的输入端产生较小的输入信号,经过放大,在输出端也会产生较大的误差。为能精确测量其性能,一般采用辅助运放进行测试。下面着重讲了运放的主要参数及如何精确测量这些参数。文中DUT代表被测运放,A代表辅助运放。

weixin_46135931的博客 1万+

poj3159 Candies(差分约束,最短路)

题意:n个人,m个信息,每行的信息是3个数字,A,B,C,表示B比A多出来的糖果不超过C个,问你,n号人最多比1号人多几个糖果 思路:对应最短路模型,在松弛完最短路后则变为  d[v] 这个和上面的 B - A 吐槽1:用spfa+queue超时..得改用stack,用刘汝佳的紫书上的dijkstra+优先队列模板也会超时,要改用数组实现的邻接表可以过 吐槽2: 想了一下觉

围巾的ACM博客 2818

Unity URP管线下的Highlight Plus插件,从导入到实现物体高亮的保姆级避坑指南

本文详细解析了在Unity URP管线中使用Highlight Plus插件实现物体高亮的完整流程与常见问题解决方案。从URP环境配置、插件导入避坑到相机设置优化,提供了一套完整的保姆级指南,帮助开发者高效解决高亮效果不显示等典型问题,并包含移动端性能优化与复杂场景管理的高级技巧。

weixin_27379781的博客 408

Ubuntu 22.04 搭建 PX4 飞控系统完全指南:从仿真到硬件试飞

定义消息文件protobufuint64 timestamp # 时间戳float32 temperature # 温度float32 humidity # 湿度生成代码:bashPX4 在 Ubuntu 22.04 的搭建涉及环境配置、编译仿真、硬件连接等多环节,核心是理解 PX4 1.14 的新特性(uXRCE-DDS、动态控制分配)。通过本文指南,开发者可快速构建稳定的 PX4 开发环境,为无人机应用开发奠定基础。

zqmgx13291的博客 3044

POJ 3159 Candies (图论,差分约束系统,最短路)

POJ 3159 Candies (图论,差分约束系统,最短路) Description During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of...

dipinzhu4111的博客 180

YOLO26中 RepVGGBlock_OREPA 架构的设计与性能提升分析(mAP +4.89)

REPVGGOREPA模块代表了重参数化技术的最新发展,它通过巧妙的架构设计实现了训练时的丰富表达和推理时的高效计算。其核心创新包括多分支特征聚合、动态权重生成、频域先验知识融合等技术,为深度学习模型的效率优化提供了新的解决方案。这种设计理念不仅在技术上具有重要意义,在实际应用中也展现出了显著的优势,特别是在需要高精度和高效率的工业场景中表现突出。随着重参数化技术的不断发展,REPVGGOREPA为未来的网络架构设计提供了重要的参考和启发。

know_F0727的博客 66

【解题报告】 POJ - 3159 Candies(差分约束、最短路)

原题地址 其实这个题目思考起来和实现起来并不难 ,但是为了码一下发现的dalao的博客,还是写一下题解 dalao博客: 夜深人静写算法(四) - 差分约束 真的写的非常好啊!可以说是帮我又把最短路和建图的知识复习了一遍,吹爆dalao,简单的逛了一下,他其他的文章包括dp、线段树、树状数组等等都写的非常认真非常仔细,还附题集,每一题还点出了重点是什么,可以说是非常良心了!决定了,以后就跟着这个d...

Jiengup_的博客 379

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

IMSL CNL 7.0.0 (x86-64)Crack

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

POJ - 3159 Candies(最短路+差分约束思想)

题目链接 题意:n个小孩,每个小孩a都认为自己应该比小孩b少分得x颗糖果,为了满足每个小孩,第一个小孩最多比第n个小孩多分得几颗糖果 分析:差分约束,跑一个最短路即可,如果不了解, 点击这里: 差分约束 #include <set> #include <map> #include <cmath> #include <stack> #include <queue> #include <string> #include <vect

weixin_46220615的博客 122

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Candies POJ - 3159 (最短路+差分约束)

During the kindergarten days, flymouse was the monitor of his class. Occasionally the head-teacher brought the kids of flymouse’s class a large bag of candies and had flymouse distribute them. All t...

weixin_30367945的博客 152

精雕软件(JDpaint) 5.5 绿色版

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

POJ - 3159 Candies —— 差分约束最短路

题意: 一群人分糖果,有m个限制关系,每个关系表明B所拥有的糖果数不能比A多C,问第一个人和第二个人的糖果最多能差多少。 思路: 差分约束,对于每个限制关系,B-A&lt;=C,那么就从A到B建一条边,跑最短路即可 本来是很简单的差分约束,但是就是死活过不了,必须用vecter优化,  v.clear();    v.resize(n+1); 学到了... #include &lt;io...

Lngxling的博客 526

POJ3159 Candies【差分约束+最短路】

Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 38621   Accepted: 10891 Description During the kindergarten days, flymouse was the monitor of his class. Occasio...

逐梦者 386

POJ 3159 Candies(最短路 差分约束)

Candies Time Limit: 1500MS Memory Limit: 131072K Total Submissions: 31848 Accepted: 8896 DescriptionDuring the kindergarten days, flymouse was the monitor of his class. Occasionally the

Twillz的博客 381

POJ 3159 Candies(spfa最短路,差分约束)

题意:幼儿园俩小朋友不和..一个编号是1,一个编号是n,给出m个关系,就是A小朋友最多比B小朋友多C个糖果,问n最多比1多多少个糖果... n、m很大...开始我想着是求最大路,但是spfa没法求因为这题是有环的...后来一想,直接边权为c不就是最大了么..求一下最短路就行了吧...因为求最大路可能对于某些条件来说产生冲突...为了保证条件的合理性,只能选择最短路...接下来 TLE...nm范

439

poj 3159 Candies(差分约束原理 最短路)

题意:不懂差分约束的请看我转载的一篇差分约束详解http://blog.youkuaiyun.com/kirito_j/article/details/52132170 看完那个链接你们就懂了,在型如x-y CandiesTime Limit:1500MS    Memory Limit:131072KB    64bit IO Format:%lld & %llu SubmitStatusPr

Kirito_j的博客 519

最短路练习11/poj/3159 【差分约束系统】Candies

没看题解前完全不知道题是啥意思,完全不能把这道题跟最短路联系在一块0.0 题意:现在有一些小朋友,有许多的糖果,给出m组关系;例如1 2 5表示1号小朋友不想让2号小朋友比他多超过5个糖果,2 1 4表示2号小朋友不想让1号小朋友比他多超过4个糖果, 然后列为关系式:a2-a1<=5,a1-a2<=4;求1号小朋友和n号小朋友最多能相差多少糖果; 思路:差分约束系统是什么东东我看了一晚上也没怎么弄明白。就知道这道题是差分约束的裸模板; 看不懂就把它当成最短路就行,例如样例,把样例变成a2<=

Accepted 379

POJ 3159 Candies(差分约束,最短路)

Candies Time Limit: 1500MS   Memory Limit: 131072K Total Submissions: 20067   Accepted: 5293 Description During the kindergarten days, flymouse was the monitor of his cla...

weixin_34228617的博客 226
上一篇: Agri-Net POJ - 1258 (最小生成树)
下一篇: Telephone Lines POJ - 3662(二分+最短路)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值