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. iOS 播放本地,网络视频

    /** *  创建媒体播放控制器MPMoviePlayerControlle 可以控制尺寸 * *  @return 媒体播放控制器 */ -(MPMoviePlayerController *)mo ...

  2. Tcl介绍和基础语法

    Tcl的背景 Tcl(读作tickle)诞生于80年代的加州大学伯克利分校,作为一种简单高效可移植性好的脚本语言,目前已经广泛应用在几乎所有的EDA工具中.Tcl 的最大特点就是其语法格式极其简单,采 ...

  3. vba,自定义公式,农历互转公历,excel ,wps

    'vba 模块内容如下 自定义公式 '公历转农历模块 '原创:互联网 '修正: '// 农历数据定义 // '先以 H2B 函数还原成长度为 18 的字符串,其定义如下: '前12个字节代表1-12月 ...

  4. LC.exe 已退出,代码为-1 问题解决

    最近一个c#工程,之前编译正常.后重装系统,安装DevExpress后,编译一直失败,并提示"4>C:\Windows\Microsoft.NET\Framework\v4.0.303 ...

  5. # Transition:添加弹出过渡效果

    # Transition:添加弹出过渡效果 通过鼠标的单击.获得焦点,被点击或对元素任何改变中触发,并平滑地以动画效果改变CSS的属性值. W3C-transition MDN-transition ...

  6. nodejs,python,sublime和Eclipse的包管理器

    Python的包管理器叫pip. 首先安装Python运行环境Python 3.7.0:https://www.python.org/downloads/release/python-370/ Pyt ...

  7. Vue 在beaforeCreate时获取data中的数据

    众所周知,vue在beforecreate时期是获取不到data中的 数据的 但是通过一些方法可以实现在beforecreate时获取到data中的数据 暂时想到两种放发可以实现,vue在before ...

  8. 用Vue的方式实现复选框

    var borrVm = new Vue({ el: "#WingApp", data: { returnBookList:[], checked:"", ch ...

  9. SQL分组聚合查询练习(SQL Server和Oracle相似)20190514

    先建表 CREATE TABLE [dbo].[orderdt_jimmy]( ,) NOT NULL, [order_nid] [int] NOT NULL, ) NOT NULL, [qty] [ ...

  10. MySQL数据库常见面试题

    什么是存储过程?有哪些优缺点? 存储过程简单来说就是为了以后使用而保存的一条或多条预编译SQL语句,这些语句块像一个方法一样执行一些功能. 优点: 类似于封装,简化操作: 不用反复建立一系列处理步骤, ...