Extended Traffic(spfa判负环)

GD32F103RCT6/GD32F303RCT6(6.2)USART串口实战:从寄存器配置到DMA高效传输 本文详细介绍了GD32F103RCT6和GD32F303RCT6的USART串口通信实战,从寄存器配置到DMA高效传输的全过程。通过具体的代码示例和优化建议,帮助开发者快速掌握串口通信的关键技术,提升嵌入式开发效率。特别强调了DMA在高速数据传输中的优势和应用技巧。 阅读详情

Description
Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to convince people avoid shortest routes, and hence the crowded roads, to reach destination, the city authority has made a new plan. Each junction of the city is marked with a positive integer (≤ 20) denoting the busyness of the junction. Whenever someone goes from one junction (the source junction) to another (the destination junction), the city authority gets the amount (busyness of destination - busyness of source)3 (that means the cube of the difference) from the traveler. The authority has appointed you to find out the minimum total amount that can be earned when someone intelligent goes from a certain junction (the zero point) to several others.

Input
Input starts with an integer T (≤ 50), denoting the number of test cases.

Each case contains a blank line and an integer n (1 < n ≤ 200) denoting the number of junctions. The next line contains n integers denoting the busyness of the junctions from 1 to n respectively. The next line contains an integer m, the number of roads in the city. Each of the next m lines (one for each road) contains two junction-numbers (source, destination) that the corresponding road connects (all roads are unidirectional). The next line contains the integer q, the number of queries. The next q lines each contain a destination junction-number. There can be at most one direct road from a junction to another junction.

Output
For each case, print the case number in a single line. Then print q lines, one for each query, each containing the minimum total earning when one travels from junction 1 (the zero point) to the given junction. However, for the queries that gives total earning less than 3, or if the destination is not reachable from the zero point, then print a ‘?’.

Sample Input
2

5
6 7 8 9 10
6
1 2
2 3
3 4
1 5
5 4
4 5
2
4
5

2
10 10
1
1 2
1
2
Sample Output
Case 1:
3
4
Case 2:
?

一张图,u到v的距离定义变为两个城市值差的立方,然后求最短路,如果没有输出?

首先边的权值变了,然后还会有负环,用spfa判断一下,设置一个数组,表示该点入队多少次,一旦大于n次,那就肯定是负环上的点了。

#include<cstdio>
#include<cstring>
#include<iostream>
#include<queue>
#include<vector>
#include<algorithm>
#include<string>
#include<cmath>
#include<set>
#include<map>
#include<vector>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int maxn = 1005;
int head[205],d[205],a[205],n,ans[205];
bool leap[205];
struct Node
{
    int u,v,w,next;
}node[80050];
void add_edge(int u,int v,int w,int tot)
{
    node[tot].u = u;node[tot].v = v;
    node[tot].w = w;
    node[tot].next = head[u];
    head[u] = tot;
}
void spfa()
{
    for(int i = 1;i <= n;i++)leap[i] = false;
    for(int i = 1;i <= n;i++)d[i] = inf;
    for(int i = 1;i <= n;i++)ans[i] = 0;
    d[1] = 0;leap[1] = true;ans[1] = 1;
    queue<int>p;
    p.push(1);
    while(p.size())
    {
        int u = p.front();p.pop();
        leap[u] = false;
        for(int i = head[u];i != -1;i = node[i].next)
        {
            int v = node[i].v;
            if(d[v] > d[u] + node[i].w)
            {
                d[v] = d[u] + node[i].w;
                if(!leap[v])
                {
                    ans[v]++;
                    if(ans[v] <= n)
                    {
                        leap[v] = true;p.push(v);
                    }
                    else
                    {
                        leap[v] = true;
                    }
                }
            }
        }
    }
}
int main()
{
    #ifdef LOCAL
    freopen("C:\\Users\\巍巍\\Desktop\\in.txt","r",stdin);
    //freopen("C:\\Users\\巍巍\\Desktop\\out.txt","w",stdout);
    #endif // LOCAL
    int t,kase = 1;
    scanf("%d",&t);
    while(t--)
    {
        int cnt = 1;
        memset(head,-1,sizeof(head));
        scanf("%d",&n);
        for(int i = 1;i <= n;i++)
            scanf("%d",&a[i]);
        int m;
        scanf("%d",&m);
        for(int i = 1;i <= m;i++)
        {
            int u,v;
            scanf("%d%d",&u,&v);
            int w = (a[v] - a[u])*(a[v] - a[u])*(a[v] - a[u]);
            add_edge(u,v,w,cnt++);
        }
        spfa();
        int q;
        scanf("%d",&q);
        printf("Case %d:\n",kase++);
        for(int i = 1;i <= q;i++)
        {
            int x;
            scanf("%d",&x);
            if(d[x] == inf || leap[x] || d[x] < 3)
                printf("?\n");
            else
                printf("%d\n",d[x]);
        }
    }
    return 0;
}
161、车载环视系统的ISP多路同步架构——海思Hi3516DV300的4路鱼眼校正与拼接的帧同步误差控制 文章摘要: 针对海思Hi3516DV300车载环视系统四路鱼眼摄像头拼接画面动态撕裂问题,分析发现根本原因为帧同步误差(部分通道帧起始时间差1.2ms)。关键解决措施包括:1)通过VI通道主从同步模式(MASTER/SLAVE)结合软件补偿控制帧延迟;2)优化VPSS通道帧率锁定与丢帧策略确保拼接时序一致;3)严格校准鱼眼校正LUT参数与产线标定数据匹配;4)建议采用硬件同步信号(如sensor的FSIN引脚)降低软件同步压力。调试阶段需通过示波器直接测量sensor VSYNC信号,量产时需注意动态切换分 阅读详情

