【洛谷P1768】天路【负环】【二分】【数论】

OpenClaw前端去AI化:四层人设基建实战指南 在AI应用快速落地的今天,'前端像AI'已成为损害用户信任的关键瓶颈——这并非设计缺陷,而是缺乏语义化HTML结构、可编程CSS定制、服务端人设注入与部署层可信固化所致。本文围绕OpenClaw框架,系统解析如何通过data属性锚定地域/角色/时效、Tailwind语义化分层、Next.js SSR动态注入真实运营信息、Cloudflare Pages构建时固化版本与团队标识等工程化手段,将AI生成页面转化为具备专业感、地域性与人工温度的真实业务载体,适用于知识库、客服页、内部工具等轻交互强信任场景。 阅读详情

题目大意:

题目链接:https://www.luogu.org/problemnew/show/P1768
一个有向图,每条边有权值 v [ i ] , p [ i ] v[i],p[i] v[i],p[i],你需要找到一个环,使得 ∑ v [ i ] ∑ p [ i ] \frac{\sum v[i]}{\sum p[i]} ∑p[i]∑v[i]​尽量大。


思路:

看到 ∑ v [ i ] ∑ p [ i ] \frac{\sum v[i]}{\sum p[i]} ∑p[i]∑v[i]​,很容易想到是一道01分数规划问题。
我们设 a n s = m a x { ∑ v [ i ] ∑ p [ i ] } ans=max\{\frac{\sum v[i]}{\sum p[i]}\} ans=max{∑p[i]∑v[i]​},那么对于任意的 ∑ v [ i ] ∑ p [ i ] \frac{\sum v[i]}{\sum p[i]} ∑p[i]∑v[i]​,都有
∑ v [ i ] ∑ p [ i ] ≤ a n s \frac{\sum v[i]}{\sum p[i]}\leq ans ∑p[i]∑v[i]​≤ans
移项得
∑ v [ i ] ≤ a n s × ∑ p [ i ] \sum v[i]\leq ans\times \sum p[i] ∑v[i]≤ans×∑p[i]
再次移项得
∑ ( p [ i ] × a n s ) − ∑ v [ i ] ≥ 0 \sum(p[i]\times ans)-\sum v[i]\geq 0 ∑(p[i]×ans)−∑v[i]≥0
也就是说
∑ ( p [ i ] × a n s − v [ i ] ) ≥ 0 \sum(p[i]\times ans-v[i])\geq 0 ∑(p[i]×ans−v[i])≥0
于是我们可以把所有的边的边权更改为 p [ i ] × a n s − v [ i ] p[i]\times ans-v[i] p[i]×ans−v[i],只要现在图中有任意一个环得边权和为负数,那么 a n s ans ans就是不符合要求的。
那就二分 a n s ans ans。题目中说了保证答案不超过200,于是时间复杂度就是 O ( n m   l o g ( 200 ) ) O(nm\ log(200)) O(nm log(200))。


温馨提示:
  • 这道题卡 b f s bfs bfs的 s p f a spfa spfa。请使用 d f s dfs dfs版本的 s p f a spfa spfa。
  • 图是不一定连通的。所以可以建立一个超级源点0,连向所有的边。 s p f a spfa spfa直接从0开始跑。

代码:

#include <cstdio>
#include <queue>
#include <cstring>
using namespace std;

const int N=7010;
const int M=30010;
int n,m,x,y,v,p,tot,head[N];
double l,r,mid,dis[N];
bool vis[N];

struct edge
{
    int to,next;
    double v,p,dis;
}e[M];

void add(int from,int to,int v,int p)
{
    e[++tot].to=to;
    e[tot].v=(double)v;
    e[tot].p=(double)p;
    e[tot].next=head[from];
    head[from]=tot;
}

bool spfa(int x)  //dfs版spfa1求负环
{
    vis[x]=1;
    for (int i=head[x];~i;i=e[i].next)
    {
        int y=e[i].to;
        if (dis[y]>dis[x]+e[i].dis)
        {
            if (vis[y]) return 0;
            //dfs版不用cnt数组,如果访问到一个点时,这个点还在栈里,说明有负环
            dis[y]=dis[x]+e[i].dis;
            vis[y]=1;
            if (!spfa(y)) return 0;
        }
    }
    vis[x]=0;
    return 1;
}

