emm

IOI原题(洛谷,bzoj都有)

其实并没有怎么搞懂dp方程转移那部分

就...粘个(抄来的)代码过来吧

#include<bits/stdc++.h>
using namespace std; inline int read()
{
int sum = ,p = ;
char ch = getchar();
while(ch < '' || ch > '')
{
if(ch == '-')
p = -;
ch = getchar();
}
while(ch >= '' && ch <= '')
{
(sum *= ) += ch - '';
ch = getchar();
}
return sum * p;
} const int N = ,M = ;
const int inf = 0x3f3f3f3f;
int n,m,head[N],w[N],f[N],cnt;
int dis[N][N],dp[N][M][N];
struct edge
{
int nxt,to;
}e[N]; void add(int a,int b)
{
e[++cnt].nxt = head[a];
e[cnt].to = b;
head[a] = cnt;
} void dfs(int u)
{
for(int last = u,i = f[u]; i != -; i = f[i])
{
dis[u][i] = dis[u][last] + dis[last][i];
last = i;
}
for(int i = head[u]; i; i = e[i].nxt)
dfs(e[i].to);
} void tree_dp(int u)
{
bool flag = true;
for(int i = head[u]; i; i = e[i].nxt)
{
flag = false;
tree_dp(e[i].to);
}
if(flag)
{
for(int i = f[u]; i != -; i = f[i])
dp[u][][i] = dis[u][i] * w[u];
return;
}
if(u != )
dp[u][][u] = inf;
for(int i = head[u]; i; i = e[i].nxt)
{
int v = e[i].to;
for(int p = f[u]; p != -; p = f[p])
{
for(int j = m; j >= ; j--)
{
int tmp = inf;
for(int k = ; k <= j; k++)
tmp = min(tmp,dp[u][k][p] + dp[v][j - k][p]);
dp[u][j][p] = tmp;
}
}
for(int j = m; j >= ; j--)
{
int tmp = inf;
for(int k = (u != ); k <= j; k++)
tmp = min(tmp,dp[u][k][u] + dp[v][j - k][u]);
dp[u][j][u] = tmp;
}
}
for(int p = f[u]; p != -; p = f[p])
for(int i = ; i <= m; i++)
{
dp[u][i][p] += dis[u][p]*w[u];
dp[u][i][p] = min(dp[u][i][p],dp[u][i][u]);
}
} int main()
{
freopen("riv.in","r",stdin);
freopen("riv.out","w",stdout);
n = read(),m = read();
for(int i = ; i <= n; i++)
{
w[i] = read();
f[i] = read();
dis[i][f[i]] = read();
add(f[i],i);
}
f[] = -;
dfs();
tree_dp();
printf("%d\n",dp[][m][]);
return ;
}