相关推荐

【项目实战】小智AI MCP协议在IoT设备控制中的深度应用解析

本文深度解析小智AI MCP协议在IoT设备控制中的应用实践。通过MCP协议作为AI与物联网设备的翻译桥梁,实现大语言模型与ESP32等硬件的无缝通信。文章详细介绍了环境搭建、工具注册、消息路由机制,并以语音控制RGB灯光系统为例展示完整开发流程,为AIoT开发者提供实用指南。

oauth7security的博客 824

spfa判断负环

求负环的常用方法,基于SPFA 方法 1:统计每个点入队的次数,如果某个点入队n次,则说明存在负环 方法 2:统计当前每个点的最短路中所包含的边数,如果某点的最短路所包含的边数大于等于n,则也说明存在环 在SPFA的基础上 加一个cnt数组来记录当前 x 点到 虚拟源点 最短路的边数,初始每个点到虚拟源点的距离为0,只要他能再走n步,即 cnt[x] >= n ,则表示该图中一定存在负环,由于从虚拟源点到x至少经过n条边时,则说明图中至少有n + 1个点,表示一定有点是重复使用 C++代码

weixin_46047677的博客 2233

Dify与钉钉轻量级集成:打造企业内部AI助手

企业级聊天机器人开发已成为提升内部协同效率的关键技术。其核心原理在于通过API集成,将AI模型能力与即时通讯平台无缝连接,实现智能问答与自动化流程。从技术价值看,这种集成方案能够显著降低AI应用落地门槛,将前沿的AI能力快速转化为实际生产力。在应用场景上,它尤其适用于HR答疑、IT技术支持、产品知识库等高频内部服务场景。本文聚焦于Dify与钉钉的轻量级集成方案,通过Stream模式实现高效消息处理,并利用AI卡片支持流式输出,为企业构建体验自然的智能机器人提供了完整实践路径。该方案特别强调配置简化与部署便捷

weixin_27155667的博客 696

SPFA判负环

知识点系列之---SPFA判负环

forever_dreams的博客 1万+

仿真每日一练 | 有限元模态分析详解

结构的振动一直是工业领域产品分析的重点,在振动的仿真分析中,模态分析是其最基本的分析类型,通过研究结构的固有频率和振型对产品的设计提供指导。2.2、在interaction模块,通过special->Spring,在各点之间分别创建弹簧单元,弹簧刚度为1000。2.1、在interaction模块,创建两个RP点,与两侧RP点各间隔100大小,如图3所示;其中M、K、C均为n*n的矩阵,s、x、v为n*1的矢量,n为系统自由度数量。3、在Assembly模块创建装配体,两点之间的距离为100,如图2所示;

ansysxuexizhe的博客 1655

3.摄像头组件- CVP (ISP)

本文介绍 车载摄像头组件-ISP

2401_83458819的博客 1614

SPFA算法详解——判断负权环

SPFA(Shortest Path Faster Algorithm)(队列优化)算法是求单源最短路径的一种算法。它是在Bellman-ford算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。 Bellman-Ford算法虽然可以处理负环,但是时间复杂度为O(ne),e为图的边数,在图为稠密图的时候,是不可接受的。 Bellman-Ford算法的缺点在于,当某一个...

