洛谷4951 地震

 #include<iostream>
#include<cstdio>
#include<algorithm>
#define go(i,a,b) for(register int i=a;i<=b;i++)
#define ll long long
#define db long double
#define M 10001
#define N 401
#define inf 1e15
#define eps 1e-12
using namespace std;
ll read()
{
ll x=,y=;char c=getchar();
while(c<''||c>'') {if(c=='-') y=-;c=getchar();}
while(c>=''&&c<='') {x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
struct node{int u,v;ll t,c;db w;}a[M];
ll n,m,f,fa[N];
int find(int x){if(x==fa[x])return x;return fa[x]=find(fa[x]);}
bool cmp(node x,node y){return x.w<y.w;}
bool ck(db x)
{
go(i,,m) a[i].w=a[i].c+a[i].t*x/1e7;
db ans=f+eps;//这里加eps是为了保证精度
//-----------------------------
sort(a+,a+m+,cmp);
go(i,,n) fa[i]=i;
go(i,,m)
{
int uf=find(a[i].u),vf=find(a[i].v);
if(uf==vf) continue;
fa[uf]=vf;
ans-=a[i].w;
if(ans<)return ;
}//---------------------------最小生成树
return ;
}
int main()
{
freopen("quake.in","r",stdin);
freopen("quake.out","w",stdout);
n=read();m=read();f=read();
db l=,r=inf;
go(i,,m) a[i].u=read(),a[i].v=read(),a[i].c=read(),a[i].t=read();
if(!ck()) {printf("0.0000");return ;}
while(l<r)
{
db mid=(l+r)/;
if(ck(mid+)) l=mid+;
else r=mid;
}
printf("%.4Lf",l/(db)1e7);
return ;
}

bzoj1816扑克牌

 #include<iostream>
#include<cstdio>
#define go(i,a,b) for(register int i=a;i<=b;i++)
#define ll long long
#define M 1000001
#define inf 1e12
using namespace std;
ll read()
{
ll x=,y=;char c=getchar();
while(c<''||c>'') {if(c=='-') y=-;c=getchar();}
while(c>=''&&c<='') {x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
int n,m;
ll ct,c[M],l,r=inf;
bool ck(ll x)
{
ll nm=min(x,(ll)m);
go(i,,n){if(c[i]<x)nm=nm-(x-c[i]);if(nm<)return ;}
return ;
}
int main()
{
freopen("cards.in","r",stdin);
freopen("cards.out","w",stdout);
n=read();m=read();
go(i,,n) c[i]=read();
while(l<r)
{
ll mid=(l+r)>>;
if(ck(mid+)) l=mid+;
else r=mid;
}
printf("%lld",l);
return ;
}

洛谷3199最小圈

 #include<iostream>
#include<cstdio>
#define R register
#define go(i,a,b) for(R int i=a;i<=b;i++)
#define db long double
#define M 10001
#define N 3001
#define inf 1e10
#define eps 1e-10
using namespace std;
int rd()
{
int x=,y=;char c=getchar();
while(c<''||c>''){if(c=='-')y=-;c=getchar();}
while(c>=''&&c<=''){x=(x<<)+(x<<)+c-'';c=getchar();}
return x*y;
}
int n,m,b[N],cnt;
bool in[N],flag;
db dis[N];
struct node{int v,nt;db w;}a[M];
void add(int u,int v,db w){a[++cnt].nt=b[u];a[cnt].v=v;a[cnt].w=w;b[u]=cnt;}
void ck(int u,db x)
{
in[u]=;
for(R int i=b[u];i;i=a[i].nt)
{
int v=a[i].v;db w=a[i].w;
if(dis[u]+w-x<dis[v])
{
if(in[v]||flag){flag=;return;}
dis[v]=dis[u]+w-x;
ck(v,x);
}
}
in[u]=;
}
int main()
{
n=rd();m=rd();
go(i,,m){int u=rd(),v=rd();db w;scanf("%Lf",&w);add(u,v,w);}
db l=-inf,r=inf;
while(r-l>eps)
{
db mid=(l+r)/;flag=;
go(i,,n){in[i]=;dis[i]=;}
go(i,,n){ck(i,mid);if(flag)break;}
if(flag) r=mid;
else l=mid;
}
printf("%.8Lf",l);
return ;
}

洛谷4951 地震 bzoj1816扑克牌 洛谷3199最小圈 / 01分数规划的更多相关文章

  1. 洛谷P3199 [HNOI2009]最小圈(01分数规划)

    题意 题目链接 Sol 暴力01分数规划可过 标算应该是这个 #include<bits/stdc++.h> #define Pair pair<int, double> #d ...

  2. 【洛谷 P3199】 [HNOI2009]最小圈(分数规划,Spfa)

    题目链接 一开始不理解为什么不能直接用\(Tarjan\)跑出换直接求出最小值,然后想到了"简单环",恍然大悟. 二分答案,把所有边都减去\(mid\),判是否存在负环,存在就\( ...

  3. 【洛谷 P3705】 [SDOI2017]新生舞会(费用流,01分数规划)

    题目链接 看到这题我想到了以前做过的一题,名字记不清了,反正里面有"矩阵"二字,然后是道二分图匹配的题. 经典的行列连边网络流. 第\(i\)行和第\(j\)列连边,费用为\(b[ ...

  4. 洛谷P2868 [USACO07DEC]观光奶牛Sightseeing Cows(01分数规划)

    题意 题目链接 Sol 复习一下01分数规划 设\(a_i\)为点权,\(b_i\)为边权,我们要最大化\(\sum \frac{a_i}{b_i}\).可以二分一个答案\(k\),我们需要检查\(\ ...

  5. 洛谷3705 [SDOI2017] 新生舞会 【01分数规划】【KM算法】

    题目分析: 裸题.怀疑$ O(n^4log{n}) $跑不过,考虑Edmonds-Karp优化. 代码: #include<bits/stdc++.h> using namespace s ...

  6. 洛谷P1404 平均数 [01分数规划,二分答案]

    题目传送门 平均数 题目描述 给一个长度为n的数列,我们需要找出该数列的一个子串,使得子串平均数最大化,并且子串长度>=m. 输入输出格式 输入格式: N+1行, 第一行两个整数n和m 接下来n ...

  7. 洛谷P3778 [APIO2017]商旅——01分数规划

    题目:https://www.luogu.org/problemnew/show/P3778 转化有点技巧: 其实直接关注比率的上下两项,也就是盈利和时间: 通过暴枚和 floyd 可以处理出两两点间 ...

  8. 分数规划模板(洛谷P4377 [USACO18OPEN]Talent Show)(分数规划,二分答案,背包)

    分数规划是这样一个东西: 给定若干元素,每个元素有两个属性值\(a_i,b_i\),在满足题目要求的某些限制下选择若干元素并求出\(\frac{\sum a}{\sum b}\)的最大值. 如果没有限 ...

  9. 【POJ3621】【洛谷2868】Sightseeing Cows(分数规划)

    [POJ3621][洛谷2868]Sightseeing Cows(分数规划) 题面 Vjudge 洛谷 大意: 在有向图图中选出一个环,使得这个环的点权\(/\)边权最大 题解 分数规划 二分答案之 ...

随机推荐

  1. 怎么用JavaScript写一个区块链?

    几乎所有语言都可以编写区块链开发程序.那么如何用JavaScript写一个区块链?以下我将要用JavaScript来创建1个简单的区块链来演示它们的内部到底是怎样工作的.我将会称作SavjeeCoin ...

  2. 通过拓展Function.prototype实现一个AOP

    AOP(面向切面的编程)主要是将一些与核心业务逻辑模块无关的功能抽离出来,这些功能通常包括日志统计,安全控制,或者是异常处理等等. 我们要做的就是拓展Function.prototype来“动态植入” ...

  3. Resharper简单安装及代码覆盖率的测试

    Resharper简单安装及代码覆盖率的测试 测试环境:VS 2015 专业版 一.下载Resharper 官方链接:https://www.jetbrains.com/resharper/ 点击下载 ...

  4. WPF和js交互 调用窗体中的方法

    public partial class WebTest: Window { private void Window_ContentRendered(object sender, EventArgs ...

  5. express框架结合jade模板引擎使用

    在views文件夹里新建一个jade.jade文件作为模板: html head title 哈哈 body #box ul li 标题1 li 标题2 li 标题3 li 标题4 #aside 在j ...

  6. Linux系统编程手册-源码的使用

    转自:http://www.cnblogs.com/pluse/p/6296992.html 第三章后续部分重点介绍了后面章节所要使用的头文件及其实现,主要如下: ename.c.inc error_ ...

  7. vue中的minix

    minix 是个什么东西, 就是混合,把你混合给我 浅显表述就是 你说 : ‘我叫李四’, 我说 : ‘我叫张三’, 然后把你 混合给我, 就成了 我说 : ‘我叫张三我叫李四’, 所有解说都在例子里 ...

  8. MySQL 5.7 GA 新特性

    转载自: http://www.chinaxing.org/articles/Database/2015/10/23/2015-10-22-mysql-5.7.html sys-schema http ...

  9. oracle 配置本地Net服务

    1.查看当前数据库名字(前提是已经创建了),先前忘记数据库实例名乱输,然后创建一直失败 开始,程序,Oracle_xxxx_home1 ,配置和移植工具, Database Configuration ...

  10. MT【199】映射的个数

    (2018中科大自招)设$S=\{1,2,3,4,5\}$则满足$f(f(x))=x$的映射:$S \longrightarrow S$的个数____解答:由于$a\ne b$时必须满足$f(a)=b ...