2011年7月29日

POJ1860-Currency Exchange

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299337940提示:关键在于反向利用Bellman-Ford算法题目大意有多种汇币,汇币之间可以交换,这需要手续费,当你用100A币交换B币时,A到B的汇率是29.75,手续费是0.39,那么你可以得到(100 - 0.39) * 29.75 = 2963.3975 B币。问s币的金额经过交换最终得到的s币金额数能否增加货币的交换是可以重复多次的,所以我们需要找出是否存在正权回路,且最后得到的s金额是增加的怎么找正权回路呢?(正权回路:在这一回路上,顶点的权值能不断增加即能一直进行松 阅读全文

posted @ 2011-07-29 23:47 小優YoU 阅读(374) 评论(0) 推荐(0) 编辑

POJ3982-The Fibonacci sequence

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1305340420变种的大数斐波那契数列水题,直接加就可以了,循环使用4个大数数组a,b,c,ans存放最新的和值,循环25次后的ans就是A99的值 1 //Memory Time 2 //216K 32MS 3 4 #include<iostream> 5 #include<string> 6 using namespace std; 7 8 const int size=1000; //大数位数 9 10 void add(char* aa,char* bb, 阅读全文

posted @ 2011-07-29 20:21 小優YoU 阅读(216) 评论(0) 推荐(0) 编辑

POJ2602-Superlong sums

摘要: 转载请注明出处:優YoUhttp://user.qzone.qq.com/289065406/blog/1305101054非常恶心的大数相加= =首先输入就够恶心了。。。哪有人逐位还要间断输入两个数的。。。。注意:如果用char[]保存加数和被加数,要用getchar()输入, 如果用int[]保存加数和被加数,要用scanf)输入。用cin会超时,cin是重载函数,没有指定格式,输入时比较浪费时间100W的空间不能局部静态申请,单可以全局静态申请,也可以局部动态申请(用new)最恶心得是,我把结果开头的0(如果有的话)删去,竟然WA,真没见过这样的加法!Output file should 阅读全文

posted @ 2011-07-29 20:17 小優YoU 阅读(326) 评论(0) 推荐(0) 编辑

POJ2389-Bull Math

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1305285069大数相乘,水题一道,直接模拟笔算竖式得了,没技巧没算法,秒杀 1 //Memory Time 2 //216K 16MS 3 4 #include<iostream> 5 #include<string> 6 using namespace std; 7 8 const int size=1000; //大数位数 9 10 void mult(char* A,char* B,char* ans)11 {12 int a[size+1]={0};1 阅读全文

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

POJ1503-Integer Inquiry

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299062368提示:就是多个大数相加的问题= = 1 //Memory Time 2 //184K 0MS 3 4 #include<iostream> 5 #include<cstring> 6 using namespace std; 7 8 const int large=1000; 9 char sum_temp[large];10 char digit_temp[large];11 12 int plus(int j,int carry_bit)13 阅读全文

posted @ 2011-07-29 20:12 小優YoU 阅读(147) 评论(0) 推荐(0) 编辑

POJ1001-Precision power

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1305298222浮点大数求幂,水题一道,把“大数乘浮点数”按指数循环就OK了,注意结果的整数部分若为0,则不保留整数部分。小数部分若为0,则不保留小数部分和小数点。 1 //Memory Time 2 //1232K 0MS 3 4 #include<iostream> 5 #include<string> 6 using namespace std; 7 8 const int size=1000; //大数位数 9 10 void mult(char* A, 阅读全文

posted @ 2011-07-29 20:10 小優YoU 阅读(262) 评论(0) 推荐(0) 编辑

21位大数的水仙花数

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1305308196为了简化说明,以三位数举例,因为153、135、315、351、513、531的立方和都是一样的,均等于 1^3+3^3+5^3 = 153而我们可以通过逐位检查 立方和153,发现1出现1次,3出现1次,5出现1次,而0~9中的其他数字均出现0次,出现的次数之和为3,刚好等于153的长度。由此我们可以得到 利用枚举0~9各个数字出现的次数,得到水仙花数。得到21位水仙花数的具体方法为:通过10层循环,枚举0~9这10个数字出现的次数(每个数字都可能出现0~21次),当 阅读全文

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

POJ3087-Shuffle'm Up

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1303639118题目大意:已知两堆牌s1和s2的初始状态, 其牌数均为c,按给定规则能将他们相互交叉组合成一堆牌s12,再将s12的最底下的c块牌归为s1,最顶的c块牌归为s2,依此循环下去。现在输入s1和s2的初始状态 以及 预想的最终状态s12问s1 s2经过多少次洗牌之后,最终能达到状态s12,若永远不可能相同,则输出"-1"。解题思路:很浅白的模拟题= = 不懂为什么别人要把它归类到广搜。。。所以我又重新分类了。。。直接模拟就可以了,关键在于状态记录,然后判 阅读全文

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

POJ2993-Emag eht htiw Em Pleh

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299148520提示:很烦很简单的国际象棋棋盘模拟,输出比较麻烦而已。。。是POJ2996的相反情况,认真的同学会发现2993的题目和2996的题目是相反的。。。。POJ2996-Help Me with the GamePOJ2993-Emag eht htiw Em Pleh 1 //Memory Time 2 //212K 0MS 3 4 5 #include<iostream> 6 #include<string> 7 using namespace s 阅读全文

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

POJ2996-Help Me with the Game

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299148268提示:很烦很简单的国际象棋棋盘模拟,输入比较麻烦而已输出时:1、不论黑白,KQRBN P均是依次输出,强制大写,但不输出“P”,只输出其坐标2、对白棋的位置,小行优先大行输出(行的数字越小则优先)同行则按列的顺序(a~h)3、对黑棋的位置,大行优先小行输出(行的数字越大则优先)同行则按列的顺序(a~h)4、从2、3点可以看出,黑棋总是先被输入,白棋总是后输入,即黑棋总在棋盘上方,白棋总在棋盘下方,所以输入完成后,对于黑色棋子只需要按类型次序输出,同类型棋子的顺序就是输入 阅读全文

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

POJ1573-Robot Motion

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299128074提示:不多说了,又是模拟题,读懂题意直接模拟就可以了,没有算法,没有技术含量,直接贴代码 1 //Memory Time 2 //256K 0MS 3 4 5 #include<iostream> 6 using namespace std; 7 8 int main(void) 9 {10 int row,col,entry;11 char grid[12][12]; //在规定大小的grid外部至少再定义一圈"门槛"以判断Robot是 阅读全文

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

POJ2632-Crashing Robots

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299147655提示:简单的模拟而已。。。程序很长不是因为算法(根本就没算法= =)而是因为很多情况要考虑,要有耐心需要小心的是,当坐标系变换后,注意方向的改变规律注意事项:1、坐标系要改变为二维矩阵的形式,N、W、S、E的方向变化必须注意:改变坐标系后,N为南,S为北,WE不变,L转右,R转左,F不变;2、对于求余数处理是否注意出现负数的情况;3、robot移动过程中,crashes robot和crashes wall 同时判断,crashes robot放在前面。附加测试数据:S 阅读全文

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

POJ1068-Parencodings

摘要: 转载请注明出处:優YoU http://user.qzone.qq.com/289065406/blog/1299127551模拟的题型,基本难度不大,关键读懂题意:对于给出的原括号串,存在两种数字密码串:1.p序列:当出现匹配括号对时,从该括号对的右括号开始往左数,直到最前面的左括号数,就是pi的值。2.w序列:当出现匹配括号对时,包含在该括号对中的所有右括号数(包括该括号对),就是wi的值。题目的要求:对给出的p数字串,求出对应的s串。串长限制均为20提示:在处理括号序列时可以使用一个小技巧,把括号序列转化为01序列,左0右1,处理时比较方便 1 //Memory Time 2 //256 阅读全文

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

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) 编辑

导航