仔细观察可以发现,这个规划路径很像树链剖分

树链剖分的经典定理:任意一个点到根的所经过轻边不超过logn

而这个规划路径所走公路相当于轻边,也就是说,不便利度不会很大

那么直接dp即可,设f[x,i,k]表示以x为根的子树,不便利度不超过i,且x向下连了k[0,2]条边的方案数

根据增量法的思想,不难从孩子转移到父亲

注意这里取模等于0和没有方案的区别要注意一下

 type node=record
po,next:longint;
end; var e:array[..] of node;
f:array[..,-..,..] of int64;
p:array[..] of longint;
v:array[..] of boolean;
mo,n,m,i,x,y,len:longint; procedure add(x,y:longint);
begin
inc(len);
e[len].po:=y;
e[len].next:=p[x];
p[x]:=len;
end; function get(x:int64):int64;
begin
if (x>) and (x mod mo=) then exit(mo)
else exit(x mod mo);
end; procedure dfs(x:longint);
var i,y,j:longint;
s1,s0:int64;
begin
for i:= to do
f[x,i,]:=;
i:=p[x];
v[x]:=true;
while i<> do
begin
y:=e[i].po;
if not v[y] then
begin
dfs(y);
for j:= to do
begin
s1:=f[y,j,]+f[y,j,];
s0:=f[y,j-,]+f[y,j-,]+f[y,j-,];
f[x,j,]:=get(f[x,j,]*s0+f[x,j,]*s1);
f[x,j,]:=get(f[x,j,]*s0+f[x,j,]*s1);
f[x,j,]:=get(f[x,j,]*s0);
end;
end;
i:=e[i].next;
end;
end; begin
readln(n,m,mo);
for i:= to m do
begin
readln(x,y);
add(x,y);
add(y,x);
end;
if m<n- then
begin
writeln(-);
writeln(-);
halt;
end;
dfs();
for i:= to do
if f[,i,]+f[,i,]+f[,i,]> then
begin
writeln(i);
writeln((f[,i,]+f[,i,]+f[,i,]) mod mo);
halt;
end;
writeln(-);
writeln(-);
end.

bzoj1063的更多相关文章

  1. 【BZOJ1063】【NOI2008】道路设计(动态规划)

    [BZOJ1063][NOI2008]道路设计(动态规划) 题面 BZOJ 题解 发现每个点最多只能被修一次等价于每个点最多只能和两条铁路相邻 考虑一个\(dp\) 设\(f[i][0/1/2]\)表 ...

  2. [bzoj1063][Noi2008]道路设计

    来自FallDream的博客,未经允许,请勿转载,谢谢. Z国坐落于遥远而又神奇的东方半岛上,在小Z的统治时代公路成为这里主要的交通手段.Z国共有n座城市,一些城市之间由双向的公路所连接.非常神奇的是 ...

  3. BZOJ1063 NOI2008 道路设计 树形DP

    题目传送门: BZOJ 题意精简版:给出一棵树,在一种方案中可以将树的若干链上的所有边的边权改为$0$,但需要保证任意两条链之间没有交点.问最少的一种方案,使得从根节点到其他节点经过的边的边权和的最大 ...

  4. [luogu4201][bzoj1063]设计路线【树形DP】

    题目描述 Z国坐落于遥远而又神奇的东方半岛上,在小Z的统治时代公路成为这里主要的交通手段.Z国共有n座城市,一些城市之间由双向的公路所连接.非常神奇的是Z国的每个城市所处的经度都不相同,并且最多只和一 ...

  5. 【NOI题解】【bzoj题解】NOI2008 bzoj1063 道路设计

    @ACMLCZH学长出的毒瘤题T3.再也不是“善良”的出题人了. 题意:bzoj. 题解: 经典的树形DP题目,屡见不鲜了,然而我还是没有写出来. 这一类的题目有很多,例如这里的C题. 主要套路是把对 ...

  6. bzoj1063【Noi2008】道路设计

    题意:http://www.lydsy.com/JudgeOnline/problem.php?id=1063 用一种划分方式将树划为重链和轻链,使得所有点到根节点的路径经过的轻链最大值最小 sol: ...

  7. BZOJ第1页养成计划

    嗯,用这篇博客当一个目录,方便自己和学弟(妹?)们查阅.不定期更新. BZOJ1000   BZOJ1001   BZOJ1002   BZOJ1003   BZOJ1004   BZOJ1005   ...

  8. Noip前的大抱佛脚----赛前任务

    赛前任务 tags:任务清单 前言 现在xzy太弱了,而且他最近越来越弱了,天天被爆踩,天天被爆踩 题单不会在作业部落发布,所以可(yi)能(ding)会不及时更新 省选前的练习莫名其妙地成为了Noi ...

  9. 省选/NOI刷题Day1

    bzoj4864 Splay乱搞 bzoj3669 正解LCT,考虑上下界的spfa可过 bzoj3668 位运算 暴力 bzoj3670 KMP DP bzoj3671 含有最小的一个数的路径一定比 ...

随机推荐

  1. python学习小结5:封装、继承、多态

    面向对象程序设计中的类有三大特性: 继承,封装,多态 继承:以普通的类为基础建立专门的类对象 封装:对外部世界隐藏对象的工作细节 多态:可对不同类的对象使用同样的操作 在Python中类的继承定义基本 ...

  2. 线性判别分析(LDA), 主成分分析(PCA)及其推导【转】

    前言: 如果学习分类算法,最好从线性的入手,线性分类器最简单的就是LDA,它可以看做是简化版的SVM,如果想理解SVM这种分类器,那理解LDA就是很有必要的了. 谈到LDA,就不得不谈谈PCA,PCA ...

  3. Android keyevent 中的各个值

    Android keyevent 中的各个值,在使用adb shell input 的时候用得到. 是从http://blog.csdn.net/huiguixian/article/details/ ...

  4. 想成为真正的代码gg,目标

    转眼已而大二了,可是在这上了一个星期的课,感觉生活非常的茫然.当然这与我处在的环境有一定的关系. 处在这样的学校,想努力可是让我心凉的是没有一个老师肯真心带学生,, 学校办的各种事情都很坑,,我不怕自 ...

  5. ExtJS4.2学习(21)动态菜单与表格数据展示操作总结篇2

    运行效果: 此文介绍了根据操作左侧菜单在右面板展示相应内容. 一.主页 先看一下跳转主页的方式:由在webapp根目录下的index.jsp跳转至demo的index.jsp 下面是demo的inde ...

  6. MVC3 Model Binding验证方式

    1.使用ModelState在Action中进行验证 [HttpPost] public ViewResult MakeBooking(Appointment appt) { if (string.I ...

  7. 【POJ】【2975】Nim

    博弈论 我哭……思路错误WA了6次?(好像还有手抖点错……) 本题是要求Nim游戏的第一步必胜策略有几种. 一开始我想:先全部异或起来得到ans,从每个比ans大的堆里取走ans个即可,答案如此累计… ...

  8. PAT-乙级-1054. 求平均值 (20)

    1054. 求平均值 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 本题的基本要求非常简单:给定N个实 ...

  9. oracle 表空间 用户

    Oracle创建表空间.创建用户以及授权.查看权限 创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE 'C:\oracle\product\ ...

  10. Zabbix 安装及微信短信提醒

    Zabbix简介 Zabbix 近几年得到了各大互联网公司的认可,当然第一点归功与它强大的监控功能,第二点免费开源也得到了广大用户的青睐.Zabbix 能将操作系统中的绝大部分指标进行监控,比如(CP ...