Noip 2003T4 传染病控制
来源:互联网 发布:搬砖网络语言什么意思 编辑:程序博客网 时间:2024/05/05 21:04
题目:
传染病控制
来源:
Noip 2003T4
题目大意:
在一棵树中,每层任意砍掉一条边,使包含根结点的树的结点数最少。
数据范围:
1≤n≤300
样例:
7 6
1 2
1 3
2 4
2 5
3 6
3 7
3
做题思路:
本以为是树型dp,结果写好多叉转二叉的树后发现不对,真耽误时间啊。
正解是搜索。。。而且是无向图。。。
知识点:
搜索
var a:array[0..400,0..400]of longint; time:array[0..400]of longint; n,i,x,y,ans,sum,m:longint;procedure build(k:longint);{<构造,减去自己和自己的边>}var i,j,t:longint;begin fori:=1 to a[k,0] do begin t:=a[k,i]; forj:=1 to a[t,0] do ifa[t,j]=k then break; a[t,j]:=a[t,a[t,0]]; dec(a[t,0]); build(t); end;end;procedure dfs(k:longint);var i,j:longint; b:boolean;begin b:=false; ifsum>ans then exit; {<最优化剪枝>} fori:=1 to n do iftime[i]=k then{<处理下一层的条件是传染到了这一层>} forj:=1 to a[i,0] do begin inc(sum); time[a[i,j]]:=k+1; b:=true; end; dec(sum); fori:=1 to n do{<选择一个边向下处理>} iftime[i]=k+1 then begin time[i]:=0; dfs(k+1); time[i]:=k+1; end; inc(sum); fori:=1 to n do{<回溯>} iftime[i]=k+1 then begin time[i]:=0; dec(sum); end; if(not b)and(sum<ans) then ans:=sum;end;begin assign(input,'Epidemic.in');reset(input); assign(output,'Epidemic.out');rewrite(output); readln(n,m); fori:=1 to m do begin readln(x,y); inc(a[x,0]); {<因为题目没说,所以指不定谁传染谁>} a[x,a[x,0]]:=y; inc(a[y,0]); a[y,a[y,0]]:=x; end; build(1); sum:=1;ans:=maxlongint; time[1]:=1; dfs(1); writeln(ans); close(input);close(output);end.题目来源:http://yt.tyvj.cn:8080/Problem_Show.asp?id=1041
- Noip 2003T4 传染病控制
- NOIP 2003 传染病控制
- 洛谷 P1041 [NOIP2003 T4] 传染病控制
- [NOIP 2003] 传染病控制:创造性地DFS,最优性剪枝
- 【NOIP2003提高组T4】传染病控制-DFS剪枝
- [NOIP提高组2003]传染病防治
- 传染病控制
- 传染病控制
- 【NOIp 2003】【树结构·搜索】传染病防治
- [NOIP2003]传染病控制【搜索】
- 【noip2003】传染病控制
- Codevs 传染病控制
- NOIP2003 传染病控制
- CODEVS 1091 传染病控制
- 洛谷 P1041 传染病控制
- 洛谷1041 传染病控制
- 算法提高 传染病控制
- 算法提高 传染病控制
- SAX解析
- Dom解析
- oracle 中 for update与for update of的区别
- DLX hdu3111 hdu 3909 hdu3663 hdu3957
- 关于js兼容性的解决办法
- Noip 2003T4 传染病控制
- Android Notification 用法
- 【工作相关】 工作初段 1
- android学习:ExpandableListView的运用
- struts2中action 跳转的传值问题
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- OceanBase:编译、安装和配置手册
- 跳槽切不能说的四大离职理由
- 访问动态链接库中的C++类和资源