8.10-Day2T3 镇守府的更多相关文章

  1. ACM-南京理工大学第八届程序设计竞赛-网络赛(2016.04.17)

    A.偷吃糖果Time Limit: 1000Ms Memory Limit: 65536KB Description小鱼喜欢吃糖果.他有两盒糖果,两盒糖果分别仅由小写字母组成的字符串s和字符串t构成. ...

  2. 【hihoCoder】#1133 : 二分·二分查找之k小数

    题目描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettle通过捞船又出了一艘稀有的船,但是已有的N(1≤N≤1,000,00 ...

  3. Hiho : 二分·二分查找之k小数

    时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettl ...

  4. hihoCoder 1133 二分·二分查找之k小数(TOP K算法)

    #1133 : 二分·二分查找之k小数 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很 ...

  5. 【HIHOCODER 1133】 二分·二分查找之k小数

    描述 在上一回里我们知道Nettle在玩<艦これ>,Nettle的镇守府有很多船位,但船位再多也是有限的.Nettle通过捞船又出了一艘稀有的船,但是已有的N(1≤N≤1,000,000) ...

  6. 谁才是最强战舰!-From 南京理工大学第八届程序设计大赛(校外镜像),博弈~~

    谁才是最强战舰! Time Limit: 1000MS Memory Limit: 65536KB Description 依阿华来到镇守府的第一件事情,就是找大和solo!然而这并不是什么好消息,说 ...

  7. hiho week 37 P1 : 二分·二分查找之k小数

    P1 : 二分·二分查找之k小数 Time Limit:10000ms Case Time Limit:1000ms Memory Limit:256MB 描述 在上一回里我们知道Nettle在玩&l ...

  8. “乐”动人心--2017年10款最佳音乐类APP设计盘点

    在上下班的路上,听几首自己喜欢的音乐来打发无聊的等公交车和地铁的时间是现代年轻人的常态.音乐作为最能鼓动人心的"语言",也成为了人们在互联网生活里占比例最高的消费活动之一,一款好看 ...

  9. 如何用Python统计《论语》中每个字的出现次数?10行代码搞定--用计算机学国学

    编者按: 上学时听过山师王志民先生一场讲座,说每个人不论干什么,都应该学习国学(原谅我学了计算机专业)!王先生讲得很是吸引我这个工科男,可能比我的后来的那些同学听课还要认真些,当然一方面是兴趣.一方面 ...

随机推荐

  1. vue必须掌握之组件通信(7种方法)

    方法一:$emit / props 父组件通过props的方式向子组件传递,子组件通过$emit触发父组件中v-on绑定的自定义事件 <!--父组件--> <template> ...

  2. [转]TCP/IP 协议基础(一)

    参考书籍为<图解tcp/ip>-第五版.这篇随笔,主要内容还是TCP/IP所必备的基础知识,包括计算机与网络发展的历史及标准化过程(简述).OSI参考模型.网络概念的本质.网络构建的设备等 ...

  3. Educational Codeforces Round 65 (Rated for Div. 2)B. Lost Numbers(交互)

    This is an interactive problem. Remember to flush your output while communicating with the testing p ...

  4. 我的第一个Maven Helloworld

    使用MAVEN创建项目可以有两种方式进行创建,第一种,使用mvn命令创建Maven项目,第二种,使用eclipse创建Maven项目. 在创建Maven项目之前,我们需要安装maven,并和配置JDK ...

  5. Django 初试水(三)

    在前面的一和二中,分别实现了一些基础的操作,数据库和 Django 自带的管理界面,接下来,主要是创建我们自己的界面(视图). 访问一个地址,对应的服务器直接返回一个视图.这是最常见的交互. 就好比访 ...

  6. Java判断一个字符串是否有中文

    Java判断一个字符串是否有中文一般情况是利用Unicode编码(CJK统一汉字的编码区间:0x4e00–0x9fbb)的正则来做判断,但是其实这个区间来判断中文不是非常精确,因为有些中文的标点符号比 ...

  7. Oracle VM VirtualBox - VBOX_E_FILE_ERROR (0x80BB0004)

    问题描述: 导入虚拟电脑 D:\LR\虚拟机相关\CentOS-6.7-x86_64-2G-40G-oracle-IP9\CentOS-6.7-x86_64-2G-40G-oracle-IP9.ovf ...

  8. vue里使用elementUI里的下拉树表格,如何定义个性化的子表格?

    最近项目写到一个业务,首先需要展示各类分组的基本信息,然后需要点击每个分组展示该分组下子的所有具体信息 一开始我是打算用tab来展示就是首先父分组的名称就是各个不同的tab按钮,然后点击按钮再展示不同 ...

  9. 【转载】SpringMVC前台给后台传值的方式

    转自:http://blog.csdn.net/flymoringbird/article/details/53126505 1. 基本数据类型(以int为例,其他类似): Controller代码: ...

  10. AntDesign(React)学习-10 Dva 与后台数据交互

    明天正式在线办公没时间学习了,今天晚上再更新一篇, 代码提交一次:https://github.com/zhaogaojian/jgdemo 1.src下创建services目录 创建文件userSr ...