POJ
文章平均质量分 76
wonderwangwang
这个作者很懒,什么都没留下…
展开
-
poj1013
可以参考http://www.slyar.com/blog/poj-1013-c.html上的测试用例 #include#include#define ABS(x) (x)>0?(x):(-x)int main(){ int i, j, k, n; char left[3][7],right[3][7];//分别存储左右两边 int result[3]原创 2012-09-29 16:38:20 · 248 阅读 · 0 评论 -
poj1026
分析:key:4 5 3 7 2 8 1 6 10 9(转换为数组的下标为:3 5 2 6 1 7 0 6 9 8)消息长度也为10,下标为0 1 2 3 4 5 6 7 8 9其实就是消息的下标按照key来置换,当经过若干次交换之后又会回到原来的位置,姑且称这个交换的次数为循环长度loopLen例如:0->3->6->0,那么0号位置的消息字符的循环长度loopLen[原创 2013-03-27 10:30:14 · 1344 阅读 · 0 评论 -
POJ1028
感觉水题一道,偷了个懒,直接用vector来实现栈,将vector的尾端看做栈的顶端,在这里就行pop和push操作。。。push就直接用vector的push_back方法,pop就用vector的back方法,并用erase删除顶端元素。注意:end操作返回的是最后一个元素的下一个位置,所以要减去1。#include#include#includeusing namespa原创 2013-04-15 21:30:48 · 1216 阅读 · 0 评论 -
poj1032
题目的意思可以转化为:给出一个数n,将其拆分为若干个互不相等的数字的和,要求这些数字的乘积最大。参考discuss里的思路:做法就是求出以2起始的最大连续自然数序列之和sum,使得sum的值不超过输入数n然后分情况讨论:设此最大序列为2、3、……、i,则:(1)若剩余值(n-sum)等于i,则最后输出序列为:3、4、……、i、i+2,即将原最大序列每项加1,再将最后剩余的一个1原创 2013-04-24 11:16:33 · 717 阅读 · 0 评论 -
POJ1029
首先,出现在=两边的硬币都是真的其次,假币只可能出现在不等式(>或最后,如果其他出现过得硬币都是真的,那么假币在未出现过的硬币里面。参考discuss里面的一个人的思路:开一个数组c,对于每一个不等式使重端的所有硬币c[i]++使轻端的所有硬币c[i]--顺带记录不等式的个数count如果abs(c[i])=count并且i没有在等式中出现过,那么i原创 2013-04-16 15:21:33 · 566 阅读 · 0 评论 -
poj1033
这道题感觉简单,却很容易出错,我真的是想昏了,WA了好多次,好不容易对了吧还TLE,无语了。。。。1.先把目标位置空闲的块移动目标位置,中间遇到目标位置不空的就存入conflict中有待解决冲突,同时将该块最终的目标位置相应地存入conflict_to,最后再来解决冲突2.解决冲突时,每空出来一个位置就检测conflict中是不是有目标位置是该位置的块(这个好费时间呀)#inc原创 2013-04-27 21:07:50 · 433 阅读 · 0 评论 -
poj1035
一次AC呀,本来想用vector来保存字典,然后暴搜,后来在breeze的提示下想到了用链表数组dict,把字典中的单词按照长度分一下类,然后把长度相同的链在一起,头结点保存在dict[i]中,其中i是单词的长度。虽然最终用了1563MS,但感觉写得还算漂亮,调理比较清晰。定义了两个结构:链表:typedef struct Node{string word;unsigned原创 2013-04-28 16:31:15 · 362 阅读 · 0 评论 -
poj1041 欧拉回路(值得好好看一下)
一开始按照自己的思路来。结果发现理解错误。题目说的是有多种可行方案时,选择编号较小的street。我以为每到一个节点,只能选择与该结点连接的还未访问过的编号最小的street。。。所以给的数据过了,还是WA。。。以下是错误代码这组数据能通过:1 1 11 1 21 1 31 1 51 1 40 0输出:1 2 3 4 5这组数据就通不过:1 2 12 3原创 2013-05-23 16:21:30 · 1992 阅读 · 0 评论 -
poj1040
参考:http://blog.csdn.net/dreamvyps/article/details/6069844菜鸟,一直对DFS很困惑。。。。测试数据:http://poj.org/showmessage?message_id=17837不要忘了处理订单数为0的情况 //Problem: 1040 //Memory: 224K Time: 438MS //Lang原创 2013-05-10 16:00:01 · 692 阅读 · 0 评论 -
poj1047
一开始以为每次只需要判断一个数字就行,判断完一个数字后程序就结束了,没有考虑处理多组数字。。。没想到是有多组输入的,导致后面出了一些问题。。。因为用了好几个return语句。。。。除此之外,这道题还是思路比较清晰的~~一般acm中只要没限制case个数的 就用while(cin>>i) i为要输入的数据评判系统会自己输入^Z的 你就不用担心了这是discuss里面有人说的,也算原创 2013-05-25 10:08:10 · 1383 阅读 · 0 评论 -
poj1060
主要问题是一开始不理解多项式的除法该怎么做,看了discuss里一个人的提示才明白http://poj.org/showmessage?message_id=145610比如(x^6 + x^4 + x^2 + x + 1) (x^7 + x + 1)=x^13 + x^11 + x^9 + x^8 + x^6 + x^5 + x^4 + x^3 + 1 ,再取x^8 +原创 2013-06-07 16:21:29 · 665 阅读 · 0 评论 -
poj1025
这道题做得我都要吐血了,AC的那一刻真是泪流满面呀~~赶紧给breeze截了个图。。。一开始太菜了,居然想到先让每个人单独进入大楼,记下各自的轨迹,然后再来检查有没有产生冲突,如果产生冲突就解决冲突,更新之后的轨迹~~后来发现可能会出现需要很多更新的情况~~唉,后来一想这方法简直就不能称之为方法。不听breeze言,吃亏在眼前呀~~最终使用的方法也很弱,就是有一个curTime表示当前时间原创 2013-04-02 16:06:04 · 805 阅读 · 0 评论 -
poj1024
参考:http://hi.baidu.com/lewutian/item/2624b2ebd1c0e4255b2d64eb参考:discuss (1)求各点到源点的最小步数(DFS)(2)求各点到终点的最小步数(DFS)(3)如果点不是给定路径上的点,那么:该点到源点的最小步数+该点到终点的最小步数 (4)如果两相邻点a、b之间存在墙,那么:a到源点的最小步数+1+b到终点的最原创 2013-03-04 20:14:14 · 974 阅读 · 0 评论 -
poj1014--贪心算法,dfs
参考http://blog.csdn.net/justmeh/article/details/5806601和http://www.cnblogs.com/linpeidong2009/archive/2012/04/21/2461609.html/*Problem: 1014 Memory: 320K Time: 16MS Language: C++ Result: Accep原创 2012-10-11 17:29:21 · 337 阅读 · 0 评论 -
poj1015--动态规划(DP)
《算法导论》第15章 动态规划与分治算法 相同:都是通过组合子问题的解而解决整个问题。 不同:分治算法是将问题划分成一些独立的子问题,递归地求解各个子问题,然后合并子问题的解而得到原问题的解。 动态规划适用于子问题不是独立的情况,也就是各个子问题包含公共的子子问题。在这种情况下,若用分治算法则会做许多不必要的工作,即重复地求解公共的原创 2012-10-12 14:28:20 · 703 阅读 · 0 评论 -
poj1017--贪心算法
用贪心算法,先从大的开始装~~测试数据参考:http://blog.sina.com.cn/s/blog_7b7c7c5f0100srtp.html/*Problem: 1017 Memory: 156K Time: 16MS Language: C++ Result: Accepted */#include#include#includeint main()原创 2012-10-14 18:57:13 · 353 阅读 · 0 评论 -
poj1016--字符串处理
测试数据参考:http://www.byywee.com/page/M0/S775/775131.html和http://blog.csdn.net/allenlsy/article/details/5306793注意比较字符串时,strncmp函数中的长度应该取哪一个串的长度。/*Problem: 1016 Memory: 156K Time: 32MS Language原创 2012-10-14 15:33:54 · 271 阅读 · 0 评论 -
poj1018
贪婪思路:1,获得一个最小和最大带宽:最小带宽是各个设备最小带宽的最小值,最大带宽是各个设备最大带宽的最大值.2,从最小值递增到最大值进行寻找,策划各类设备价格的最小值的和,然后策划出一个比值,若是比值比当前比值大,调换当前比值;3,反复2直到停止.参考:http://www.mysjtu.com/page/M0/S583/583213.html测试数据参考:h原创 2012-10-15 13:43:38 · 387 阅读 · 0 评论 -
poj1019
本来以为是在根据str_loc寻找要输出的数字时过于浪费时间,所以换了一种方法,将最长的串构造出来保存起来(如TLE版本2所示),但是还是超时,要哭了,做了好久了~~ 注意:1. 使用strlen,strcat等函数对字符串操作时,要注意'\0'2. 不要用itoa这样的函数,他不是标准库函数,有些OJ的编译器不让过的。c有sprintf函数,c++有sstream流,都可以取代i原创 2012-10-16 17:21:22 · 304 阅读 · 0 评论 -
poj1020--DFS
一开始以为要用贪心,结果觉得处理起来很混乱一开始用SideNum[]数组来存储各种尺寸的蛋糕的数目的思路是正确的,不应该存储输入的各块蛋糕的尺寸思路和测试用例参考http://blog.csdn.net/lyy289065406/article/details/6683250/*Problem: 1020 Memory: 148K Time: 32MS Languag原创 2012-10-21 16:14:42 · 270 阅读 · 0 评论 -
poj1021-计算度
思路参考:http://blog.csdn.net/lencle/article/details/7206072 http://blog.csdn.net/xinwang24/article/details/6605127说是图经过镜像、旋转、平移变换后点的度数是不变的。因此计算第一个图中点的十字坐标上的点的个数作为其度,然后用同样的方法计算第二个原创 2012-10-30 17:02:08 · 355 阅读 · 0 评论 -
poj1022
参考:http://hi.baidu.com/yuanding232323/item/55db7a9cccdc3ab482d2955e //Source Code//Problem: 1022 Memory: 172K Time: 16MS //Language: C Result: Accepted #include#include#define N原创 2012-12-20 16:25:12 · 400 阅读 · 0 评论 -
poj1023
参考http://blog.sina.com.cn/s/blog_8716ef750100wxxb.html注意:要表示的数字的类型要用long long,在输入时用"%lld" //Source Code//Problem: 1023 Memory: N/A Time: N/A //Language: C Result: Wrong Answer #incl原创 2012-12-20 22:06:20 · 450 阅读 · 0 评论 -
poj1056
一次AC1.需要注意文件结束符的判断cin>>s,当遇到文件结束符时cin返回02.对于codeSet中的每个串,判断它是不是那些比它长的串的前缀子串即可。用substr函数返回前缀子串。//Memory: 196K Time: 0MS//Language: C++ Result: Accepted #include #include原创 2013-06-07 19:54:22 · 1232 阅读 · 0 评论