【DFS】CODE[VS] 1091 传染病控制
2016-11-10 12:11
302 查看
点击进入异世界
前排膜DQS
真·暴力
暴力邻接表建图,然后按轶搜索(预处理出深度),搜到没有儿子时返回
搜索这类题,思想都没什么难度,主要考察代码能力(QAQ)
THE END
强无敌
By Peacefuldoge
http://blog.csdn.net/loi_peacefuldog
前排膜DQS
真·暴力
暴力邻接表建图,然后按轶搜索(预处理出深度),搜到没有儿子时返回
搜索这类题,思想都没什么难度,主要考察代码能力(QAQ)
#include <cstdio> #include <cstring> #include <cstdlib> #include <iostream> #include <algorithm> const int maxn = 5005; using namespace std; int n,p; int tot; int head[maxn]; int rank[maxn],fa[maxn]; bool used[maxn]; bool gun[maxn]; int ans = 0x3ffffff; struct node{ int f,t,next; }e[maxn << 3]; inline int read() { int f = 1; int data = 0; char ch; while(ch < '0'||ch > '9') { ch = getchar(); if(ch == '-') {f = -1;} } do { data = data*10+ch-'0'; ch = getchar(); }while(ch >= '0'&&ch <= '9'); return f*data; } inline void build(int x,int y) { tot += 1; e[tot].f = x; e[tot].t = y; e[tot].next = head[x]; head[x] = tot; } inline void dfsrank(int x) { if(used[x])return; used[x]=1; for(int i = head[x];i;i = e[i].next) { int u = e[i].t; if(used[u] == 0) { fa[u] = x; rank[u] = rank[x]+1; dfsrank(u); } } } inline void violent(int c,int sum) { bool hson = 1; if(sum >= ans)return; for(int i = 1;i <= n;i++) { if(rank[i] == c&&gun[i] == 1) { for(int j = head[i];j;j = e[j].next) { int u = e[j].t; if(fa[u] == i) { hson = 0; gun[u] = 1; sum++; } } } } for(int i = 1;i <= n;i++) { if(rank[i] == c+1&&gun[i]) { sum--; gun[i] = 0; violent(c+1,sum); gun[i] = 1; sum++; } } for(int i = 1;i <= n;i++) if(rank[i] == c&&gun[i]) { for(int j = head[i];j;j = e[j].next) { int u = e[j].t; if(fa[u] == i) { gun[u] = 0; sum--; } } } if(hson == 1) ans = min(ans,sum); } int main() { n = read(); p = read(); for(int i = 1;i <= p;i++) { int a,b; a = read(); b = read(); build(a,b); build(b,a); } rank[1] = 1; gun[1] = 1; dfsrank(1); violent(1,1); printf("%d",ans); return 0; }
THE END
强无敌
By Peacefuldoge
http://blog.csdn.net/loi_peacefuldog
相关文章推荐
- codevs1091 传染病控制
- 传染病控制(codevs 1091)
- Codevs 1091 传染病控制
- CODEVS 1091 传染病控制
- Codevs 传染病控制
- 洛谷 1041 [NOIP2003] 传染病控制 dfs
- Codevs 1215 迷宫(DFS)
- 【vijos P1914】【codevs 3904】[NOIP2014 普及组T4]子矩阵(dfs+状压dp)
- codevs1018 单词接龙(DFS)
- codevs 5570 Xor(dfs)
- CODEVS 1018 单词接龙(DFS)
- [NOIP1999提高] CODEVS 1047 邮票面值设计(dfs+dp)
- NOIP2003传染病控制[按层DFS]
- 【DFS】CODE[VS] 2066 三角恋(刷题记录)
- [NOIP 2003] 传染病控制:创造性地DFS,最优性剪枝
- Codevs5570 Xor dfs找环
- codevs1018 单词接龙(DFS)
- Codevs 1018 单词接龙 (DFS)
- Codevs 1218 疫情控制 2012年NOIP全国联赛提高组
- codevs 1043 方格取数 (dfs or dp)