链接:

https://www.luogu.org/problemnew/show/U46611

思路:

这道题告你n-1条边就是骗你的

部分分也是骗你的

这道题连对边5分钟的事

一个点对另一个点有影响当且仅当这个点在另一个点的前一时刻被查

且这两个点之间有边相连

我们加上超级根节点后可以建一棵树

跑树形DP即可

代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define rij register int j
#define rii register int i
using namespace std;
int head[],n,m,tim[],bj[];
double dp[],gl[];
int bnt;
struct road{
int to,nxt;
}x[];
int a,b,c;
inline int rd(){
int x=,f=;char ch=getchar();
while(!isdigit(ch)) {f=ch=='-'?:;ch=getchar();}
while(isdigit(ch)) {x=(x<<)+(x<<)+ch-'';ch=getchar();}
return f?x:-x;
} void add(int from,int to)
{
// cout<<from<<" "<<to<<endl;
bnt++;
x[bnt].to=to;
x[bnt].nxt=head[from];
head[from]=bnt;
}
void dplast(int wz)
{
double ans=1.0;
for(rii=head[wz];i!=;i=x[i].nxt)
{
dplast(x[i].to);
ans*=(-dp[x[i].to]);
}
ans*=gl[wz];
dp[wz]=-ans;
}
int main()
{
// freopen("cf8.in","r",stdin);
// freopen("cf8.out","w",stdout);
n=rd();m=rd();a=rd();b=rd();c=rd();
for(rii=;i<=m;i++)
{
int k;k=rd();
// scanf("%d",&k);
for(rij=;j<=k;j++)
{
int bh=rd();
// scanf("%d",&bh);
tim[bh]=i;
}
}
for(rii=;i<=n-;i++)
{
int from=rd(),to=rd();
// scanf("%d%d",&from,&to);
if(tim[from]-tim[to]==)
{
add(from,to);
bj[to]++;
}
if(tim[to]-tim[from]==)
{
add(to,from);
bj[from]++;
}
}
for(rii=;i<=n;i++)
{
if(bj[i]==)
{
add(,i);
}
}
for(rii=;i<=n;i++)
{
scanf("%lf",&gl[i]);
}
dplast();
// for(rii=1;i<=n;i++)
// {
// printf("%.4lf ",dp[i]);
// }
double maxn=max(dp[a],max(dp[b],dp[c]));
if(dp[a]==maxn)
{
printf("%d\n",a);
}
else
{
if(maxn==dp[b])
{
printf("%d\n",b);
}
else
{
printf("%d\n",c);
}
}
printf("%.4lf",maxn);
}

ztz11的noip模拟赛T2:查房的更多相关文章

  1. 20161003 NOIP 模拟赛 T2 解题报告

    Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...

  2. ztz11的noip模拟赛T3:评分系统

    代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...

  3. 20161023 NOIP 模拟赛 T2 解题报告

    Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...

  4. 20161005 NOIP 模拟赛 T2 解题报告

    beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...

  5. 神奇的NOIP模拟赛 T2 LGTB 学分块

    LGTB 学分块 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空.假设3 块各自 ...

  6. 2018.02.12 noip模拟赛T2

    二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得 ...

  7. ztz11的noip模拟赛T1:愤怒的XiaoX

    链接: https://www.luogu.org/problemnew/show/U47231 思路: 这道题其实就是一道双Lazy线段树裸题 因为我们知道,当k一定时,取反偶数次最后k位等于不取反 ...

  8. 2018.10.30 NOIp模拟赛T2 数字对

    [题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题.        她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= ...

  9. 【2019.8.20 NOIP模拟赛 T2】小B的树(tree)(树形DP)

    树形\(DP\) 考虑设\(f_{i,j,k}\)表示在\(i\)的子树内,从\(i\)向下的最长链长度为\(j\),\(i\)子树内直径长度为\(k\)的概率. 然后我们就能发现这个东西直接转移是几 ...

随机推荐

  1. LeetCode赛题515----Find Largest Element in Each Row

    问题描述 You need to find the largest element in each row of a Binary Tree. Example: Input: 1 / \ 2 3 / ...

  2. (WPF) Textbox 每次输入触发事件处理

    1.  Code behind. protected void TextBox1_TextChanged(object sender, EventArgs e) { Label1.Text = Ser ...

  3. (C#) 多线程访问探讨,如果保证线程安全?

    先抛出几点疑问: 1. 多个线程同时访问同一个“值类型变量“(value type, stored in stack), 如果保证安全访问? 2. 多个线程同时访问同一个“引用类型变量“(refere ...

  4. Mysql的命令

    学习mysql命令必须先安装哦:安装教程 1.doc连接Mysql 格式: mysql -h主机地址 -u用户名 -p用户密码 1.连接到本机上的MYSQL.首先打开DOS窗口,然后进入目录mysql ...

  5. PHP计算近1年的所有月份

    $z = date('Y-m'); $a = date('Y-m', strtotime('-12 months')); $begin = new DateTime($a); $end = new D ...

  6. 关于Ubuntu16.04下phpmyadmin出现mbstring错误的正解

    1.打开终端,输入php -i | grep extension_dir 查看extension_dir的绝对路径 2.查看phpinfo,php.ini的绝对路径 3.打开php.ini文件. 设置 ...

  7. mysql在linux下的安装mysql-5.6.33

    一.下载源码包 wget http://mirrors.sohu.com/mysql/MySQL-5.6/mysql-5.6.35-linux-glibc2.5-x86_64.tar.gz 二.解压源 ...

  8. Python学习---Django误删除sql表后,如何创建数据

    误删除sql表后,怎么创建数据? 仅仅适合单表,多表因为涉及约束, python mangage.py makemigrations  --> 生成migrations目录和根数据库对应的sql ...

  9. Linux ping命令详解

    Linux系统的ping命令是常用的网络命令,它通常用来测试与目标主机的连通性 基于IMCP协议 常见命令参数 -q 不显示任何传送封包的信息,只显示最后的结果 -n 只输出数值 -R 记录路由过程 ...

  10. 求最长公共子串 Longest Common Subsequence

    最长公共子串 // Longest Common Subsequence 子串有别于子序列, 子串是连续的, 而子序列可以不连续 /*--------------------------------- ...