2012年3月24日

zjoi 2007 storage 仓库建设 动态规划

摘要: 【问题描述】 L公司有N个工厂,由高到底分布在一座山上。如图所示,工厂1在山顶,工厂N在山脚。 工厂i目前已有成品数量Pi; 由于这座山处于高原内陆地区(干燥少雨),L公司一般把产品直接堆放在露天,以节省费用。突然有一天,L公司的总裁L先生接到气象部门的电话,被告知三天之后将有一场暴雨,于是L先生决定紧急在某些工厂建立一些仓库以免产品被淋坏。 由于地形的不同,在不同工厂建立仓库的费用可能是不同的。第i个工厂目前已有成品Pi件,在第i个工厂位置建立仓库的费用是Ci。对于没有建立仓库的工厂,其产品应被运往其他的仓库进行储藏,而由于L公司产品的对外销售处设置在山脚的工厂N,故产品只能往山下运(即.. 阅读全文

posted @ 2012-03-24 18:42 myoi 阅读(876) 评论(2) 推荐(0) 编辑

spoj 2939 Query on a tree V 动态树分治

摘要: 题意:给一棵树,树上的节点黑白染色,初始时全黑。每次操作可以改变一个节点的颜色,或者查到某点最近的白点距离。 1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<cstring> 5 #include<algorithm> 6 #include<queue> 7 using namespace std; 8 #define NMAX 100010 9 struct node 10 { 11 int num; 12 node *next; 阅读全文

posted @ 2012-03-24 17:10 myoi 阅读(540) 评论(0) 推荐(0) 编辑

spoj 2666 Query on a tree IV 动态树分治

摘要: 题意:给一棵有边权树,树上的节点黑白染色,初始时全白。每次操作可以改变一个节点的颜色,或者查询最远的两个白点的距离。思路:同zjoi 2007 hide 1 #include<iostream> 2 #include<cmath> 3 #include<cstdio> 4 #include<cstring> 5 #include<algorithm> 6 #include<queue> 7 using namespace std; 8 #define NMAX 100010 9 struct node 10 { 11 in 阅读全文

posted @ 2012-03-24 17:07 myoi 阅读(1089) 评论(0) 推荐(0) 编辑

zjoi 2007 hide 捉迷藏 动态树分治

摘要: 题意:捉迷藏 Jiajia和Wind是一对恩爱的夫妻,并且他们有很多孩子。某天,Jiajia、Wind和孩子们决定在家里玩捉迷藏游戏。他们的家很大且构造很奇特,由N个屋子和N-1条双向走廊组成,这N-1条走廊的分布使得任意两个屋子都互相可达。 游戏是这样进行的,孩子们负责躲藏,Jiajia负责找,而Wind负责操纵这N个屋子的灯。在起初的时候,所有的灯都没有被打开。每一次,孩子们只会躲藏在没有开灯的房间中,但是为了增加刺激性,孩子们会要求打开某个房间的电灯或者关闭某个房间的电灯。为了评估某一次游戏的复杂性,Jiajia希望知道可能的最远的两个孩子的距离(即最远的两个关灯房间的距离)。 我们将以 阅读全文

posted @ 2012-03-24 17:03 myoi 阅读(1150) 评论(0) 推荐(0) 编辑

导航