int main()
{
    memset(head,-1,sizeof(head));
    scanf("%d%d",&n,&m);
    for (int i=1;i<=m;i++)
    {
        scanf("%d%d%d%d",&x,&y,&v,&p);
        add(x,y,v,p);
    }
    for (int i=1;i<=n;i++)
        add(0,i,0,0);
    l=0;
    r=200;
    while (r-l>0.01)
    {
        mid=(l+r)/2;
        for (int i=1;i<=m;i++)
            e[i].dis=e[i].p*mid-e[i].v;
        for (int i=0;i<=n;i++)
            dis[i]=1e9,vis[i]=0;
        dis[0]=0;
        if (spfa(0)) r=mid;
            else l=mid;
    }
    if (l==0) printf("-1");
        else printf("%0.1lf",l);
    return 0; 
} 
FSMC驱动LCD显示屏学习2 液晶显示器,简称 LCD(Liquid Crystal Display)相对于上一代 CRT 显示器 (阴极射线管显示器),LCD显示器具有功耗低、体积小、承载的信息量大及不伤眼的优点,因而它成为了现在的主流电子显示设备液晶是一种介于固体和液体之间的特殊物质,它是一种有机化合物,常态下呈液态,但是它的分 子排列却和固体晶体一样非常规则,因此取名液晶。 阅读详情

相关推荐

ESP8266+ITR8307实战:如何用反射式光电管实现5cm远距离检测(附避坑指南)

本文详细介绍了如何利用ESP8266的ADC功能与ITR8307反射式光电管,通过调制解调、硬件电路优化及软件同步采样策略,实现5cm稳定远距离检测。文章提供了完整的硬件设计、代码实现与调优避坑指南,有效解决了环境光干扰与信号衰减难题,适用于智能车、自动化等需要可靠非接触检测的项目。

rgv234567的博客 263

天路

问路。

写雨飞荷 梦响水香 593

FreeRTOS实战:如何避免HAL_Delay在高优先级中断中的坑(附TIM6配置指南)

本文深入剖析了在STM32 FreeRTOS项目中,于高优先级中断内调用HAL_Delay函数导致系统假死的根本原因——SysTick时基被FreeRTOS占用且优先级最低。文章提供了治本方案:通过配置TIM6作为独立且最高优先级的HAL时基,实现与FreeRTOS系统心跳的解耦,并附上详细的CubeMX配置与代码移植指南,确保系统实时性与稳定性。

weixin_29230059的博客 64

洛谷 P3385 【模板】负环

洛谷 P3385 【模板】负环

qq_17807067的博客 481

Windows 11 上 WSL2 安装 Ubuntu 22.04 保姆级教程(含桌面环境配置)

本文提供在Windows 11上通过WSL2安装Ubuntu 22.04并配置桌面环境的详细教程。涵盖WSL2核心安装、性能调优、Xfce桌面环境部署以及开发环境集成,帮助开发者构建高效、无缝的Windows-Linux混合开发工作站。

Jerry的专栏 633

华为OD机试 - 小火车最多人时所在园区站点(Java 2024 E卷 100分)

刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、发现新题目,随时更新,全天优快云在线答疑。

学Java,找哪吒 995

luogu P1768 天路

题目描述 “那是一条神奇的天路诶~,把第一个神犇送上天堂~”,XDM先生唱着这首“亲切”的歌曲,一道猥琐题目的灵感在脑中出现了。 和C_SUNSHINE大神商量后,这道猥琐的题目终于出现在本次试题上了,旨在难到一帮大脑不够灵活的OIer们(JOHNKRAM真的不是说你……)。 言归正传,小X的梦中,他在西藏开了一家大型旅游公司,现在,他要为西藏的各个景点设计一组铁路线。但是,小X发...

agtvo48266的专栏 232

提示工程ROI计算模板:架构师私藏Excel表(含自动计算)

花3个人力优化提示词,到底能带来多少实际收益?“这个提示工程项目值得做吗?投入10万成本,多久能回本?“不同LLM应用的提示词优化优先级怎么排?全凭经验拍脑袋?当前90%的企业在提示工程投入上缺乏标准化的量化评估方法,导致资源浪费(盲目投入无回报项目)或错失机会(低估高价值优化点)。ROI = (总收益 - 总成本) / 总成本 × 100%对于提示工程,总成本=显性成本+隐性成本,总收益=直接收益+间接收益(后文会详细拆解)。提示工程的价值不是“玄学”,而是可以用数据量化的投资行为。本文分享的。

AI开发架构师 1073

【图论】C006_洛谷模板题:负环(SPFA / Bellman-Ford / 链式向前星)

