Burn the Linked Camp ZOJ - 2770(差分约束系统)

yolov5部署之七步完成tensorRT模型推理加速 目录前言step 1. 下载yolov5源码以及tensorrtx源码,并将yolov5s.pt转为.wts模型step 2. 确定并下载自己准备使用的CUDA版本。step 3. 根据自己的CUDA版本下载对应版本的cuDNN以及TensorRTstep 4. 根据自己使用的VS版本下载对应版本的OpenCVstep 5. 安装CUDAstep 6. 安装cuDNN、TensorRT以及验证TensorRT是否安装成功 前言     前段时间研究了Pytorch的环境配置,之后便从github上下载了yo 阅读详情

Burn the Linked Camp

ZOJ - 2770

It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu Empire, was defeated by Lu Xun, a general of the Wu Empire. The defeat was due to Liu Bei's wrong decision that he divided his large troops into a number of camps, each of which had a group of armies, and located them in a line. This was the so-called "Linked Camps".

Let's go back to that time. Lu Xun had sent many scouts to obtain the information about his enemy. From his scouts, he knew that Liu Bei had divided his troops into n camps, all of which located in a line, labeled by 1..n from left to right. The ith camp had a maximum capacity of Ci soldiers. Furthermore, by observing the activities Liu Bei's troops had been doing those days, Lu Xun could estimate the least total number of soldiers that were lived in from the ith to the jth camp. Finally, Lu Xun must estimate at least how many soldiers did Liu Bei had, so that he could decide how many troops he should send to burn Liu Bei's Linked Camps.

Input:

There are multiple test cases! On the first line of each test case, there are two integers n (0<n<=1,000) and m (0<=m<=10,000). On the second line, there are n integers C1��Cn. Then m lines follow, each line has three integers i, j, k (0<i<=j<=n, 0<=k<2^31), meaning that the total number of soldiers from the ith camp to the jth camp is at least k.

Output:

For each test case, output one integer in a single line: the least number of all soldiers in Liu Bei's army from Lu Xun's observation. However, Lu Xun's estimations given in the input data may be very unprecise. If his estimations cannot be true, output "Bad Estimations" in a single line instead.

Sample Input:

3 2
1000 2000 1000
1 2 1100
2 3 1300
3 1
100 200 300
2 3 600

Sample Output:

1300
Bad Estimations

差分约束,我们定义x[ i ]为第 i 个营的人数,定义dist[ i ] = x[ 0 ] + x[ 1 ] + ...x[ i ],其中x [ 0 ] = 0,则可知我们要求的为dist [ n ]。 

对于差分不等式,a - b <= c ,建一条 b 到 a 的权值为 c 的边,求的是最短路,得到的是最大值;

对于不等式 a - b >= c ,建一条 b 到 a 的权值为 c 的边,求的是最长路,得到的是最小值。这题由于求最小值,所以我们用的是第二种。 

对于题目,我们可以有如下约束 :

      x[ i ] 代表每个军营的人数。 s[ i ] 前 n 个军营的中人数。

    (1)第 i 个军营有 num 人 ,人数肯定不会超过 num ,则有约束条件 s[ i ] - s[ i - 1] <= sum , 变为 :s[ i - 1] - s[ i ] >=  - num。   i -> i-1

    (2)第 i 个大营到第 j 个军营士兵总数至少有 num 个。则有约束条件  s[ j ] - s[ i - 1 ] >= num 。   j -> i-1

    (3)设第 0 个 军营的人数为 0 ,军营的总人数肯定 >= 0 ,所以 s [ i ] - s[ 0 ] >=0      0 -> i
    因为是求最小值,同时图的建立是按照小于等于进行,所以我们就要从负无穷约束到最小值,用SPFA求最长路即可。 

    SPFA过程中判断是否有环。

code:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <queue>
using namespace std;
const int maxn = 1100;
const int INF = 0x3f3f3f3f;
struct node{
    int u,v,w,Next;
};
node edge[maxn*10];
int dis[maxn],used[maxn],head[maxn],cnt;
int vis[maxn];
int N,M;
void init(){
    memset(head,-1,sizeof(head));
    cnt = 0;
}
void add(int u,int v,int w){
    edge[cnt] = {u,v,w,head[u]};
    head[u] = cnt++;
}
void getmap(){
    int a,b,num;
    for(int i = 1; i <= N; i++){
        scanf("%d",&num);
        add(i,i-1,-num);//约束1 s[i-1]-s[i] >= -num; i -> i-1
        add(i-1,i,0);//约束2 s[i] - s[i-1] >= num;  i-1 -> i
        add(0,i,0);//约束3 s[i] - s[0] >= 0; 0 -> i
    }
    while(M--){
        scanf("%d%d%d",&a,&b,&num);
        add(a-1,b,num);//约束2 s[b] - s[a-1] >= num; a-1 -> b
    }
}
void SPFA(){
    for(int i = 0; i <= N; i++){
        dis[i] = -INF;
        vis[i] = 0;//判断是否在队列内
        used[i] = 0;//用于判断环
    }
    vis[0] = 1;
    used[0] = 1;
    dis[0] = 0;
    queue<int> q;
    q.push(0);
    while(!q.empty()){
        int u = q.front();
        q.pop();
        vis[u] = 0;
        for(int i = head[u]; i != -1; i = edge[i].Next){
            int v = edge[i].v;
            int w = edge[i].w;
            if(dis[u] + w > dis[v]){
                dis[v] = dis[u] + w;
                if(!vis[v]){
                    vis[v] = 1;
                    used[v]++;
                    if(used[v] > N){//环
                        printf("Bad Estimations\n");
                        return ;
                    }
                    q.push(v);
                }
            }
        }
    }
    printf("%d\n",dis[N]);
}
int main(){
    while(scanf("%d%d",&N,&M) != EOF){
        init();
        getmap();
        SPFA();
    }
    return 0;
}




OBYC自动科目确定整理 WGI是用来重估发货的,通过比较发货时的价格和最新计算的价格,以此将所有差异过账到分配给此事务码的总账科目。是工厂还是公司,一般项目中都是使用工厂,使用工厂的意思就是物料在每个工厂下有一个价格,如果使用公司,则一个公司下的所有工厂都使用一个价格。如果该物料用的是移动平均价,那么该库存依然还存在的情况下,这个价格差异会过账到存货科目上而不会过账到存货的价格差异科目上。用于确定存货评估过账的存货冲抵科目。事务码WGR是用来重估工厂收货的,根据 计算出来的价格差异,把库存的调整过账分配给这个事务码中的总账科目。 阅读详情

相关推荐

Win10家庭版如何添加本地用户和组

在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。

nntxthml的博客 4555

zoj 2770 差分约束系统---2--2022年5月20日

bellman-ford算法 允许负数环,即允许边权值为负数。 只能做判断,不能算出权值。 松弛算法,对边松弛,dijkstra 算法的一些推论。 dist[u] // 表示 从起点到u这个中间过渡点 S(s, vi ) = s( s, v(i-1) ) + w( vi-1, vi ) optimal substructure(最优子结构) d[v0]=0 初始化时候。 #include <stdio.h> int main() { int dis[10], i, k, n, m

m0_51265528的博客 707

React 源码解析 | Reconcile协调过程

上篇讲了React的工作流程,这篇详细的讲一下render过程中的beginWork函数,也就是深度优先创建Fiber树中"递"的过程。beginWork函数传入当前已经创建好的Fiber节点,返回创建/复用的第一个子FIber节点,也就是wip.child在renderRoot中,在开始创建整棵FIber树之前,会先调用prepareRefreshStack创建/复用一个新的HostRootFiber。

weixin_40710412的博客 1219

【ZOJ】2770 Burn the Linked Camp 差分约束

传送门:【ZOJ】2770 Burn the Linked Camp 题目分析: 这题差分约束相对简单了不少啊。 gen j

poursoul 808

四阶龙格库塔法求解一次常微分方程组(python实现)

之前在博客发布了关于使用四阶龙格库塔方法求解一次常微分方程组的文章,由于代码缺少具体的验证,部分朋友可能存在疑问,因此这里打算再重新写一篇博客来验证一下程序的正确性,另外,这里是使用python语言来实现的。

HelloWorldTM的博客 8541

Mplus—验证性因素分析(Confirmatory Factor Analysis, CFA)

介绍一阶和二阶验证性因素分析概况及在Mplus中的操作方法。

