搜索算法设计专题分析.ppt
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 最长边 原点到最右边点距离 确定最右点,删除最长边 剩余最长边 某个新点到原点,或者到最右边的点的距离 枚举这两种方案(字典序小的优先 把局面上新出现的距离都从集合中删除 在一棵有根树上,A、B君轮流砍边。A君只能砍红边,B君只能砍黑边。边带权,砍边的人得到边的权值。令D=A的得分-B的得分,A试图使D最大化,B试图使D尽可能小。求最终得到的D。 N=20 100 51 50 终结节点:只剩根的情况。此时D(S)=0。 边的情况:如果能通过砍边而连接起来的两个状态之间连一条有向边。 图无环,且每个节点连出的边的数量为n阶的。 节点数量:220 要求把N( N≤36)个人成相等的两组 第i个人在第一组有ai的得分,在第二组有bi的得分 要求第一组人的得分和第二组人的得分差距尽量小,并求字典序最小方案 将N个人平均分为两部分 对于前半部分,令第一组人数比第二组多i,枚举所有分组方法,按照第一组比第二组多得分多少排序。 对于后半部分,令第一组人数比分到第二组少i个,枚举,之后在表里二分查找合并后能使第一组人的得分和第二组人的得分差距尽量小的前半段分法,更新答案。 问题要求设计一个m层的蛋糕,蛋糕的体积为Nπ, 蛋糕中每一层都是一个圆柱体,而且每一层的高度H和半径R均要比下一层的小 对于给定的n和m,求蛋糕最少可能的表面积(不包括最下一层的下底面)大小。 由于R和H是从下到上递减,所以体积也是从下到上递减,因此选择从下到上的搜索顺序有利于判断当前情况是否可行。 此外,注意到表面积包括每层蛋糕的侧面积和裸露的顶面积。确定了最底层的蛋糕就确定了每层蛋糕裸露的顶面积之和,需要考虑的只剩下每层蛋糕的侧面积。因此这样的搜索顺序有利于判断是否可能出现比已知最优解更优的解。 给出一个用正三角形平铺的地图,若两个三角形有公共边,则称之为相连。 把一个内部没有空洞的正三角形连通块称之为岛屿,若两个岛屿翻转或旋转后相同,那么称之为相同的岛屿 现在你要回答下面两个询问: 给出一个有N个三角形的岛屿,问在增加一个正三角形后可以变成多少个不同的岛屿; 询问有多少个不同的且有N个三角形的岛屿。 N10 先对于第二类问题,我们可以看作第一类问题的扩展版 所有的N个三角形的岛屿都可以看作是由N-1个三角形的岛屿增加一个正三角形后得到的 由于问题求的是最后所有不同的岛屿的外围轮廓线(顺时针方向),因此,我们存储的时候也只要记录轮廓 在外围增加一个三角形的操作,即在一条原来的轮廓线上突出一个三角形(绿色部分) 两种特殊情况 绿色的边在轮廓线相邻位置重复出现,所以要删掉往返走的轮廓线部分 紫色的边在廓线不相邻上相邻重复出现,因此构成了一个环,不是合法解。 有N个人和M种事件(例如刷牙、吃饭、睡觉) Q[i]=(Q[i,1], Q[i,2]…Q[i,C[i]])表示第i个人一天的事件序列,C[i]表示第i个人一天做的事情的总数(Q[i,j]是M种事件之一) 那么整个世界的轨迹可以表示为P=(Q[i1,j1], Q[i2,j2]…Q[il,jl]). P满足对于每个人Q[i,j]都出现一次且一次并且Q[i,j1]出现在Q[i,j2]之前(j1j2) 相关是事件之间的二元关系 P1和P2的本质不同当且仅当存在相关事件Q在其中先后位置不同 给出每个人的事件序列Q[i],和任意两个事件之间的相关关系,求本质不同的事件总数(保证总数小于1000000,N10, M15, Ci20) Q[1,0] = 0, Q[1,1] = 1 Q[2,0] = 2, Q[2,1] = 1 只有0和2不相关 P1 = Q[1,0], Q[1,1], Q[2,0], Q[2,1] P2 = Q[1,0], Q[2,0], Q[1,1], Q[2,1] P3 = Q[1,0], Q[2,0], Q[2,1], Q[1,1] P4 = Q[2,0], Q[2,1], Q[1,0], Q[1,1] P5 = Q[2,0], Q[1,0], Q[2,1], Q[1,1]? 我们把每个人的每个事件当作一个点,来构造一个有向图,图中存在边E(u,v)表示u事件比v事件先发生。 首先根据定义,这个图一定是一个拓扑图,因为事件之间发生的先后关系不可能构成一个环。 对于每个人来说,由于他的事件要按顺序发生,所以我们可以把他的所有事件点连成一条链。 对于不相关的事件,不关心他们之间的先后顺序,不用连边。 我们只在相关的事件之间连边,这些边的方向直接决定了当前世界轨迹的本质 给出一个连通无向图,要
显示全部