51nod 1314 定位系统
第一行,一个整数N表示城市的数量(1<=N<=50)
接下来会有一个由‘Y’‘N’两个字符构成的N*N矩阵Link,表示城市的链接情况。
对于矩阵中某个元素Link[i][j]=='Y'表示城市i与城市j间有一条无向边,否则为‘N’表示没有边。
一行一个整数K,表示该城市最少需要多少个信号站才能实现每个城市的唯一定位。
特判n=1时ans=0
成链时ans=1
其余情况,ans>0,枚举一个点作为其中一个信号站并作为根,可以发现存在一个最优解,信号站都在叶节点上,而对于非根非叶的点,它的所有链形子树(如果有,且链的一端连着这个点)可以有至多一棵没有信号站,其余每棵子树内都要有信号站,于是可以树形dp
#include<cstdio>
int n;
char s[];
int es[],enx[],e0[],ep=;
int f[],t[];
void dfs(int w,int pa){
f[w]=t[w]=;
int d=;
for(int i=e0[w];i;i=enx[i]){
int u=es[i];
if(u==pa)continue;
if(!t[w])t[w]=;
else t[w]=;
dfs(u,w);
f[w]+=f[u];
if(t[u]<=)d=;
else if(t[u])t[w]=;
}
if(t[w]==)f[w]-=d;
if(!t[w])f[w]=;
}
int main(){
scanf("%d",&n);
if(n==)return puts(""),;
for(int i=;i<=n;++i){
scanf("%s",s+);
for(int j=;j<=n;++j)if(s[j]=='Y'){
es[ep]=j;enx[ep]=e0[i];e0[i]=ep++;
}
}
int ans=;
for(int i=;i<=n;++i){
dfs(i,);
int v=f[i]+(t[i]==);
if(v<ans)ans=v;
}
printf("%d",ans);
return ;
}
51nod 1314 定位系统的更多相关文章
- 【51Nod 1244】莫比乌斯函数之和
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 模板题... 杜教筛和基于质因子分解的筛法都写了一下模板. 杜教筛 ...
- 51Nod 1268 和为K的组合
51Nod 1268 和为K的组合 1268 和为K的组合 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 给出N个正整数组成的数组A,求能否从中选出若干个,使 ...
- 51Nod 1428 活动安排问题
51Nod 1428 活动安排问题 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 1428 活 ...
- 51Nod 1278 相离的圆
51Nod 1278 相离的圆 Link: http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1278 1278 相离的圆 基 ...
- 【51Nod 1501】【算法马拉松 19D】石头剪刀布威力加强版
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1501 dp求出环状不连续的前缀和,剩下东西都可以算出来,比较繁琐. 时间 ...
- 【51Nod 1622】【算法马拉松 19C】集合对
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1622 简单题..直接暴力快速幂 #include<cstdio&g ...
- 【51Nod 1616】【算法马拉松 19B】最小集合
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1616 这道题主要是查询一个数是不是原有集合的一个子集的所有数的gcd. ...
- 【51Nod 1674】【算法马拉松 19A】区间的价值 V2
http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1674 对区间分治,统计\([l,r]\)中经过mid的区间的答案. 我的 ...
- 随便玩玩系列之一:SPOJ-RNG+51nod 算法马拉松17F+51nod 1034 骨牌覆盖v3
先说说前面的SPOJ-RNG吧,题意就是给n个数,x1,x2,...,xn 每次可以生成[-x1,x1]范围的浮点数,把n次这种操作生成的数之和加起来,为s,求s在[A,B]内的概率 连续形的概率 假 ...
随机推荐
- PHP语言基础(标记、注释、变量、数组、常量、函数)
PHP标记风格 1.xml风格(标准风格推荐使用) 代码如下: <?php echo"这是xml风格的标记"; ?> xml风格的标记是常用的标记,也是推荐使用的 ...
- mysql中模糊查询的四种用法介绍
下面介绍mysql中模糊查询的四种用法: 1,%:表示任意0个或多个字符.可匹配任意类型和长度的字符,有些情况下若是中文,请使用两个百分号(%%)表示. 比如 SELECT * FROM [user] ...
- css 属性积累
1. letter-spacing:6px; //属性增加或减少字符间的空白(字符间距) 2. cursor // 鼠标移上去的鼠标状态 属性值有: ...
- psp0
周活动总结表 姓名:苗堃 ...
- 铺地毯 2011年NOIP全国联赛提高组
题目描述 Description 为了准备一个独特的颁奖典礼,组织者在会场的一片矩形区域(可看做是平面直角坐标系的第一象限)铺上一些矩形地毯.一共有n 张地毯,编号从1 到n.现在将这些地毯按照编号从 ...
- POJ1637 Sightseeing tour (混合图欧拉回路)(网络流)
Sightseeing tour Time Limit: 1000MS Me ...
- nginx和apache下的url rewrite
将服务器上面的数据同步到本地之后,发现打开首页显示不正常,本地服务器是apache,经过打开url rewrite之后本地首页正常显示. 原因是phpwind本身支持了url rewrite的功能,但 ...
- Android—常用组件练习
新建一个文件“practice1.xml” 编写代码如下: <?xml version="1.0" encoding="utf-8"?> <L ...
- IOS开发之SWIFT进阶部分
概述 上一篇文章<iOS开发系列--Swift语言> 中对Swift的语法特点以及它和C.ObjC等其他语言的用法区别进行了介绍.当然,这只是Swift的入门基础,但是仅仅了解这些对于使用 ...
- Text 绑定
Text绑定 目的 Text绑定主要是让DOM元素显示参数值. 通常情况下,该绑定在<span>和<em>这样的元素上非常有用,而实际上你可以绑定任何元素. 示例 123456 ...