一、题目描述 寻找一个从顶点 1 所能到达的负环,负环定义为:一个边权之和为负的环。 输入格式 本题有多组数据 第一行一个正整数 TT 表示数据组数,对于每组数据: 第一行两个正整数 N,M,表示图有 N 个顶点,M 条边 接下来 MM 行,每行三个整数 a, b, wa,b,w,表示a \rightarrow ba→b 有一条权值为 ww 的边(若 w<0w<0 则为单向,否则双...

无敌兔0x01 600

当SLAM遇上FPGA:打造一个会“硬件加速”的激光雷达SLAM系统

点云数据的运动畸变校正特征点提取与匹配、以及ICP迭代最近点配准。在传统方案中,我们通常用ARM核完成所有计算。但点云配准中的最近邻搜索(KD-Tree)需要大量分支判断,CPU处理起来效率很低;而ICP中的矩阵分解(SVD)虽然计算量大,但非常适合并行化。ZYNQ的特殊之处在于它把ARM(PS端)和FPGA(PL端)集成在同一颗芯片上。ARM擅长跑操作系统、处理复杂逻辑和调度,FPGA擅长做高吞吐量的并行计算。两者之间通过AXI总线高速互联,数据交换延迟只有几十个时钟周期。

QQ_778132974的博客 374

Objective-C实现人工势场法(附完整源码)

Objective-C实现人工势场法(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 426

图论:负环 / 01分数规划 / 差分约束 知识整理(附题)

图论相关的 负环 / 01分数规划 / 差分约束 问题,考察了图与数学知识。其中常用、共通的spfa算法,运算的时间常常会不稳定,解决这些问题需要一些经验之道。除此之外的差分约束,也相当考察观察发现关系、推导数学公式的能力。

酒姬民的博客 708

按照CANoe模板制作seed&&key.dll

在canoe进行诊断测试的时候,在0x27服务中需要制作一个dll文件。可在canoe的诊断中进行加载,也可用于diva的自动化测试。 本文按照canoe提供的KeyGenDll_GenerateKeyEx模板制作。 KEYGENALGO_API VKeyGenResultEx GenerateKeyEx( const unsigned char* iSeedArray, /* Array for the seed [in] */ unsigned int

天赐好车的博客 6520

#0/1分数规划,SPFA,负环#洛谷 1768 天路

题目链接 分析 可以发现,这是一道0/1分数规划的题目,需要二分答案,然后判定是否存在负环,所以说bfs貌似不高效,那就用dfs吧,若二分答案为0,即不合法 代码 #include <cstdio> #include <cctype> #include <cstring> #define rr register using namespace std; st...

lemondinosaur的博客 265

android 蓝牙通讯demo

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

VB摄像头监控

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

2020.05.30日常总结

洛谷P1768 天路\color{green}{\texttt{洛谷P1768 天路}}洛谷P1768 天路 [Problem]\color{blue}{\texttt{[Problem]}}[Problem] 给你一个含有 nnn 个点 mmm 条有向边的图,每条边有两个值:vvv 和 ppp,分别表示这条路的价值和花费。 一条路的收益定义为所有边的 vvv 值的和比上 ppp 值的和。 求一条没有相同的边的环,使得其收益最大。 [Solution]\color{blue}{\te

ZHUYINGYE_123456的博客 201

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

洛谷P1768 天路

题目描述“那是一条神奇的天路诶~,把第一个神犇送上天堂~”,XDM先生唱着这首“亲切”的歌曲,一道猥琐题目的灵感在脑中出现了。和C_SUNSHINE大神商量后,这道猥琐的题目终于出现在本次试题上了,旨在难到一帮大脑不够灵活的OIer们(JOHNKRAM真的不是说你……)。言归正传,小X的梦中,他在西藏开了一家大型旅游公司,现在,他要为西藏的各个景点设计一组铁路线。但是,小X发现,来旅游的游客都很挑...

qq_41510496的博客 262

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

洛谷 P1768 天路

P1768 天路 题目描述 “那是一条神奇的天路诶~,把第一个神犇送上天堂~”,XDM先生唱着这首“亲切”的歌曲,一道猥琐题目的灵感在脑中出现了。 和C_SUNSHINE大神商量后,这道猥琐的题目终于出现在本次试题上了,旨在难到一帮大脑不够灵活的OIer们(JOHNKRAM真的不是说你……)。 言归正传,小X的梦中,他在西藏开了一家大型旅游公司,现...

weixin_30432179的博客 86

2018年5月27号(spfa判断负环)

  一开始并不懂得真正判断负环,自从写了这道题才有点感觉:这道题就是洛谷的p1768天路。   我主要想说如何判断负环:   首先一个最普通的做法: 1 void spfa(int x) 2 { 3 vis[x]=true; 4 for(int i=head[x];i;i=e[i].next) 5 { 6 if(di...

weixin_30898109的博客 107

Luogu P1768 天路 0/1分数规划+dfs spfa

“那是一条神奇的天路诶~~把第一个神犇送上天堂” 怕不是某大佬早就A了这题,然鹅我又调了很久很久。。。 好吧就是0/1分数规划,但是跑的dfs的spfa(好像题解说bfs过不了????不知) 发现把spfa写成bool的很难调。。。于是重构了一遍代码。。。 #include<cstdio> #include<iostream> #include&l...

161

图论--单源最短路

# 图论--单源最短路dijkstra(优先队列优化)spfa(bfs版)spfa(dfs版,没听说过吧)bellman-ford 因为以前太懒,所以前没发什么博客。今天本人第一天写博客吧,hh 因为本人擅长图论就从图论开始吧。 说到图论,不得不提最短路问题。 简单看看最短路吧hh dijkstra(优先队列优化) void dijkstra(int s) { memset(d,0x7f,sizeof(d)); memset(v,0,sizeof(v)); d[s]=0; q.push(make_p

lcl1234567890lcl的博客 289

【洛谷】P3385 【模板】负环

题目地址: https://www.luogu.com.cn/problem/P3385 题目描述: 给定一个nnn个点的有向图,请求出图中是否存在从顶点111出发能到达的负环。负环的定义是:一条边权之和为负数的回路。 输入格式: 本题单测试点有多组测试数据。输入的第一行是一个整数TTT,表示测试数据的组数。对于每组数据的格式如下:第一行有两个整数,分别表示图的点数nnn和接下来给出边信息的条数mmm。接下来mmm行,每行三个整数u,v,wu,v,wu,v,w。若w≥0w≥0w≥0,则表示存在一条从uuu至

数学、算法爱好者的博客 1055

洛谷 3385 【模板】负环

一道判断负环的模板题。 这里主要介绍三种判断负环的方法。 1.BFS_SPFA方法A 我们可以通过记录每个点的入队次数来判断负环是否存在,不难看出:一个点的入队次数一旦超过n次,则图中一定有负环存在。效率不高,不再提供代码。 2.BFS_SPFA方法B 我们可以记录每个点到源点最短路上经过了几个点,一旦超过n个,则负环一定存在,正确性比较显然、不再赘述。 这个方法为什么会比方法A效...

weixin_30437847的博客 136

【模板】负环(洛谷P3385)

P3385 【模板】负环 题目链接 这道题就是一个SPFA纯板子题,但是前提是要理解SPFA的工作原理,SPFA与Dijkstra还是有很大不同,SPFA用的是队列,而Dijkstra用的是优先队列;还有两者对点的标记,也是不相同的,SPFA要对一个点进行最多n-1次的判断,而Dijkstra只需一次。因为Dijkstra用的是贪心加优先队列,每次第一个出来的必定是最短的,而SPFA不是。这道题的...

不知所云的博客 225

Wormholes POJ - 3259 (floyd判负环||spfa判负环||bellman_ford判负环)

传送门 题解:第一种使用floyd判负环,只需要在算法过程多一个判读dp[i][i]是否为负数即可。 附上代码: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;cstring&gt; using namespace std; const int maxn=505; int min(int a,int b) {...

肘子的博客 541

最短路(判负环

void Add(int u,double cost,int v)//邻接表存储关系 { w[top] = cost; Key[top] = v; next[top] = head[u]; head[u] = top++; } bool SPFA(int x) { memset(vis,false,sizeof...

airen6935的博客 341

洛谷3199(01分数规划、判负环)

最小平均值的环。二分答案以后根据式子将问题转化为:每条边减去mid后是否存在负环,若全是正环说明ans给小了,存在负环则说明存在一个更小的ans。 get到一个新的判负环手法。 #include <cstdio> #include <cstring> #include <algorithm> #include <vector> #defin...

190
上一篇: 【JZOJ4256】平均数【二分】
下一篇: 【洛谷P3275】糖果【差分约束】【负环】
stoorz1023
博客等级 码龄9年 101粉丝 595原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值