
数据结构-stl
flowser
you are what you want to be
展开
-
uva1267 - Network
题意:r一个编号1~n的n个结点的树状网络,其中间结点称服务器,叶子节点称客户端,从编号s的终端服务器开始可以将网络扩散k条边给客户端,除终端服务器外的服务器可任意设置,使其也可扩散k条边至客户端,问至少要设置多少个这样的服务器才能让所有客户端都可以接收到网络。思路:这题是从叶节点倒着遍历整棵树的,f[i]存i的父节点,g[i][j]则存第k层后的第i层的叶子,用两个dfs和s原创 2016-02-02 14:24:13 · 332 阅读 · 0 评论 -
uva11549 - Calculator Conundrum
题意:一个数k,让它一直平方一直平方,它只能显示n位数,求这个n为数最大为多少。思路:我们可以得到,这个数将出现循环,所以可用set容器中的count函数检测某元素在此前是否出现过,一直获得下一个数,保留最大值即可。代码:#include #include #include #include #include #includ原创 2016-02-02 15:28:02 · 314 阅读 · 0 评论 -
uva1382- Distant Galaxy (枚举)
题意:一个平面,n个点,找一个矩形(和x,y坐标平行),使矩形边界上的点更多。思路:枚举矩形的上下边界,再由其它条件求得左右边。left【i】表示竖线i左边的上下边界有多少点,on【i】表示竖线i不包括上下边界含有多少个点,on2【i】则表示竖线i包括上下边界含有多少点。若i表示左边界竖线,j表示右边界竖线,总数则为:left【j】+on2【j】+on【i】-left【i】.原创 2016-02-02 16:10:57 · 327 阅读 · 0 评论 -
uva10859 - Placing Lampposts
题意: 有n个点m条边的无向无环图,在尽量少的点放灯,让所有边都能被照,且尽量多的边同时被找到。 思路: 题目有两个地方要控制,a:一个是放灯的点——要尽量少,b:第二个是被两盏灯照到的边—-尽量多。 学到一个小技巧,就是将第二问题转为b:被一盏灯照到的边 — 尽量少,所求即x=Ma+b最小,M为一个比a,b大得多的数。 然后就是控制x使其最小了。 代码如下:#include <iost原创 2016-02-13 12:15:22 · 476 阅读 · 0 评论