博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[HNOI2003]消防局的设立
阅读量:5757 次
发布时间:2019-06-18

本文共 807 字,大约阅读时间需要 2 分钟。

OJ题号:BZOJ1217、洛谷2279

思路:贪心。

先O(n)递推记录各个结点的深度,然后从深度大的结点贪心,如果当前结点不安全,就在它爷爷地方开消防局,同时更新上下二代的安全信息。

1 #include
2 #include
3 #include
4 #include
5 #include
6 const int N=1001; 7 int p[N]; 8 bool safe[N]= {
0}; 9 std::vector
c[N];10 struct Vertex {11 int id,depth;12 bool operator > (const Vertex &x) const {13 return this->depth>x.depth;14 }15 };16 Vertex v[N];17 void update(const int x) {18 safe[p[x]]=safe[p[p[x]]]=true;19 for(unsigned int i=0; i
());40 int ans=0;41 for(int i=1; i<=n; i++) {42 if(safe[v[i].id]) continue;43 update(p[p[v[i].id]]);44 ans++;45 }46 printf("%d\n",ans);47 return 0;48 }

 

转载于:https://www.cnblogs.com/skylee03/p/7008154.html

你可能感兴趣的文章
MongoDB实战系列之五:mongodb的分片配置
查看>>
Unable to determine local host from URL REPOSITORY_URL=http://
查看>>
java基础(1)
查看>>
ORACLE配置,修改tnsnames.ora文件实例
查看>>
Workstation服务无法启动导致无法访问文件服务器
查看>>
.Net组件程序设计之远程调用(二)
查看>>
ant中文教程
查看>>
Linux常用命令(一)
查看>>
WSUS数据库远端存储条件下切换域及数据库迁移
查看>>
【VMCloud云平台】SCAP(四)租户(一)
查看>>
linux释放内存的方法
查看>>
基于 Android NDK 的学习之旅----- C调用Java
查看>>
我的友情链接
查看>>
Android图形显示系统——下层显示4:图层合成上(合成原理与3D合成)
查看>>
Windows 10 技术预览
查看>>
Tomcat http跳转https
查看>>
一个自动布署.net网站的bat批处理实例
查看>>
tomcat 安装
查看>>
我的友情链接
查看>>
Centos6.6安装选包及基础场景说明
查看>>