POJ解题
seen_in_hw
希望我能变厉害!!!成为大师!!!我放弃了很多看似很炫的技术而去探寻技术的本质,技术是用来提供服务的,所有的技术都离不开思想,而思想是最难掌握的,我们应该把更多的精力放在对于思想的探寻上
展开
-
【POJ】:POJ 3984
题目链接:http://poj.org/problem?id=3984题目解析:这题算是搜索里面的简单题了吧,题目也很好理解,就是找到最短的路径出去,并输出0所在的位置;想说的是,暴力搜索的时候,注意边界,我做到现在所有的dfs,bfs,都要在固定范围内进行搜索。然后是进行逐个的搜索,其实也不难理解的。具体的看看代码,自己多理解一点吧!!! 本题用的是结构体做的bfs。之所以用结构体,是因转载 2016-06-07 15:33:20 · 625 阅读 · 0 评论 -
【POJ3749】:破译密码
题意题目大意很简单,很容易找出对应字母的ASCII码值的关系,但是有一点需要注意,请看代码: 读字符串必须要用getline函数 输入ENDOFINPUT终结代码/// 解密#include <iostream>#include <string>#include <cstdio>using namespace std;int Ischar(char a){ if(a>='A'原创 2015-09-23 23:35:28 · 728 阅读 · 0 评论 -
【POJ】:POJ 3100解题报告
题意兼解析输入两个数字B和N。要求找一个A,使得A^N最接近B。一开始想到的是暴力,不过想想或许可以换个方式来做这道题的。充分利用math.h里的pow(),先对B开n次方,就是用pow(b, 1.0/n).得到一个值right,然后分别对这个值取上整high和下整low,然后再计算pow(high,n),pow(low, n),比较这两个值中最小的那个就是答案。代码#include <iostre原创 2015-10-13 12:56:44 · 831 阅读 · 0 评论 -
【POJ1061】:青蛙的故事(未AC版)
题目Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为原创 2015-10-12 13:45:48 · 514 阅读 · 0 评论 -
【POJ】:POJ 1575元辅音
题意判断一个字符串是否满足下面三个规则: 1.至少有一个元音(a,e,o,i,u) 2.不能出现三个及以上的连续元音或辅音 3.不能出现连续两个相同字母,但ee,oo除外。如果都满足,就输出accept(按详细格式) 否则输出 not accpet(按详细格式)解法没什么特殊的,就是自己写控制函数对字符串进行判断而已。。。 我又错在初始化错了地方啊!!!!!!很经典的一个地方 int原创 2015-10-08 00:45:54 · 514 阅读 · 0 评论 -
【POJ】:POJ 1528Perfection
题意给出一个数n,然后计算n的所有因字数之和 与 2*n 的大小关系比2*n大 输出 ABUNDANT 比2*n小 输出 DEFICIENT 和2*n相等 输出 PERFECT技巧计算因子和 参见我写的一篇技巧文章 关于一个数的因子和还有就是输出格式的技巧也要用到 输出格式的头文件 iomanip代码#include <iostream>#include <iomanip>usi原创 2015-10-07 23:13:25 · 543 阅读 · 0 评论 -
【POJ1939】:Diplomatic License
题意给出实例,求各个相邻两点的中点,注意点是x,y ,然后最后一个点是和第一个点做平均分配的思路如题意所说,稍微看下代码就明白咋回事了 注意的是必须要是保留六位的格式~代码#include <iostream>#include <iomanip>#define F fixed#define S setprecision(6)#define max 1000using namespace原创 2015-11-10 23:53:35 · 1037 阅读 · 1 评论 -
【POJ1517】:u Calculate e
题意计算e,具体参加那个公式技巧关于那个奇葩的输出,,,就只能通过单个if进行判断然后进行输出了 关于最后定向输出小数点后的方法,请参见 iomanip 头文件代码#include <iostream>using namespace std;#include <iomanip>int main(){ double sum = 2.5; cout<<"n e"<<end原创 2015-10-07 23:06:18 · 739 阅读 · 0 评论 -
【找bug有奖励】:POJ1575未通过版本查错,找出答案支付宝转5块
问题请问为什么下面这段代码单独输入 eep 时会显示 accept 而放在一起时会显示not accept这个是放一起的情况 不放一起时第一个输入 eep 会显示 accept求问为什么??? 找出答案转点钱作为奖励分享知识为目的~~~代码背景参照上篇博客代码#include <iostream>#include <string>using namespace std;int yuan原创 2015-10-08 00:52:49 · 993 阅读 · 0 评论 -
【POJ1543】:Perfect Cubes
题意题目意思就是输入n , 求a,x,y,z,使的 a<=n,a>=1; x>1 且 z>=y>=x a的立方 = x的立方 + y的立方 +z的立方技巧简单枚举即可,超级大水题。。。我错了是因为我一行写太多了。。。代码#include <iostream>using namespace std;void C_out(int a,int b,int c,int d){ cou原创 2015-10-07 23:22:05 · 652 阅读 · 0 评论 -
【POJ1504】:Adding Reversed Numbers
题意给出两个数,将两个数反序 比如说1324变成4231 ,然后将两个反序的数加和,将和反序输出解题思路关键是如何将一个数反序 用一个函数做到,仔细看int fan(int num){ long int sum=0; while(num){ sum = sum*10+n%10; n/=10; } return sum;}这个函数在我原创 2015-10-07 23:03:13 · 613 阅读 · 0 评论 -
【POJ1032】把一个数分解为不重复的数的和使其乘积最大
题意求N1+N2+…+Nn=N. 使N1 ,N2…Nn都不相等且他们的乘积最大? 做法就是求出以2起始的最大连续自然数序列之和sum,使得sum的值不超过输入数n, 然后分情况讨论: 设此最大序列为2、3、……、w,则: 1。若剩余值(n-sum)等于w,则最后输出序列为:3、4、……、w、w+2,即将原最大序列每项加1,再将最后剩余的一个1加到最后一项上。(这一项结果很显然) 2。若剩余值(n原创 2015-09-18 17:33:18 · 2119 阅读 · 0 评论 -
【POJ】:POJ 3117 World Cup
吐槽呵呵呵呵,一下子想到了方法,然后对其进行了实现,但是后来居然仍然没有被AC,最后上网找了些许答案,发现他们跟我的一样,不知道是怎么AC的,最后试了很多最后终于AC了题意一场足球赛中,若果双方 平手 的话,那么双方各得一分,否则,赢的一方得3分,输的一方不得分。 输入比赛的数量 t 和 各队的得分,求出结果为平局的比赛的数量。解题思路如果用其他方法肯定不太好使,数学方法巨简单。。。 先求出各队得原创 2015-10-13 13:39:16 · 533 阅读 · 0 评论 -
【POJ解题】:POJ3507 Judging Olympia
题意输入6个数,找出最大最小的去掉,其余的求平均数。输入 0 0 0 0 0 0 结束思路思路1:用Bool矩阵记录,找出最大最小的去掉,然后对其他的四个进行求平均数(我的失误点在于没有正确的初始化)思路2:给6个数排序,把第二个到第五个加和然后求平均数~代码// author:seen// time:2015-09-24// POJ 3507#include <iostream>using原创 2015-09-24 18:56:02 · 689 阅读 · 0 评论 -
【POJ】:POJ3386 Halloween Holidays
题意不得不说服了这道题了,前面讲了好大一串没有用的,南瓜简直毛线用都没有好不!!!题意超级简单,就是问一个大环能不能切出两个环形(注意不是圆) 情况容易考虑不全~有两个环并排的情况直接给代码代码#include <iostream>using namespace std;int main(){ int A,a,B,b,P; cin>>A>>a>>B>>b>>P; if原创 2015-09-24 19:55:40 · 535 阅读 · 0 评论 -
编程挑战3:蚂蚁问题
蚂蚁问题及解析,还有代码都在下方区域Ants(POJ No.1852)n只蚂蚁以每秒 1cm的速度在长为 Lcm的竿子上爬行。当蚂蚁爬到竿子的端点时就会掉落。由于竿子太细,两只蚂蚁相遇时,它们不能交错通过,只能各自反向爬回去。对于每只蚂蚁,我们知道它距离竿子左端的距离 x i ,但不知道它当前的朝向。请计算所有蚂蚁落下竿子所需的最短时间和最长时间。竿子和蚂蚁的情况限制条原创 2016-04-19 13:51:13 · 1021 阅读 · 0 评论 -
编程挑战2:三角形问题
三角形有 n根棍子,棍子 i的长度为 a i 。想要从中选出 3根棍子组成周长尽可能长的三角形。请输出最大的周长,若无法组成三角形则输出 0。用5根棍子组成三角形的例子限制条件 3 ≤ n ≤ 100 1 ≤ a i ≤ 10 6输入n = 5a = {2, 3, 4, 5, 10}样例 1输出12(选择3、4、5时)方法1如原创 2016-04-19 13:01:39 · 1163 阅读 · 0 评论 -
编程挑战1:抽签问题
问题:你的朋友提议玩一个游戏:将写有数字的 n个纸片放入口袋中,你可以从口袋中抽取 4次纸片,每次记下纸片上的数字后都将其放回口袋中。如果这 4个数字的和是 m,就是你赢,否则就是你的朋友赢。你挑战了好几回,结果一次也没赢过,于是怒而撕破口袋,取出所有纸片,检查自己是否真的有赢的可能性。请你编写一个程序,判断当纸片上所写的数字是 k 1 ,k 2 , …, k n 时,是否存在原创 2016-04-19 12:34:23 · 3080 阅读 · 0 评论 -
【POJ2656】:Unhappy Jinjin
题意统计关于jinjin的不开心天数中最不开心的那一天。。。吐槽最近感觉可能是水平上升了。。。做这种题感觉太没意思了。。。代码#include <iostream>using namespace std;struct pos{ int a; int b;}P[7];int main(){ while(1){ int n; cin>>n; int原创 2016-01-08 16:18:07 · 756 阅读 · 0 评论 -
【POJ】:POJ2606,poj1118,poj2780合集
题意这三道题都是问了一个知识,就是给出很多点,然后问的是最多有多少个点在一条线上,差不多代码都能用解法遍历遍历遍历!!!!!!!!! 遍历遍历遍历!!!!!!!!! 遍历遍历遍历!!!!!!!!!思路就是遍历,以两个点为初始点,然后判断其他点是否在这条线上,如果在这条线上,就对统计值进行增添运算。这就是计算的结果 详见代码代码#include <iostream>using namespac原创 2016-01-08 16:15:54 · 538 阅读 · 0 评论 -
【POJ2262】:Goldbach's Conjecture
题意把一个数表示为两个质数的和,然后输出格式按题目中给的就好了思路先写一个判断是否是质数的函数,然后作循环,判断构成n的两个数i和n-i是否都是质数,如果都是质数,就按格式输出代码#include <iostream>#include <cmath>using namespace std;int isprime(int num){ for(int i=2;i<=sqrt((double原创 2016-01-08 16:08:15 · 517 阅读 · 0 评论 -
【POJ2013】:Symmetric Order
Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 10315 Accepted: 6401 Description In your job at Albatross Circus Management (yes, it’s run by a bunch of clowns), you have just原创 2015-11-13 00:55:49 · 590 阅读 · 0 评论 -
POJ2070 Filling Out the Team
老套的题,想要把代码写的非常简单还得花很多功夫,我是利用了flag变量作为标志来进行判断的,实际上也是写了很多的代码 - -很简单吧,没啥值得一提的,附代码#include <iostream>using namespace std;int main(){ int we,st; float sp; while(cin>>sp>>we>>st&&sp*we*st!=0){原创 2015-12-28 16:51:07 · 661 阅读 · 0 评论 -
【面试题】:海盗分钻石问题(典型倒推)
5 个海盗抢到了100颗宝石,每一颗都一样大小且价值连城。他们决定这么分: (1)抽签决定自己的号码(1~4); (2)首先,由1号提出分配方案,然后大家表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔进大海喂鲨鱼; (3)如果1号死后,再由2号提出分配方案,然后剩下的4个人进行表决,当且仅当超过半数的人同意时,按照他的方案进行分配,否则将被扔入大海喂鲨鱼;原创 2015-12-28 21:50:58 · 6407 阅读 · 1 评论 -
POJ2039 To and Fro
这时候是时候改变一下写OJ解题的风格了,打算以后都写上OJ解题的思路和翻译这个题题意很简单,就是看懂例子就可以了,然后具体要转换回去要进行蛇形填数的变换注意关键思路: 蛇形填数!!!!!蛇形填数!!!蛇形填数!!!然后填完数再进行第二次的写回去就好了- - #include <iostream>using namespace std;int main(){ char str[205][原创 2015-12-28 12:44:10 · 659 阅读 · 0 评论 -
POJ2028 When Can We Meet?
仔细看题就知道这个题关键就是找几个数组的公共元素的最大值这里可以用哈希表的方法做出来!重要的事情说三遍哈希表!哈希表!哈希表!原理就是把对应的数值作为下标映射到哈希表里面去,如果每次进来一个数值就对相应的哈希表+1这个不失为一种好方法,对于传统的都可以解决 - -然后给上代码即可了 - -#include <iostream>using namespace std;int hash[101];原创 2015-12-28 12:07:52 · 799 阅读 · 0 评论 -
【POJ1552】:Doubles
题意题意很简单呐,给出一串数字,算出其中互为2倍的数字有多少对。技巧利用选择排序的那种思想就能搞定这个 还有关于那个输出的那种结构需要自己动动脑子想一下代码#include <iostream>using namespace std;int num[20];void func(int count){ //判断为2倍的数有多少对,输出对数 int total=0; for(原创 2015-10-07 23:41:58 · 807 阅读 · 0 评论 -
POJ 1658
题意没啥好说的。。。解题思路学过等比等差的都知道规则,然后按规则弄就成代码//POJ1658#include <iostream>#include <cmath>using namespace std;int main(){ int n,num[5],i; cin>>n; while(n--){ for(i=0;i<4;i++){原创 2015-10-22 10:45:37 · 575 阅读 · 0 评论 -
POJ3673解题报告
题意 就是按那个规则去算数,把每位拆开了做乘法然后加起来解法循环遍历一边即可,只是在做的时候最好使用字符串数组代码#include <iostream>using namespace std;void number(char num1[],char num2[]){ //用字符串处理 int len1 = strlen(num1); int len2 = strlen(原创 2015-09-07 18:32:38 · 447 阅读 · 0 评论 -
POJ3619解题报告
题意这个题的意思是奶牛读字,输入N,k,表示需要读N个字,一共输入K组数据 每组数据输入s,t,r s表示每分钟读入的字个数,t表示可以连续读t分钟,r表示读完t分钟需要休息r分钟。最后要问的是多少时间之间可以读完?也就是求t与r的组合思路直接看代码的解释即可代码看代码之间你得看懂题意。。。#include <iostream>using namespace std;int main(){原创 2015-09-14 11:02:38 · 683 阅读 · 0 评论 -
POJ1250解题报告
题意题意:这个题的意思比较复杂。我大致解释一下旅馆房间有限,先到先入住,后到后入住,用ABCDEF等字符代表单个人,第一次出现代表入住,第二次出现代表离开这样我们就可以读懂题了,比如input的 2 ABBAJJKZKZ 代表有两间房,一个一个读过去, 第一个是A,房给他一间,还剩一间 第二个是B ,房给他一件,没有了 第三个是B,B退房了,所以房又有一间了 第四个是A,A退房了,房又有原创 2015-09-13 19:41:46 · 791 阅读 · 0 评论 -
POJ3650解题报告
吐槽说实话,我都没搞明白,它居然给我AC了。。。我也是醉了 出的问题在于输完一行后要按几次enter键才能出结果。。而它居然给我AC了,好吧,那就这样吧,不过思路是没错的题意输入一串句子,输入#结束,对一串句子中的某些字符进行特殊处理思路输入句子,然后对单个字符写个处理函数。难点如何输入句子,string s;cin>>s 这样遇到空格就会断掉,需要用getline来读代码#include <i原创 2015-09-07 20:28:40 · 524 阅读 · 0 评论 -
POJ1118解题报告
题意input:先输入要输入的坐标个数,再输入坐标output:输出最多有多少个点在一条直线上思路做循环,利用两点确定一条直线,然后判断第三个点是否在此直线上,在的话就让统计的变量加一。然后用每次循环得到的统计变量和之前的想比,如果比之前大,就把之前的最大值取代。关键点作循环时一定要让两点无重复的计数,这点很重要代码#include <iostream>using namespace原创 2015-09-07 14:44:44 · 696 阅读 · 0 评论 -
POJ1207解题报告
题意这个题的意思是 :有一个数,按那个规则,最后能够转换到1,算出这个序列的长度然后输入两个数,在这两个数构成的闭区间中,每个数都有其序列长度,求这个序列中最长的一个。思路 先写出一个函数,求一个数的序列长度,然后对区间做循环,求长度最大值难点 似乎也没什么难点,只是有很多细节需要考虑一下,详见代码 我改了三次才AC,就是因为输出那块出了些问题。。。代码#include <iostream原创 2015-09-07 15:43:52 · 1315 阅读 · 0 评论 -
POJ1005解题报告
题意: 输入N N为接下来要输入多少次数据的次数 输入A,B A,B为坐标然后就是坐标系以半圆扩张,每年扩张50,求多少年能扩张到输入A,B的坐标那里去解法: 求出以A,B为圆半径的半圆面积 ,然后用它除以50取整+1可得 结果最后要注意的是要注意格式问题。附上源码:#include <iostream>#define原创 2015-09-04 17:03:37 · 512 阅读 · 0 评论 -
POJ 1003解题报告
题意:输入一个数a,然后用1/2+1/3+…+1/n的和与其比较,求出最大的那个n,使的和 <= 输入的数a,其中输入的数以0.00结束,代码很简单,如下:#include <iostream>using namespace std;int main(){ float a;float sum=0; while(cin>>a &&a!=0.00){ float原创 2015-09-04 16:21:23 · 557 阅读 · 0 评论 -
POJ 1004解题报告
题意:求12个月工资平均数,注意保留两位小数这道题在ZOJ里面做过,貌似更简单了,也没什么好说的,注意保留小数点就是。源码:#include <iostream>#include <iomanip> //C++格式输出的头文件float num[12];using namespace std;int main(){ float sum=0; for(int i=0;原创 2015-09-04 16:30:29 · 770 阅读 · 0 评论 -
POJ1007解题报告
题意:一个字符串有它的特征值,把特征值小的字符串放前面难点:如何存储多个字符串,并且存储其特征值?解决方法就是利用结构体附上源代码及相关解释:#include <iostream>#include <string>using namespace std;struct DNA{ string s; //s存储字符串 int value; //value存储特征值原创 2015-09-04 19:04:37 · 505 阅读 · 0 评论 -
POJ3632解题报告
吐槽 无语了,我还以为多难...我还试着遍历去算距离最小值,后来发现就是整个数组最大最小值的差的两倍就是了...题意: 求给出一些列数最大值最小值的差的两倍思路(利用了模板) 利用algorithm,然后sort给数组排序,最后求最大最小值两倍代码#include <iostream>#include <cmath>#include <algorithm>using namesp原创 2015-09-07 20:53:49 · 496 阅读 · 0 评论 -
POJ 2159
题意举例说说这一题吧,比如下面 ABBCFEA(假设为dst) CCGGHJB(假设为src) 不关心怎么从src变到dst,我先qsort一遍,两者就变成: AABBCEF BCCGGHJ 不深度题目,人工的都以为这个是NO. 但非也,我们再找一下两个串的相同字母数字序列.两者分别是: 22111 12211 这个你应该了解吧,就是AA为2,BB为2,C为1,E为1,F为1.原创 2015-10-17 16:13:02 · 536 阅读 · 0 评论