随笔 - 386
文章 - 0
评论 - 21
阅读 -
21万
10 2013 档案
POJ2031Building a Space Station
摘要:http://poj.org/problem?id=2031题意:你是空间站的一员,太空里有很多球形且体积不一的“小房间”,房间可能相距不近,也可能是接触或者甚至是重叠关系,所有的房间都必须相连,这样的话宇航员才能从这个房间走到另一个房间,而宇航员从一个房间走到另一个房间,只要满足三个条件中的一个即可:1两个房间是接触的,2两个房间是重叠的,3两个房间之间有走廊相连。也因此若是没有接触的两个小房间就要有走廊连接,忽略走廊的宽度,花费与长度成正比,所以当然是花费越少越好,而球与球之间的距离只接触到两球的表面即可,因为两球的表面相距最近,因此你的工作就是算给出的几个小房间中要达到相连的状态需花费的
阅读全文
POJ3096Surprising Strings(map)
摘要:题意:输入很多字符串,以星号结束。判断每个字符串是不是“Surprising Strings”,判断方法是:以“ZGBG”为例,“0-pairs”是ZG,GB,BG,这三个子串不相同,所以是“0-unique”,“1-pairs”是ZB,GG,这两个也是不同的,所以是“1-unique”,“2-pairs”是ZG,所以是“2-unique”;综合起来是“Surprising Strings”。思路:用map就可以,做的时候手欠用了暴搜,结果发现竟然0ms过了,不科学。而用map花了16ms非常的不科学。用暴搜的话就是for循环枚举即可,用一个数组标记一下两个字符的和,就行。map的代码:#in
阅读全文
模板类
摘要:这是我从网上看模板的时候看的一个不完整的代码,然后想弄成一个完整的代码,结果错误特别多,好不容易在ZN还有二货的帮助下弄出来,主要是运算符重载,还有类模板#include#includeusing namespace std;template//类模板是类的抽象,类是类模板的实例,就是说T可以换成任...
阅读全文
POJ1265Area
摘要:http://poj.org/problem?id=1265题意 : 给你一个点阵,上边有很多点连成的多边形,让你求多边形内部的点和边界上的点以及多边形的面积,要注意他每次给出的点并不是点的横纵坐标,而是相对于上一个点的横纵坐标离开的距离dx,dy,所以你还要求一下每个点的坐标,然后再进行别的操作就可以了思路 :先用GCD函数求出边界上的点,用Pick公式求出边界多边形内部的格点数Pick公式:给定顶点坐标均是整点的简单多边形,有:面积=内部格点数目+边上格点数目/2-1;#include#include#include#include#includeusing namespace std ;
阅读全文
POJ1260Pearls
摘要:http://poj.org/problem?id=1260题意 :这个题大概是讲,给你几种等级不同的珠宝,然后告诉你它的数量和价值,等级是升序排列的,且随等级的升高价值也随之升高,但为了防止有的客户只购买一个珍珠,所以无论买哪一种的珍珠必须额外付这个等级珍珠的10倍的价钱,要求买够它给定的珍珠的种数中每一种珍珠的数量的总和,要求花费最小,等级低的可以用等级高的代替掉。思路 : 典型的动态规划,就是求一个最优解嘛,这个题倒不什么难,就是思路对很重要,看了大神的解题报告,0MS,挺好的 。样例解释 : 样例中最开始的2代表的是测试样例的组数,然后是珍珠的种数,等级按升序排列,然后第一组样例中按照
阅读全文
POJ3267The Cow Lexicon
摘要:http://poj.org/problem?id=3267题意 : 给你一个message,是给定字符串,然后再给你字典,让你将message与字典中的单词进行匹配,输出要删掉多少字母。思路 : 动态规划问题,不仅要找对公式,还要注意一些细节问题样例解释 : 6是字典里有6个单词,10是给定的字符串的长度,给定的字符串可以与下面的brown和cow匹配,但要删掉两个字母6 10browndcodwcowmilkwhiteblackbrownfarmer#include#include#include#includeusing namespace std ;int main(){ int...
阅读全文
POJ1276Cash Machine
摘要:http://poj.org/problem?id=1276题意 : 给你一个目标钱数,再给你钱币的种数和钱币的面值,让你用这些钱凑出不大于目标钱数的钱然后输出这个最接近且不大于目标钱数的钱。思路 : 背包问题,还是多重背包,就是找到公式然后注意一下数组大小,还要小小的注意一下,因为那个钱数的范围挺大的,做一个小小的优化吧也算是 。代码 :#include#include#includeusing namespace std ;struct node{ int n; int d ;} cas[21] ;int main(){ int cash ; int n,ch[11...
阅读全文
POJ3176Cow Bowling
摘要:http://poj.org/problem?id=3176题意:就是一个数塔的问题,属于最简单的动态规划题了吧,数塔从上到下只能找它下面的和它下面的右边的那一个想加,加到最后一行,看加哪个数可以保证最后结果相同。这个题其实是非常非常简单的动态规划问题,只是因为以前做过,就没再上心,结果就悲剧的WA了,后来才发现其实是掉了一个等号,而恰好以前也这样做过,因为OJ数据弱,掉了等号就过了。思路 : 我的思路是从下往上加,这样的话慢慢的找最大值会比较容易,每次比较即可#include#include#includeusing namespace std;#define max 1000int s[m
阅读全文