n<=50000个点m<=150000的带边权DAG,保证1入度0,n出度0,其他点入度出度均不为0,求:从一号点开始到n,期间有可能K<=10次随机选边走,最坏情况下总边权多少。

没理解题意系列。。问了唐神T_T题目是说,这个牛已经知道会有这种情况,所以在除了K次剩下的时间里它会选最优方案走,而如果此点最优方案比乱走方案优,那么在最坏情况下这个点也要乱走,所以在“最优”与“乱走”去min。

f[i,j]表示点i到点n,乱j次最小边权和,f[i,j]=min(max(f[k,j]+e(i,k)),min(f[k,j-1]+e(i,k))。

写bfs的话注意f定义域!!!!

 #include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<algorithm>
//#include<iostream>
using namespace std; int n,m,K;
#define maxm 300011
#define maxn 50011
struct Edge{int to,v,next;}edge[maxm];int first[maxn],back[maxn],le=;
void in(int x,int y,int v,int* first) {Edge &e=edge[le];e.to=y;e.v=v;e.next=first[x];first[x]=le++;}
#define LL long long
int du[maxn],last[maxn];LL f[maxn][],dis[maxn];
int x,y,v,que[maxn],head,tail;
const LL inf=1e15;
void play(int x)
{
for (int i=back[x];i;i=edge[i].next)
{
const Edge &e=edge[i];
du[e.to]--;
if (!du[e.to]) que[tail++]=e.to;
}
if (x==n)
{
for (int i=;i<=K;i++) f[x][i]=-inf;
f[x][]=;return;
}
LL Max=-inf,Min=inf;
for (int j=;j<=K;j++)
{
for (int i=first[x];i;i=edge[i].next)
{
const Edge &e=edge[i];
if (f[e.to][j]>=) Max=max(Max,f[e.to][j]+e.v);
if (j && f[e.to][j-]>=) Min=min(Min,f[e.to][j-]+e.v);
}
f[x][j]=Max<?(Min<?-inf:Min):(Min<?Max:min(Max,Min));
}
}
int main()
{
scanf("%d%d%d",&n,&m,&K);
memset(du,,sizeof(du));
for (int i=;i<=m;i++)
{
scanf("%d%d%d",&x,&y,&v);
in(x,y,v,first);
in(y,x,v,back);
du[x]++;
}
head=tail=;
for (int i=;i<=n;i++) if (!du[i]) que[tail++]=i;
while (head!=tail) play(que[head++]);
printf("%lld\n",f[][K]);
return ;
}

BZOJ1916: [Usaco2010 Open]冲浪的更多相关文章

  1. BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP

    BZOJ_1916_[Usaco2010 Open]冲浪_分层图+拓扑排序+DP Description 受到秘鲁的马丘比丘的新式水上乐园的启发,Farmer John决定也为奶牛们建 一个水上乐园. ...

  2. bzoj Usaco补完计划(优先级 Gold>Silver>资格赛)

    听说KPM初二暑假就补完了啊%%% 先刷Gold再刷Silver(因为目测没那么多时间刷Silver,方便以后TJ2333(雾 按AC数降序刷 ---------------------------- ...

  3. bzoj usaco 金组水题题解(2)

    续.....TAT这回不到50题编辑器就崩了.. 这里塞40道吧= = bzoj 1585: [Usaco2009 Mar]Earthquake Damage 2 地震伤害 比较经典的最小割?..然而 ...

  4. BZOJ-USACO被虐记

    bzoj上的usaco题目还是很好的(我被虐的很惨. 有必要总结整理一下. 1592: [Usaco2008 Feb]Making the Grade 路面修整 一开始没有想到离散化.然后离散化之后就 ...

  5. bzoj AC倒序

    Search GO 说明:输入题号直接进入相应题目,如需搜索含数字的题目,请在关键词前加单引号 Problem ID Title Source AC Submit Y 1000 A+B Problem ...

  6. USACO 刷题记录bzoj

    bzoj 1606: [Usaco2008 Dec]Hay For Sale 购买干草——背包 #include<cstdio> #include<cstring> #incl ...

  7. 【BZOJ1827】[Usaco2010 Mar]gather 奶牛大集会 树形DP

    [BZOJ][Usaco2010 Mar]gather 奶牛大集会 Description Bessie正在计划一年一度的奶牛大集会,来自全国各地的奶牛将来参加这一次集会.当然,她会选择最方便的地点来 ...

  8. BZOJ2097[Usaco2010 Dec] 奶牛健美操

    我猜我这样继续做水题会狗带 和模拟赛的题很像,贪心搞一下. #include<bits/stdc++.h> using namespace std; int read(){ ,f=;cha ...

  9. [Usaco2010 OPen]Triangle Counting 数三角形

    [Usaco2010 OPen]Triangle Counting 数三角形 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 394  Solved: 1 ...

随机推荐

  1. Lambda表达式。

    函数式编程思想: 面向对象思想:做一件事,先找能解决这件事的对象,然后调用该对象相应方法. 面向过程思想:只要能获取到结果,怎么做的不重要,重视结果,不重视过程. 冗余的代码: public stat ...

  2. canvas基础绘制-倒计时(下)

    digit_1.js: digit = [ [ [0,0,1,1,1,0,0], [0,1,1,0,1,1,0], [1,1,0,0,0,1,1], [1,1,0,0,0,1,1], [1,1,0,0 ...

  3. canvas画饼图

    <style> body {    background: black;    text-align: center; } #cans {    background: white; } ...

  4. android 防止bitmap 内存溢出

    在android开发过程中经常会处理网络图片发送内存溢出,那么怎么解决这种问题? 思路: 下载到本地 通过网络获取和文件下载存放到手机中目录 代码: // 获取网络 public InputStrea ...

  5. git 配置免密上传,配置ssh key

    1.windows 打开git bash 控制台,linux 直接打开命令控制台,输入 ssh-keygen 一直enter 下一步 2.生成的文件windows 存放在c://users 路径下,l ...

  6. C#处理Android Audio and Video

    Video Converter for .NET (C#) FFMpeg wrapper http://www.nrecosite.com/video_converter_net.aspx Docum ...

  7. elasticsearch httpclient认证机制

    最近公司单位搬迁,所有的服务都停止了,我负责的elasticsearch不知道怎么回事,一直不能运行呢,因此,我一直在负责调试工作.经过两天的调试工作,我发现新的服务器增加了httpclient认证机 ...

  8. 回顾Spring MVC_01_概述_入门案例

    SpringMVC: SpringMVC是Spring为展现层提供的基于MVC设计的优秀的Web框架,是目前最主流的MVC框架之一 SpringMVC通过注解,让POJO成为处理请求的控制器,而无须实 ...

  9. SQLite – GLOB子句

    SQLite – GLOB子句 .与LIKE不同,GLOB是大小写敏感的,它遵循语法的UNIX指定以下通配符. The asterisk sign (*) The question mark (?) ...

  10. WPF知识点全攻略01- WPF相对WinFrom的优缺点

    对比WPF和WinFrom前,先来了解下GUI现阶段在用的其他一些开发技术: MFC:微软基础类库,以C++的形式封装了Windows API,加上一些实用工具类. QT:奇趣科技开发的跨平台C++图 ...