ztz11的noip模拟赛T2:查房
链接:
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:查房的更多相关文章
- 20161003 NOIP 模拟赛 T2 解题报告
Weed duyege的电脑上面已经长草了,经过辨认上面有金坷垃的痕迹. 为了查出真相,duyege 准备修好电脑之后再进行一次金坷垃的模拟实验. 电脑上面有若干层金坷垃,每次只能在上面撒上一层高度为 ...
- ztz11的noip模拟赛T3:评分系统
代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> ...
- 20161023 NOIP 模拟赛 T2 解题报告
Task 2.回文串计数 (calc.pas/calc.c/calc.cpp) [题目描述] 虽然是一名理科生,Mcx常常声称自己是一名真正的文科生.不知为何,他对于背诵总有一种莫名的热爱,这也促使他 ...
- 20161005 NOIP 模拟赛 T2 解题报告
beautiful 2.1 题目描述 一个长度为 n 的序列,对于每个位置 i 的数 ai 都有一个优美值,其定义是:找到序列中最 长的一段 [l, r],满足 l ≤ i ≤ r,且 [l, r] ...
- 神奇的NOIP模拟赛 T2 LGTB 学分块
LGTB 学分块 LGTB 最近在学分块,但是他太菜了,分的块数量太多他就混乱了,所以只能分成3 块今天他得到了一个数组,他突然也想把它分块,他想知道,把这个数组分成3 块,块可以为空.假设3 块各自 ...
- 2018.02.12 noip模拟赛T2
二兵的赌注 Description游戏中,二兵要进入了一家奇怪的赌场.赌场中有n个庄家,每个庄家都可以猜大猜小,猜一次一元钱.每一次开彩前,你都可以到任意个庄家那里下赌注.如果开彩结果是大,你就可以得 ...
- ztz11的noip模拟赛T1:愤怒的XiaoX
链接: https://www.luogu.org/problemnew/show/U47231 思路: 这道题其实就是一道双Lazy线段树裸题 因为我们知道,当k一定时,取反偶数次最后k位等于不取反 ...
- 2018.10.30 NOIp模拟赛T2 数字对
[题目描述] 小 H 是个善于思考的学生,现在她又在思考一个有关序列的问题. 她的面前浮现出一个长度为 n 的序列{ai},她想找出一段区间[L, R](1 <= L <= ...
- 【2019.8.20 NOIP模拟赛 T2】小B的树(tree)(树形DP)
树形\(DP\) 考虑设\(f_{i,j,k}\)表示在\(i\)的子树内,从\(i\)向下的最长链长度为\(j\),\(i\)子树内直径长度为\(k\)的概率. 然后我们就能发现这个东西直接转移是几 ...
随机推荐
- Raspberry install wine
sudo apt install wine winecfg出现问题 树莓派3B是卡片电脑,内存为1GB,一般运行Linux.Linux两种主流的内存分配方法2G/2G和3G/1G,树莓派系统后期优化性 ...
- javascript 字面量
https://www.cnblogs.com/radius/p/6874165.html
- TPS和事务响应时间的关系、计算公式 (转)
例子:一个高速路有10个入口,每个入口每秒钟只能进1辆车1.请问1秒钟最多能进几辆车? TPS=102.每辆车需要多长时间进行响应? reponse time = 13.改成20辆车,每秒能进 ...
- C#多个线程同时执行一个任务示例
注意:如果电脑是单核单线程的,这么做是没有意义的. 这里直接贴一下主要代码 using System; using System.Collections.Generic; using System.T ...
- 测试拆分比较大SQL Server数据库
有2个办法拆分比较大的数据库. 1.重建聚集索引2.收缩数据库 一.准备测试数据 )) go insert into blocktable(blockno,binno,rack,chipcount,m ...
- VS无法加载Web项目
在VS中修改Web项目的服务器设置时无法加载改Web项目,提示如下图 原因:因为项目中的EbcBuy.Bll.Users.WebApi.csproj.user文件并没有加入到版本控制文件,所以讲项目还 ...
- 第六次作业——Excel制作工资表
- c# winform文本框数字,数值校验
文本框数字,数值校验 public void DigitCheck_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = !char.I ...
- BT提权wind2008R2
昨天中午打开电脑,对着菜刀在那翻啊翻,找到一个64bit的os. 因为这个ip不在曾经提权过的主机列表里面,心想这应该是个低权限的网站,顺手打个whoami试试,结果给我返回了"nt aut ...
- Java自带线程池和队列详解
Java线程池使用说明 一简介 线程的使用在java中占有极其重要的地位,在jdk1.4极其之前的jdk版本中,关于线程池的使用是极其简陋的.在jdk1.5之后这一情况有了很大的改观.Jdk1.5之后 ...