luogu 1850 换教室 概率+dp
非常好的dp,继续加油练习dp啊
#include<bits/stdc++.h>
#define rep(i,x,y) for(register int i=x;i<=y;i++) using namespace std; const int N=2e3+;
const double inf=1e8+;
const int V=;
int n,m,v,e,c[N],d[N],g[V][V];
double k[N],f[N][N][],ans; inline int read(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-;ch=getchar();}
while(isdigit(ch)){x=(x<<)+(x<<)+(ch^);ch=getchar();}
return x*f;} int main(){
n=read(),m=read(),v=read(),e=read();
rep(i,,n) c[i]=read();
rep(i,,n) d[i]=read();
rep(i,,n) cin>>k[i];
memset(g,,sizeof g);
rep(i,,e){
int u=read(),v=read(),w=read();
g[u][v]=g[v][u]=min(g[u][v],w);}
rep(k,,v)rep(i,,v)rep(j,,v)
g[i][j]=min(g[i][k]+g[k][j],g[i][j]);
rep(i,,v) g[i][i]=g[i][]=g[][i]=;
rep(i,,n)rep(j,,m) f[i][j][]=f[i][j][]=inf;
f[][][]=f[][][]=;
rep(i,,n){
f[i][][]=f[i-][][]+g[c[i-]][c[i]];
rep(j,,min(i,m)){
int k1=c[i-],k2=d[i-],k3=c[i],k4=d[i];
f[i][j][]=min(f[i][j][],f[i-][j][]+g[k1][k3]);
f[i][j][]=min(f[i][j][],f[i-][j][]+g[k1][k3]*(-k[i-])+g[k2][k3]*k[i-]);
f[i][j][]=min(f[i][j][],f[i-][j-][]+g[k1][k3]*(-k[i])+g[k1][k4]*k[i]);
f[i][j][]=min(f[i][j][],f[i-][j-][]+g[k1][k3]*(-k[i-])*(-k[i])+g[k2][k3]*k[i-]*(-k[i])+g[k1][k4]*(-k[i-])*k[i]+g[k2][k4]*k[i-]*k[i]);
}
}ans=inf;
rep(i,,m)ans=min(ans,min(f[n][i][],f[n][i][]));
printf("%.2lf\n",ans);return ;
}
怀挺,下一个
luogu 1850 换教室 概率+dp的更多相关文章
- Luogu P1850 换教室(期望dp)
P1850 换教室 题意 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有\(2n\)节课程安排在\(n\)个时间段上.在第\(i(1\l ...
- P1850 换教室 概率dp
其实说是概率dp,本质上和dp没什么区别,就是把所有可能转移的情况全枚举一下就行了,不过dp方程确实有点长... ps:这个题的floyed我竟然之前写跪了... 题目: 题目描述 对于刚上大学的牛牛 ...
- 换教室(期望+DP)
换教室(期望+DP) \(dp(i,j,1/0)\)表示第\(i\)节课,申请了\(j\)次调换,这节课\(1/0\)调换. 换教室 转移的时候考虑: 上次没申请 这次也没申请 加上\(dis(fr[ ...
- Luogu P1850 [NOIp2016提高组]换教室 | 期望dp
题目链接 思路: <1>概率与期望期望=情况①的值*情况①的概率+情况②的值*情况②的概率+--+情况n的值*情况n的概率举个例子,抛一个骰子,每一面朝上的概率都是1/6,则这一个骰子落地 ...
- Bzoj 4720 换教室 (期望DP)
刚发现Bzoj有Noip的题目,只会换教室这道题..... Bzoj 题面:Bzoj 4720 Luogu题目:P1850 换教室 大概是期望DPNoip极其友好的一道题目,DP不怎么会的我想到了,大 ...
- 【bzoj4720】[NOIP2016]换教室 期望dp
题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程.在可以选择的课程中,有2n节课程安排在n个时间段上.在第i(1≤i≤n)个时间段上,两节内容相同的课程同时在不同的 ...
- 【BZOJ4720】【NOIP2016】换教室 [期望DP]
换教室 Time Limit: 20 Sec Memory Limit: 512 MB[Submit][Status][Discuss] Description Input 第一行四个整数n,m,v ...
- bzoj4720: [Noip2016]换教室(期望dp)
4720: [Noip2016]换教室 Time Limit: 20 Sec Memory Limit: 512 MBSubmit: 1294 Solved: 698[Submit][Status ...
- P1850 换教室 期望dp
P1850 换教室 题目描述 对于刚上大学的牛牛来说,他面临的第一个问题是如何根据实际情况申请合适的课程. 在可以选择的课程中,有 2n2n 节课程安排在 nn 个时间段上.在第 ii(1 \leq ...
随机推荐
- C++类相关
本文打算通过一些小例子来说明几个关键的知识点. 一:成员函数相关 #include <iostream> using namespace std; class D { public: vo ...
- A1087. All Roads Lead to Rome
Indeed there are many different tourist routes from our city to Rome. You are supposed to find your ...
- [luogu2292][L语言]
题目链接 思路 这道题我用的是AC自动机的做法. 先把子串挂到trie树上,在单词结尾打标记的时候,标记的是当前单词的长度.然后去上面查询母串的时候,每查询到一个单词,就建立一条线段,这条线段的结尾位 ...
- canvas简易画板
代码展示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF ...
- 为什么 管理工具里没有Internet(IIS)管理器选项
如上图,localhost页能打开了,但是管理工具里没有iis管理器,主要原因是安装iis时候没有选择web管理工具,选取安装上就 有了
- 逻辑回归 代价函数J关于系数theta求导
J=-y*loga-(1-y)*log(1-a) 梯度下降,求dJ/d_theta_j
- Methods for follow-up research of exome analysis:外显子后续分析研究思路总结
外显子后续分析研究思路一般有以下几种(Methods for follow-up research of exome analysis): 1.对突变频率.突变类型.突变方式进行统计分析 Mutati ...
- JDBC的简单笔记
JDBC笔记: JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范. JDBC与数据库驱动的关系:接口与实现的关系. JDBC规范(掌握四个核心对 ...
- Vuex速学篇:(2)利用state保存新闻数据
回顾 以前我们在做这个新闻列表的时候,是一个写死的数据 export default{ data(){ return{ newslist:[ {newsid:"101",pubti ...
- 论文总结(negFIN: An efficient algorithm for fast mining frequent itemsets)
一.论文整体思路: 作者提出了一种基于前缀树的数据结构,NegNodeset,其实是对之前前缀树的一种改进,主要区别在于采用了位图编码,通过这种数据结构产生的算法称为negFIN. negFIN算法高 ...