摘要: 数学模型:在数轴上画n条线段,求最长的连续线段的长度和最长的空白的长度(线段间的空白)。分析:读数据时只读入有效线段,被其他线段完全覆盖的略去,然后根据线段的起点排序,此时相邻线段要么中间有空白,要么相交,若相交则合并为一条线段,经过处理后得到cnt条互不相交的线段,此时统计结果即可。View Code /*ID: lijian42LANG: C++TASK: milk2*/#include <stdio.h>#include <stdlib.h>#define MAX(a,b) ((a)>(b)?(a):(b))#define N 5001int n;struc 阅读全文
posted @ 2012-07-20 23:32 BeatLJ 阅读(241) 评论(0) 推荐(0) 编辑
摘要: 题目大意:统计从1900年1月1号开始的n年时间内,每个月的13号落在星期一、星期二、星期三……星期日的次数。分析:从今年某个月的13号到明年那个月的13号经过的时间恰好是一年,经过的天数可能是365或366,从今年的1月13到明年的1月13经过的天数是由今年的二月份的天数决定的,也就是由今年是否是闰年决定的,2月也是一样,但从今年的3月13到明年的3月13经过的天数是由明年的二月份的天数决定的,也即由明年是否是闰年决定,4、5、6、……12月也一样。365%7=1366%7=2知道了以上2个算式,便可以从今年每月13的星期数推得明年的每月13的星期数,以后n年的都可以推出。递推的初始边界为1 阅读全文
posted @ 2012-07-20 22:40 BeatLJ 阅读(244) 评论(0) 推荐(0) 编辑
摘要: 此题是经典树形DP题,没有上司的晚会。公司所有人员之间的关系可以用一个树来表示,任何一个人(除了最大的boss外)都有且只有一个直接上司,现要开一个Party,邀请尽量多的人参加,要求任何人不得与直接上司同时参加。抽象后的数学模型:在一棵树中,最多能选取多少结点,使得任何结点之间没有直接连边。状态设计:d[i][0]表示在以i为根结点的子树中,在不选结点i的情况下最多能选取的结点数目,d[i][1]表示在以i为根结点的子树中,在选取结点i的情况下最多能选取的结点数目。状态转移:d[i][0]=(max(d[j][0],d[j][1])),j为i的儿子结点,d[i][1]=∑(d[j][0]), 阅读全文
posted @ 2012-07-20 17:04 BeatLJ 阅读(269) 评论(0) 推荐(0) 编辑
摘要: Description有N个点,有一个商人想经过所有的点恰好一次(商人最终不一定要回到起点),求商人需要走最短路程。Input两个整数N,M表示图的点数和边数,接下去有M行,每行三个整数a ,b ,c 表示从a到b有一条无向边,长度是cN<=15 c<=10000Output输出商人需要走过的最短距离 ,如果不能到达所有的点,输出-1 。Sample Input4 6 1 2 1 1 4 2 4 3 4 2 3 3 2 4 6 1 3 5Sample Output6将已走过的点和未走过的点用二进制编码成整数,然后再DP.例如:共4个点,1和2已走过,3和4未走,此时状态编码为二进制 阅读全文
posted @ 2012-07-20 16:40 BeatLJ 阅读(189) 评论(0) 推荐(0) 编辑