2011年7月29日

POJ1008-Maya Calendar

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309435560大致题意:有中文版= = 我不多说解题思路:模拟题,细心点就好了,没难度。Habb历一年365天Tzolkin历一年260天先计算Habb历从第0天到输入日期的总天数sumdaySumday/day就是Tzolkin历的年份Tzolkin历的天数Name每20一循环,先建立Tzolkin历天数Name与1~20的映射,因此Sumday %20+1就是Tzolkin历的天数NameTzolkin历的天数ID每13一循环,且从1开始,则Sumday %13+1就是Tzolk 阅读全文

posted @ 2011-07-29 19:35 小優YoU 阅读(338) 评论(0) 推荐(1) 编辑

POJ3239-Solution to the n Queens Puzzle

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303915357大致题意:八皇后的扩展:N皇后问题PS: 我用了传统DFS回溯 和 构造法 两种方法去解决解题思路:先说说传统回溯的DFS思路:按行逐行填放皇后,标记已填放的列,两斜边的标记则利用 斜率 进行标记,当 准备填放的点 与 任一已填放的点 之间的斜率为1或-1时,那么该位置不允许填放虽说是八皇后的扩展,但这么一扩展就难很多了。。。题目要求n值范围在 8到300之内,Time还限制在1000ms ,传统的DFS回溯肯定是用不了,用传统的方法求解,n值超过30就爆了那么这题只能 阅读全文

posted @ 2011-07-29 09:14 小優YoU 阅读(344) 评论(0) 推荐(0) 编辑

POJ3295-Tautology

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1309062835大致题意:输入由p、q、r、s、t、K、A、N、C、E共10个字母组成的逻辑表达式,其中p、q、r、s、t的值为1(true)或0(false),即逻辑变量;K、A、N、C、E为逻辑运算符,K --> and: x && yA --> or: x || yN --> not : !xC --> implies : (!x)||yE -->equals : x==y问这个逻辑表达式是否为永真式。PS:输入格式保证是合法的解题思 阅读全文

posted @ 2011-07-29 09:02 小優YoU 阅读(1127) 评论(0) 推荐(0) 编辑

POJ2586-Y2K Accounting Bug

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299234147题意比较难懂,其实只要读懂题意,就很简单了。大意是一个公司在12个月中,或固定盈余s,或固定亏损d.但记不得哪些月盈余,哪些月亏损,只能记得连续5个月的代数和总是亏损(<0为亏损),而一年中只有8个连续的5个月,分别为1~5,2~6,…,8~12问全年是否可能盈利?若可能,输出可能最大盈利金额,否则输出“Deficit".根据经验,贪心选择往往都在极端处(临界点)选择。(其实这题不用贪心,单纯枚举也可以AC,因为不同情况实在太少呐。。。。不难证明,每连续 阅读全文

posted @ 2011-07-29 00:31 小優YoU 阅读(357) 评论(0) 推荐(1) 编辑

POJ2109-Power of Cryptography

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299228474提示:一般思路:二分+高精度算法但是本题还有一个更加巧妙的办法去处理:首先需要明确:double类型虽然能表示10^(-307) ~ 10^308, (远大于题意的1<=p<10101这个范围),但只能精确前16位,因此必须慎用!那么为了避免double对输入的数在运算过程中进行精确,那么我们必须让double的运算第一步就得到一个int(即小数点尾数全为0),这个不难理解。然后根据题意,是求指数k,一般人自然想到利用 对数log,即k=lognp。但是不要 阅读全文

posted @ 2011-07-29 00:29 小優YoU 阅读(1091) 评论(0) 推荐(1) 编辑

POJ1328-Radar Installation

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299228061提示:简单的贪心正确的算法是:要考虑把雷达站放到哪个位置使得包含雷达的区间最多! 写算法的时候要注意,按海岛的横坐标排序(纵坐标是跟随横坐标,但不能对排序构成任何影响)后,第一个雷达建立在区间的右端,然后依次判断每个区间的左端点,如果在最新建立的雷达右面,那么肯定需要一个雷达,而且也建在区间右端。如果左端点在雷达左面,这个时候要考虑区间的右端在雷达的左面还是右面,如果是右面,那雷达位置就不变,如果在左面,那现在的雷达是覆盖不了的,所以要把雷达放在该区间的右端点!因为这样 阅读全文

posted @ 2011-07-29 00:26 小優YoU 阅读(242) 评论(0) 推荐(1) 编辑

POJ2965-The Pilots Brothers' refrigerator

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299077378提示:这题和POJ1753翻转棋的思想是一致的,需要注意的是要求输出翻转过程,因此不能用BFS,必须用DFS(找到目标后,还要过程回溯)与POJ1753相比,这题还要注意翻棋的方法,若不注意会大大浪费时间导致超时,因为是整行整列翻转,在边界处会出现很多多余操作。代码中详细说明同样本题有两种方法,Enum和Bit ,下面分别贴出这两种代码 1 /*代码一:DFS+Enum*/ 2 3 4 5 //Memory Time 6 //240K 641MS 7 8 //本题由于要 阅读全文

posted @ 2011-07-29 00:24 小優YoU 阅读(512) 评论(0) 推荐(1) 编辑

POJ1753-Flip Game

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299076400提示:翻转棋,可以建模为多叉树本题难点有两个,一个就是不要以全黑(或全白)作为目标进行搜索,而是要把全黑(或全白)作为“根”,去搜索树叶,看看是否有 输入的棋盘状态。另一个难点需要一点数学功底,就是要知道 树 的最大高度,这是“状态不存在”的判断标准提示:其实每格棋子最多只可以翻转一次(实际是奇数次,但这没意义),只要其中一格重复翻了2次(不论是连续翻动还是不连翻动),那么它以及周边的棋子和没翻动时的状态是一致的,由此就可以确定这个棋盘最多只能走16步,最多只能有翻出2 阅读全文

posted @ 2011-07-29 00:08 小優YoU 阅读(2918) 评论(0) 推荐(3) 编辑

2011年7月28日

POJ3094-Quicksum

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299074589提示:不用提示了= = 超级水。。。。别弄错权值就是了。。 1 //Memory Time 2 //224K 16MS 3 4 #include<iostream> 5 #include<cstring> 6 using namespace std; 7 8 int value[91]; 9 10 void value_alphabet(void)11 {12 int i,j;13 for(i='A',j=1;i<=' 阅读全文

posted @ 2011-07-28 23:56 小優YoU 阅读(222) 评论(0) 推荐(0) 编辑

POJ2255-Tree Recovery

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299063032提示:二叉树遍历而已。。。给出前序和中序,求后序解题思路1、前序遍历的第一个字母必是 根2、在中序遍历的字母串中找出 根字母,那么根字母左右两边的字符串就分别是它的左、右子树3、利用递归复原二叉树(把子树看作新的二叉树)4、后序遍历特征:后序遍历字母串 自右至左 依次为:最外层(总树,设为第0层)右子树的根,内1层右子树的根,内2层右子树的根….内n层右子树的根,内n层左子树的根,内n-1层左子树的根……内1层左子树的根,最外层(总树,第0层)左子树的根。把总树的左子树 阅读全文

posted @ 2011-07-28 23:54 小優YoU 阅读(414) 评论(0) 推荐(1) 编辑

导航