“那是一条神奇的天路诶~~把第一个神犇送上天堂” 怕不是某大佬早就A了这题,然鹅我又调了很久很久。。。


好吧就是0/1分数规划,但是跑的dfs的spfa(好像题解说bfs过不了????不知) 发现把spfa写成bool的很难调。。。于是重构了一遍代码。。。

#include<cstdio>
#include<iostream>
#include<cstring>
#define R register int
using namespace std;
const int M=,N=;
const int eps=1E-;
inline int g() {
R ret=; register char ch; while(!isdigit(ch=getchar())) ;
do ret=ret*+(ch^); while(isdigit(ch=getchar())); return ret;
}
int n,m,cnt;
int vr[M],nxt[M],c[M],p[M],fir[N];
double d[N],md;
bool vis[N],flg;
inline void add(int u,int v,int cc,int pp) {vr[++cnt]=v,nxt[cnt]=fir[u],fir[u]=cnt,c[cnt]=cc,p[cnt]=pp;}
inline void spafa(int u) { vis[u]=true;
for(R i=fir[u];i;i=nxt[i]) { R v=vr[i]; register double w=md*p[i]-c[i];
if(d[v]>d[u]+w) { d[v]=d[u]+w;
if(vis[v]) {flg=true; return ;}
else spafa(v);
}
} vis[u]=false;
}
signed main() {
n=g(),m=g();
for(R i=,u,v,c,p;i<=m;++i) u=g(),v=g(),c=g(),p=g(),add(u,v,c,p);
register double l=,r=;
while(l+eps<r) { flg=false; memset(d,,sizeof(d)); memset(vis,,sizeof(vis));
md=(l+r)/; for(R i=;i<=n;++i) if(!flg) spafa(i); else break;
if(flg) l=md+0.01; else r=md-0.01;
} if(l) printf("%.1lf\n",l); else printf("-1\n");
}

2019.04.20 ...已经快5月了。。。

Luogu P1768 天路 0/1分数规划+dfs spfa的更多相关文章

  1. LUOGU P4322 [JSOI2016]最佳团体(0/1分数规划+树形背包)

    传送门 解题思路 一道0/1分数规划+树上背包,两个应该都挺裸的,话说我常数为何如此之大..不吸氧洛谷过不了啊. 代码 #include<iostream> #include<cst ...

  2. P4292-[WC2010]重建计划【长链剖分,线段树,0/1分数规划】

    正题 题目链接:https://www.luogu.com.cn/problem/P4292 题目大意 给出\(n\)个点的一棵树,然后求长度在\([L,U]\)之间的一条路径的平均权值最大. 解题思 ...

  3. LOJ 3089 「BJOI2019」奥术神杖——AC自动机DP+0/1分数规划

    题目:https://loj.ac/problem/3089 没想到把根号之类的求对数变成算数平均值.写了个只能得15分的暴力. #include<cstdio> #include< ...

  4. Bzoj4753/洛谷P4432 [JSOI2016]最佳团体(0/1分数规划+树形DP)

    题面 Bzoj 洛谷 题解 这种求比值最大就是\(0/1\)分数规划的一般模型. 这里用二分法来求解最大比值,接着考虑如何\(check\),这里很明显可以想到用树形背包\(check\),但是时间复 ...

  5. bzoj 4753 [Jsoi2016]最佳团体——0/1分数规划

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4753 0/1分数规划裸题. #include<iostream> #includ ...

  6. P5319-[BJOI2019]奥术神杖【0/1分数规划,AC自动机,dp】

    正题 题目链接:https://www.luogu.com.cn/problem/P5319 题目大意 一个长度为\(n\)的串\(T\),用\(0\sim 9\)填充所有的\(.\). 然后给出\( ...

  7. poj 2976 Dropping tests 0/1分数规划

    0/1分数规划问题,用二分解决!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> # ...

  8. bzoj 3597: [Scoi2014]方伯伯运椰子 0/1分数规划

    3597: [Scoi2014]方伯伯运椰子 Time Limit: 30 Sec  Memory Limit: 64 MBSubmit: 144  Solved: 78[Submit][Status ...

  9. poj2728 Desert King【最优比率生成树】【Prim】【0/1分数规划】

    含[最小生成树Prim]模板. Prim复杂度为$O(n^2),适用于稠密图,特别是完全图的最小生成树的求解.   Desert King Time Limit: 3000MS   Memory Li ...

随机推荐

  1. ACM学习历程—HDU 5534 Partial Tree(动态规划)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534 题目大意是给了n个结点,让后让构成一个树,假设每个节点的度为r1, r2, ...rn,求f(x ...

  2. 如何查看Python 安装位置以及已经安装的库

    如何查看Python 安装位置以及已经安装的库 步骤一: 1. Start 一个command prompt 2. 找到电脑中已经安装的Python 位置: where python 1 打开路径, ...

  3. Poj 1936,3302 Subsequence(LCS)

    一.Description(3302) Given a string s of length n, a subsequence of it, is defined as another string ...

  4. translate 实现元素垂直居中

    <div class="demo2"> <span>about me</span> </div> css .demo2{ width ...

  5. 转载:PLSQL Developer使用技巧整理

    Shortcut(快捷方式): Edit/Undo     Ctrl+Z Edit/Redo     Shift+Ctrl+Z Edit/PL/SQL Beautifier  Ctrl+W   (自定 ...

  6. #410div2D. Mike and distribution

    D. Mike and distribution time limit per test 2 seconds memory limit per test 256 megabytes input sta ...

  7. [hdu2159]FATE二维多重背包(背包九讲练习)

    解题关键:二维约束条件,只需加一维状态即可. 转移方程:$f[j][k] = \max (f[j][k],f[j - w[i]][k - 1] + v[i])$ #include<bits/st ...

  8. Ubuntu12.04安装 vsftpd

    Ubuntu12.04 FTP 的配置   ubuntu安装ftp服务器 1: 安装vsftpd ~$ sudo apt-get install vsftpd 2: 配置vsftpd 2.1 修改vs ...

  9. java连接sqlserver2005数据库

    java连接sqlserver2005数据库   首先得下载驱动程序到微软网站下载Microsoft JDBC Driver 4.0 for SQL Server 下载地址 :http://msdn. ...

  10. p1919 A*B Problem升级版

    传送门 题目 给出两个n位10进制整数x和y,你需要计算x*y. 输入格式: 第一行一个正整数n. 第二行描述一个位数为n的正整数x. 第三行描述一个位数为n的正整数y. 输出格式: 输出一行,即x* ...