anlian523的博客 1万+

RK3588 部署 YOLO26-Pose 人体姿态检测:Windows Docker 环境全流程

YOLO26-Pose 在 RK3588 上的部署流程是 PC 端 ONNX 导出 → RKNN 转换(INT8 量化)→ 板端推理。INT8 量化后 YOLO26s-Pose 约 35ms,YOLO26n-Pose 约 15ms,可以覆盖实时姿态检测的需求。后处理是 Python 实现的常见瓶颈——如果帧率不达标,先用 npy 保存模型输出在 PC 上验证解析逻辑的正确性,确认无误后再迁移到 C++ 实现。

m0_64661770的博客 542

负环——spfa判断负环的两种方式

统计当前每个点的最短路的边数,如果存在负环,负环上的某一个点的最短路边数一定会是正无穷,只要边数超过n(节点数),就可以判断存在负环。图并不是全部连通,存在单独一个点没有入度和出度。这时候就不能只从某一个点进去找,有可能根本更新不到其他点。统计每个点的入队次数,如果某一个点入队了n次,则说明存在负环。但以上这个方法被硬卡数据有可能超市,可以尝试。这时候可以假设一个虚拟源点与所有的点都相连,并且距离为零。一次把所有点入队,后续更新就可以检测出负环。

测试 1988

手把手教你学Simulink--基于Simulink的机械臂工业装配任务仿真建模

特点高精度要求:装配过程通常需要非常高的位置精度。多步骤操作:一个完整的装配任务可能包含多个连续的子任务,如抓取零件、移动到特定位置、装配等。动态环境:工作环境可能是动态变化的,例如其他机器人或人员在同一空间内工作。挑战复杂性管理:需要处理复杂的运动学和动力学问题,以及可能的碰撞避免。实时性:某些应用场景下需要快速响应以保证生产效率。集成度:需要与其他系统(如传感器、PLC等)无缝集成。首先明确要模拟的装配任务内容。零件的位置和尺寸。装配顺序。

MHD0815的博客 239

基于Simulink的固态变压器(SST)多级协同控制

本文基于Simulink平台,详细介绍了固态变压器(SST)多级协同控制的建模与仿真方法。针对SST三级架构(AC-DC、DC-DC、DC-AC)存在的级间耦合问题,提出了纵向解耦与横向联动的协同控制策略。通过搭建10kV/400V级联型SST系统模型,实现了输入电压波动±20%或负载0-100%跳变时直流母线电压波动小于2%的控制目标。文章详细讲解了Simulink建模步骤、控制算法推导及工程部署建议,包括功率前馈控制、虚拟惯性算法等关键技术。仿真结果表明,该协同控制方案能有效抑制负载突变时的电压波动,为

MHD0815的博客 214

图论——spfa判负环

图G中存在一个回路,该回路边权之和为负数,称之为负环。:统计每个点入队次数, 如果某个点入队n次, 说明存在负环。证明:一个点入队n次,即被更新了n次。一个点每次被更新时所对应最短路的边数一定是递增的,也正因此该点被更新n次那么该点对应的的最短路长度一定大于等于n,即路径上点的个数至少为n+1。根据抽屉原理,路径中至少有一个顶点出现两次, 也就是路径中存在环路。而算法保证只有距离减少才会更新, 所以环路权值之和为负数。:统计从起点到任意顶点最短路经过的边数, 若某点对应边数cnt≥n。

m0_70897036的博客 1613

Livox激光雷达传感器在Python3中的完整驱动程序:深入剖析OpenPyLivox库的实现和应用

当我们提到激光雷达或激光扫描技术时,Livox激光雷达传感器无疑是业界的佼佼者。尽管Livox提供了基于C++的官方软件和API,但现在,有了OpenPyLivox (OPL) 库,Python开发者们也能够轻松地接入和控制这些高级的激光雷达设备。

qq_38334677的博客 1001

Extended Traffic SPFA判负环

Extended Traffic 解法: 因为存在负环,则需要使用SPFA求最短路,跑一遍模板,记录负环所能达到的点集 学习博客 #include<bits/stdc++.h> using namespace std; int n,m,q; int a[202]; struct node { int v,w; }; vector<node > G[202]; int inq[202];//当前是否在队列 int num[202];//进入队列次数 当进入队列次数大.

郭源潮 174

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

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

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

1074 - Extended Traffic(spfa+判负环)

