题目描述

C 国里一共有 N 个城镇,编号为 1 到 N 。其中第 i 个城镇与第 i + 1 个城镇连接着一条收费为 c i 的从
i 到 i + 1 的单向道路 (1 ≤ i < n)。现在,杰杰作为一个旅行者,他的任务就是从第 1 个城镇出发,到达编
号为 N 的城镇。他觉得这样会很无聊,海克斯科技公司也是这么认为的。所以该公司在若干个城镇里设置了
共 M 个单向传送门。每个传送门有 4 个参数 s t p w。s 表示传送门的出发城镇,t 表示传送门的传送目标城
镇,保证 t 大于 s,w 表示使用该传送门的花费,p 为传送成功的概率,若传送失败会自动返回出发的城市而
且该传送门会永久损坏;而且无论传送成功与否,只要使用了该传送门就得花费 w。现在,杰杰正在规划他
的旅行方案。请你帮他规划一条最优策略,使得旅途期望花费最小。

做法

懒癌发作了……
随便列个式子然后贪心一波就好了……

#include<cstdio>
#include<algorithm>
#include<cmath>
#define fo(i,a,b) for(i=a;i<=b;i++)
using namespace std;
typedef double db;
const int maxn=100000+10;
int e[maxn],h[maxn],go[maxn*2],dis[maxn*2],next[maxn*2],id[maxn];
bool bz[maxn];
db pp[maxn*2];
db f[maxn],p[maxn],w[maxn],x[maxn],y[maxn];
int i,j,k,l,t,n,m,tot;
db zlt;
void add(int x,int y,int c,db z){go[++tot]=y;dis[tot]=c;pp[tot]=z;next[tot]=h[x];h[x]=tot;
}
bool cmp(int a,int b){if (y[a]==1) return 1;else if (y[b]==1) return 0;else return x[a]/(1-y[a])<x[b]/(1-y[b]);
}
void solve(int now){if (bz[now]) return;bz[now]=1;int i;int t=h[now],top=0;while (t){solve(go[t]);t=next[t];}t=h[now];while (t){e[++top]=go[t];w[top]=dis[t];p[top]=pp[t];x[top]=f[e[top]]*p[top]+w[top];y[top]=1-p[top];id[top]=top;t=next[t];}sort(id+1,id+top+1,cmp);db r=1;fo(i,1,top){f[now]=f[now]+r*x[id[i]];r=r*(1-p[id[i]]);}
}
int main(){scanf("%d%d",&n,&m);fo(i,1,n-1){scanf("%d",&j);add(i,i+1,j,1);}fo(i,1,m){scanf("%d%d%lf%d",&j,&k,&zlt,&l);add(j,k,l,zlt);}solve(1);printf("%.2lf\n",f[1]);
}

[GDKOI2016]不稳定的传送门相关推荐

  1. GDKOI2016 Day1 T2 不稳定的传送门

    T2 不稳定的传送门 给出N个点,点与点之间由单向边连接,每条边有使用的代价和成功的概率,若失败则返回出发点.每条边只能使用一次.数据保证没有环,点i与i+1之间一定有一条成功概率为100%的边,求从 ...

  2. DTOJ2603 不稳定的传送门

    DTOJ2603 不稳定的传送门 题目 题目描述 输入格式 输出格式 样例 样例输入 样例输出 数据范围与提示 题解 题目 题目描述 C国里一共有NNN个城镇,编号为111到NNN 其中第iii个城镇 ...

  3. GDKOI2016总结

    xc叫我打总结,所以我就打. 第零天 (0/0) 这一天是重要的一天,我们初三同学去到了第二考场,广州二中.并且我们再也不住妓院宾馆啦!我感到很开心.另外,这天我轻装上阵,怒腐一波后就睡觉,什么都没有 ...

  4. GDKOI2016暴力记

    为什么叫暴力?因为题题都打暴力. Day0 出发前往广州,吃个饭,开个会,看电视... Day1 一切顺利,考场也没什么问题,没拖延时间. T1魔卡少女 题意:询问一个序列的所有连续子序列的异或和,可 ...

  5. [HDU3336]Count the string(KMP+DP)

    Solution 不稳定的传送门 对KMP的灵活应用 设dp[i]表示前[1,i]的答案 那么dp[i]=dp[p[i]]+1,p[i]为失配函数 Code #include <cstdio&g ...

  6. 《Programming with Objective-C》第四章 Encapsulating Data

    Designated Initializer 不稳定的传送门 合成属性 Properties don't always have to be backed by their own instance ...

  7. [Codeforces967C]Stairs and Elevators(二分查找)

    [不稳定的传送门] Sloution 每次试一下最近的2个楼梯或者电梯就行了 Code #include <cstdio> #include <algorithm> #incl ...

  8. GDKOI 2016

    GDKOI 2016 day 1 第一题 魔卡少女 题目描述:维护一个序列,能进行以下两个操作:1.将某一个位置的值改变.2.求区间的连续子串的异或值的和. solution 因为序列的数的值都小于\ ...

  9. 阿古斯机器人_新卡评测 地精大战侏儒资料先睹为快

    本文由17173炉石传说专区特约作者[炉石助手丨小坷]原创提供,未经许可禁止转载 大家好,我是炉石助手丨小坷#5393.今天给大家带来地精大战侏儒拓展包中已出的新卡的评测,以及自己的一点个人见解,希望 ...

最新文章

  1. 简单建立安装和配置symantec内部LiveUpdate服务器的方法
  2. 我与 美国作家 21天精通C++ 作者 Rao的对话:
  3. 计算机视觉开源库OpenCV之threshold()函数详解
  4. stata 导出 相关系数表_Stata: 空间权重矩阵的构建
  5. java字符动画思路_【轻松一刻】Java制作字符动画
  6. vaadin_Vaadin应用程序中的EJB查找
  7. VBA 精选示例代码库
  8. QQ2007 Beta2 下载地址泄露
  9. php cli输出百分比,CLI模式。能不能修改已经输出的内容?
  10. 个人管理:发掘自己的性格优势
  11. Markdown语言调整图片居中、大小
  12. 吉林大学校园网linux客户端,吉林大学校园网认证客户端 v5.2.1 pc版
  13. 计算机驱动程序检测,驱动人生(检测电脑硬件自动安装驱动程序)
  14. 数学建模常用模型22:回归模型
  15. mac关闭虚拟内存_为什么不应该关闭Mac上的虚拟内存
  16. 如此详细的尾灯模组方案,不看看吗?
  17. 联想Thinkpad E15 息屏后 无法唤醒
  18. python中的一个好用的文件名操作模块glob
  19. Nginx启动报错:error while loading shared libraries: libpcre.so.1
  20. 页面自动更新(javascript)

热门文章

  1. java中的hash值
  2. VisualSVN Server是什么
  3. 大华网络摄像机的RTSP地址
  4. Consistency Regularization for GANs
  5. exsi6.7快速克隆虚拟机
  6. rosrun无法执行相应的可执行程序
  7. Android自定义相机,切换前后摄像头,照相机拍照
  8. 广州地铁3号线-我见过的最差的地铁
  9. 新一配:华为Mate40Pro去掉浴霸摄像头,果然好看多了
  10. 2022-02-15每日刷题打卡