m0_54401011的博客 1万+

zoj2770解题报告(差分约束)

题目描述的是刘备攻打陆逊时的连营,输入为大营个数n,每个大营中的最多士兵数Ci,以及若干个三元组i,j,k表示第i个大营到第j个大营的士兵总数最少有k个。求刘备最少有多少士兵。 根据题意,可以找出以下几个不等关系: (1).第i个到第j个大营最小有k个士兵,即s[j]-s[i-1]>=k,s[i-1]-s[j] (2).根据每个大营中最多有c[i]个士兵以及最少有0个士兵,可得s[i]-s[

超级码力 1523

FreeCAD MCP实战:用自然语言驱动AI建模,效率提升10倍

MCP(Model Context Protocol)是一种让AI模型调用外部工具和数据的协议标准,通过标准化通信层解决AI与CAD软件之间的交互难题。其原理是向AI暴露工具清单,AI根据自然语言需求自动选择工具并填充参数。在工程实践中,这一技术显著降低了CAD建模门槛,将重复性操作从手动点击转为语音指令,适用于批量零件生成、参数化设计等场景。FreeCAD作为开源CAD,凭借开放的Python API和脚本化能力,成为落地MCP的理想平台。本文基于FreeCAD MCP的实操经验,分享环境搭建、自然语言建

weixin_31188927的博客 320

差分约束zoj2770

题目链接 题意大概就是给我们nnn个营地,c[i]c[i]c[i]表示第iii个营地最多的人数,第uuu-第vvv个营地一共有www个人。问最少有多少人。 对于这种题型,我们一般做法是首先确定一个数组表示前面iii个营地的总人数 挖掘隐藏条件,每一个营地的人数不可能为负数,所以a[i]−a[i−1]≥0a[i]-a[i-1]\geq0a[i]−a[i−1]≥0 每个营地最多有iii人,我们可以知...

无向秃 347

在 NVIDIA DGX Spark 上运行 vLLM + Open WebUI

DGX Spark 和 GX10 都是性能强大的机器,但只有将它们视为交互式工作站而非精简版服务器,才能真正发挥它们的优势。合理利用共享资源,规划并发工作负载,并谨慎控制内存限制。做到这些,vLLM 与 Open WebUI 的结合就能成为可靠​​的日常工具,而不是脆弱的实验品。DGX平台本身价格不菲,但这并非体验此类硬件的唯一途径。多家厂商提供基于相同核心架构、价格更为亲民的系统,这些系统通常配备容量较小的固态硬盘或配置更为简化,但基本性能并未改变。

iCloudEnd的博客 1749

MicroCap声学仿真介绍(三)-人耳的频率响应

这里需要注意的是,24mm我们会填为”24m”,这里的“m”是毫的意思,24m意思是24e-3,同理7.4mm我们可以填为7.4m,意思是7.4e-3。MicroCap声学库中,已内置“声源”模块和“管”模块,我们需要调用这两个模块,并用连接线将这两个模块连接到一起,完成仿真工作。上图中第一个图是在管的一端输入1Pa(94dBSPL)的信号,管的另一端的不同频率的声压大小的仿真结果。上述的结果跟我们的常识也是符合的。换言之,我们要仿真的目的是在管的一端加1pa的声压时,管的另一端不同频率下的声压分布。

山无忧的博客 1469

ZOJ2770(差分约束系统学习)

Sn代表前n个军营的总人数 3 2 1000 2000 1000 1 2 1100 2 3 13001.每个兵营实际人数不能超过其容量,得到下面不等式S1 - S0 <= 1000S2 - S1 <= 2000S3 - S2 <= 10002.每个兵营的实际人数大于等于0,得到下面不等式S0 - S1 <= 0S1 - S2 <= 0S2 - S3 <=...

weixin_33994429的博客 185

【CASS精品教程】032:CASS11台阶画法案例大全

一、普通无边台阶 二、普通有边台阶 三、普通圆弧无边台阶 四、U型台阶 五、曲线U型台阶 六、L型台阶

智慧空间实验室 7463

zoj 2770 Burn the Linked Camp 差分约束系统

题目大意: 大家都知道,三国时期,蜀国刘备被吴国大都督陆逊打败了。刘备失败的原因是因为刘备的错误决策。他把部队分成几十个大营,每个大营驻扎一队部队,又用树木编成栅栏,把大营连成一片,称为连营。 让我们回到那个时代。陆逊派了很多密探,获得了他的敌人-刘备的信息。通过密探,他知道刘备的部队已经分成几十个大营,这些大营连成一片(一字排开),这些大营从左到右用1...n编号。第i个大...

amily05200的博客 169

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VC中sqlite的使用

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

ZOJ2770 Burn the Linked Camp(差分约束系统)

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=2770 题意:陆逊准备烧刘备的连营,现在已经打探到刘备有n个营地排成一条线,编号1到n,每个营地有一个人数上限Ci。他还打探到了m条情报,每条情报包括i,j,k三个数字,表示从i营到j营的人数至少有k个。现在让你根据情报求出刘备所以的营地加起来最少有多少个士兵。有可能情报有...

hcx11333的博客 249

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Burn the Linked Camp ZOJ - 2770(差分约束系统)

题目 It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu Empire, was defeated by Lu Xun, a general of the Wu Empire. The defeat was due to Liu Bei’s wrong decision...

qq_44714572的博客 219

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

ZOJ 2770 Burn the Linked Camp 差分约束系统

链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1770 题意是陆逊能根据动静看到刘备某几个连续大营里至少有多少士兵,并且给出每个营的容纳极限,问刘备阵营至少有多少兵。 是一道标准的差分约束的题。建立一个虚拟兵营零,容纳是零,作用是把所有的大营人数连接起来。判断能否建立连通图只需要先在输入时判断是否有某段最少士兵数超过

看曙光 1254

Burn the Linked Camp ZOJ 2770 差分约束系统 SPFA

这个题是建立一个差分约束系统的模型,设前i个营的实际总人数为si,则根据题意,可得每个营的人数s[i] - s[i-1] <= c[i], i = 1,2......n他会给m个估计,s[j] - s[i-1] >= k,即s[i-1] - s[j] <= -k.然后还有一个约束就是每个营的人数要大于等于0, 即s[i] - s[i-1] >= 0,也就是说 s[i-1]...

weixin_30487701的博客 122

ZOJ 2770 Burn the Linked Camp(最短路+SPFA+差分约束系统)

Burn the Linked Camp Time Limit: 2 Seconds Memory Limit: 65536 KB It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu Empire, was defeated by Lu Xun,

nealgavin的专栏 642

ZOJ-2770 Burn the Linked Camp---差分约束系统

题目链接: https://vjudge.net/problem/ZOJ-2770 题目大意: 大家都知道,三国时期,蜀国刘备被吴国大都督陆逊打败了。刘备失败的原因是因为刘备的错误决策。他把部队分成几十个大营,每个大营驻扎一队部队,又用树木编成栅栏,把大营连成一片,称为连营。 让我们回到那个时代。陆逊派了很多密探,获得了他的敌人-刘备的信息。通过密探,他知道刘备的部队已经分成几十个大营,这...

weixin_33910385的博客 206

zoj 2770 Burn the Linked Camp (差分约束系统)

// 差分约束系统// 火烧连营 // n个点 m条边 每天边约束i到j这些军营的人数 n个兵营都有容量// Si表示前i个军营的总数 那么 1.Si-S(i-1)<=C[i] 这里 建边(i-1,i) 权值为 C[i]// 2.S(i-1)-Si<=0 这里 建边(i,i-1) 权值为 0// ...

weixin_30345055的博客 73

ZOJ2770-Burn the Linked Camp(差分约束系统)

Burn the Linked Camp Time Limit: 2 Seconds      Memory Limit: 65536 KB It is well known that, in the period of The Three Empires, Liu Bei, the emperor of the Shu Empire, was defeated by Lu Xu

YCH1035235541的专栏 584

ZOJ-2770-Burn the Linked Camp

ZOJ-2770-Burn the Linked Camp http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemId=1770 差分约束系统 #include #include #include #define INF 99999999 #define N 1001 #define E 25000 int n,m,ei; int c

comeace的程序人生 410
上一篇: Problem D. Dwarf Tower(最短路)
下一篇: The Way to Home (模拟)
Guuuuuu老师儿
博客等级 码龄9年 259粉丝 718原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值