题目大意:给你n个顶点,和m条边,边权计算(终点-起点)的立方,然后要你求最短路,如果不存在这条路或者这条路权值<3,输出?。 思路:因为(终点-起点)的立方有可能会出现负数因此我们不但要找最短路还需要判负环,因为有负数dijkstra就用不了了,这里用spfa找负环,用dfs把负环都染色。 代码: #include<iostream> #include<cstring...

weixin_43736492的博客 236

数学建模模型总结

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

LightOJ 1074 Extended Traffic(SPFA判负环)

https://vjudge.net/problem/LightOJ-1074 手动把和负环相连的点设置为答案为?,因为无限循环负环必然可以使得奖励为负数 #include<iostream> #include<cstring> #include<cstdio> #include<algorithm> #include<vector&gt...

STOP 261

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SPFA判负环-LightOJ-1074-Extended Traffic

Extended Traffic Time Limit:2000MS Memory Limit:32768KB 64bit IO Format:%lld & %llu SubmitStatusPracticeLightOJ 1074 Description Dhaka city is getting crowded and noisy day by day. Certain

懒鬼的私人泳池 521

Light OJ 1074:Extended Traffic(spfa判负环)

Extended Traffic 题目链接:https://vjudge.net/problem/LightOJ-1074 Description: Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to co...

dft539533的博客 108

LightOJ - 1074 Extended Traffic——spfa判负环

这题判负环后需要用dfs把整个负环标记一下,WA到爆炸的同学尝试把I64改成ll或者直接用int #include #include #include #include #include using namespace std; const int INF = 0x3f3f3f3f; const int maxn = 250; bool vis[maxn], judge[maxn];

hao_zong_yin的博客 506

LightOJ - 1074 Extended Traffic(spfa+判负环)

Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to convince people avoid shortest routes, and hence the crowded roads, to reach destinat...

muyu__的博客 325

LightOJ 1074 – Extended Traffic 【SPFA判负环】

题目链接:http://www.lightoj.com/volume_showproblem.php?problem=1074给你一个有向图,求原点1到给定询问点的最短距离是多少,由于可能存在负环,不能用dij,如果点在负环中,则无解,dfs判环。代码:#include <iostream> #include <stdio.h> #include <string.h> #include <algor

mfcheer 545

LightOJ - 1074 Extended Traffic 【spfa判负环 + dfs】

传送门 题意:给定(n, m)有向图, 每个点有点权, u->v的代价是(a[v]-a[u])^3, 给出q个询问, 问从1出发到询问的该点的最小代价, 如果代价<3或者不能到达该点输出’?’.思路: 很明显这幅图是可能有负权环, 在负权环中的点代价肯定是无穷小, 负权环中的点可以到达的点也是无穷小, 所以我们用spfa跑最短路, 每跑到一个负权环我们就dfs其中的任意一个点可以到达的点并标记他们

Anxdada -- 我等风来也等你 451

LightOJ - 1074 Extended Traffic(SPFA判负环)

/* 题意:有n个城市,每一个城市有一个拥挤度ai, 下面m行数据(a,b)表示的是a,b两个位置同时能够得到a到b所花的时间为(a-b)^3,然后再给q个数据x,问从第一个城市到达第x个城市所花的时间, 如果不能到达,或者时间小于3输出?否则输出所花的时间 思路;这个题目是存在负环的,所以常规的判别负环是不能够 get over it 所以我们可以用SPFA算法来搞一波事情;只要标记的位置访问的次

布呗之路 644

O - Extended Traffic(SPFA判负环)

Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to convince people avoid shortest routes, and hence the crowded roads, to reach destinati

wtml 452

O - Extended Traffic(最短路+SPFA判负环+dfs找负环)

Dhaka city is getting crowded and noisy day by day. Certain roads always remain blocked in congestion. In order to convince people avoid shortest routes, and hence the crowded roads, to reach destination, the city authority has made a new plan. Each juncti

qq_60008503的博客 305

LightOJ - 1074-Extended Traffic (spfa判负环)

原题地址: 题意,1为源点,(u,v)的距离为(m[v] -m[ u])3的,如果从源点到该点的距离小于3则输出?,否则输出距离。 如果存在负环,那负环上的点到源点的距离肯定小于3. #include #include #include #include #define INF 1<<31-1 using namespace std; int b[210],n; int dis[210];

z956281507的博客 999
上一篇: Tram(转换为最短路模型)
下一篇: The Shortest Path in Nya Graph(神一样的建图)
Techay
博客等级 码龄11年 11粉丝 174原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值