2012年4月8日

zjoi 2008 tower 瞭望塔 半平面交

摘要: 题意: 致力于建设全国示范和谐小村庄的H村村长dadzhi,决定在村中建立一个瞭望塔,以此加强村中的治安。我们将H村抽象为一维的轮廓。如下图所示 我们可以用一条山的上方轮廓折线(x1, y1), (x2, y2), …. (xn, yn)来描述H村的形状,这里x1 < x2 < …< xn。瞭望塔可以建造在[x1, xn]间的任意位置, 但必须满足从瞭望塔的顶端可以看到H村的任意位置。可见在不同的位置建造瞭望塔,所需要建造的高度是不同的。为了节省开支,dadzhi村长希望建造的塔高度尽可能小。请你写一个程序,帮助dadzhi村长计算塔的最小高度。思路:半平面交 1 #incl 阅读全文

posted @ 2012-04-08 11:36 myoi 阅读(356) 评论(0) 推荐(0) 编辑

2012年4月7日

ceoi 2011 Matching kmp

摘要: 题意:给定一个长度为n的排列,m个数,要求在m个数中选出一段长度为n的数串,使得选出的数串与给定的排列是匹配的。匹配的定义:设给定的排列为A,选出的数串为B,要满足B[A[i]]在数串中排第i小。思路:扩展KMP O(n) 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 #include<cmath> 5 using namespace std; 6 #define MAXN 1000000+100 7 int b[MAXN],a[MAXN],p[MAXN],home[M 阅读全文

posted @ 2012-04-07 21:15 myoi 阅读(378) 评论(0) 推荐(0) 编辑

poj 1755 Triathlon 半平面交

摘要: 题意:在铁人三项比赛中,给出每个人游泳,骑车,跑步的速度,你可以任意安排游泳,骑车,跑步的路程(路程非0),若某人可以获得第一(严格),则输出Yes,否则No思路:半平面交固定一个项目的路程为1,另两个项目的路程为未知数x,y对于每个人,依次判断其是否有可能为第一每个人 建立n-1个方程 求半平面交 若有解 则Yes,否则No 1 #include<iostream> 2 #include<cmath> 3 #include<cstring> 4 #include<vector> 5 #include<cstdio> 6 using 阅读全文

posted @ 2012-04-07 19:43 myoi 阅读(1163) 评论(0) 推荐(0) 编辑

2012年4月4日

zjoi 2008 knight 骑士 图论+动态规划

摘要: 【问题描述】 Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英。他们劫富济贫,惩恶扬善,受到社会各界的赞扬。 最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争。战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队。于是人们把所有的希望都寄托在了骑士团的身上,就像期待有一个真龙天子的降生,带领正义打败邪恶。 骑士团是肯定具有打败邪恶势力的能力的,但是骑士们互相之间往往有一些矛盾。每个骑士都有且仅有一个自己最厌恶的骑士(当然不是他自己),他是绝对不会与自己最厌恶的人一同出征的。 战火绵延,人民生灵涂炭,组织起一个骑士军团加入战斗刻不容缓!国王交给了你一 阅读全文

posted @ 2012-04-04 21:17 myoi 阅读(445) 评论(0) 推荐(1) 编辑

zjoi 2008 party 生日聚会 动态规划

摘要: 【问题描述】 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party。 hidadz带着朋友们来到花园中,打算坐成一排玩游戏。为了游戏不至于无聊,就座的方案应满足如下条件: 对于任意连续的一段,男孩与女孩的数目之差不超过k。 很快,小朋友便找到了一种方案坐了下来开始游戏。hidadz的好朋友Susie发现,这样的就座方案其实是很多的,所以大家很快就找到了一种,那么到底有多少种呢?热爱数学的hidadz和她的朋友们开始思考这个问题…… 假设参加party的人中共有n个男孩与m个女孩,你是否能解答Susie和hidadz的疑问呢?由于这个数目可能很多,他们只想知道这个数目除以12 阅读全文

posted @ 2012-04-04 21:14 myoi 阅读(529) 评论(0) 推荐(0) 编辑

2012年3月29日

poj 1011 Sticks 搜索

摘要: 发一道老早写的题。 1 #include<iostream> 2 #include <algorithm> 3 using namespace std; 4 int a[65]; 5 bool use[65]; 6 int n,m,len; 7 int cmp(int a, int b) 8 { 9 return a > b;10 }11 bool dfs(int i,int sum,int j)12 {13 int k,temp,x;14 if(j==m) return 1;15 else if(sum==len) return dfs(1,0,j+1)... 阅读全文

posted @ 2012-03-29 20:07 myoi 阅读(200) 评论(0) 推荐(0) 编辑

2012年3月26日

zjoi 2007 semi 最大半连通子图 强连通分量 动态规划

摘要: 题意:一个有向图称为半连通的(Semi-Connected),如果满足:,即对于图中任意两点u,v, 存在一条u到v的有向路径或者从v到u的有向路径。若满足,则称G’是G的一个导出子图。若G’是G的导出子图,且G’半连通,则称G’为G的半连通子图。若G’是G所有半连通子图中包含节点数最多的,则称G’是G的最大半连通子图。给定一个有向图G,请求出G的最大半连通子图拥有的节点数K,以及不同的最大半连通子图的数目C。由于C可能比较大,仅要求输出C对X的余数。思路:强连通分量缩点 DP 1 #include<iostream> 2 #include<cstdio> 3 #inc 阅读全文

posted @ 2012-03-26 22:18 myoi 阅读(881) 评论(0) 推荐(1) 编辑

ioi 2011 race 树分治

摘要: 题意: 举办IOI2011 的同时,pattaya 还在举办2011 年国际奥林匹克长跑比赛(IOR)。作为东道主,我们需要找到最佳比赛线路。 在Pattaya-Chonburi 范围内有N 个城市,它们通过N-1 条双向的高速公路相互连通,每条高速公路的长度是一个整数(单位:公里),它连接2 个不同的城市。注意:连接任何两个城市之间的路径有且仅有一条,即只有一条路径从一个城市到另一城市,该路径由一系列的高速公路组成,且路径上的任何一个城市都只能经过一次。 IOR 要求的比赛线路是一条总长度为K 公里的路径,且该路径的起点城市和终点城市不同。任何一条高速公路只可能在比赛线路上出现一次,任... 阅读全文

posted @ 2012-03-26 22:10 myoi 阅读(866) 评论(0) 推荐(0) 编辑

zjoi 2007 particle 粒子运动 计算几何

摘要: 题意:阿Q博士正在观察一个圆形器皿中的粒子运动。不妨建立一个平面直角坐标系,圆形器皿的圆心坐标为(x0, y0),半径为R。器皿中有若干个粒子,假设第i个粒子在时刻0的位置为(xi, yi),速度为(vxi,vyi)(注:这是一个速度向量,若没有发生碰撞,t时刻的位置应该是(xi + t * vxi, yi + t * vyi) )。假设所有粒子的运动互不干扰;若某个粒子在某个时刻碰到了器皿壁,将发生完全弹性碰撞,即速度方向按照碰撞点的切线镜面反射,且速度大小不变(如图)。认为碰撞是瞬间完成的。尽管碰撞不会影响粒子的速率,但是粒子却会受到一定的伤害,所以若某一个粒子碰撞了k次器皿壁,那么在第k 阅读全文

posted @ 2012-03-26 18:37 myoi 阅读(757) 评论(0) 推荐(0) 编辑

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) 编辑

导航