
POJ
文章平均质量分 65
KAMI0V0
这个作者很懒,什么都没留下…
展开
-
POJ 1083
题目大意:移桌子,上方为奇数房间,下方为偶数房间,移动一张桌子需10分钟,若两区域无交集,则桌子可同时移动,若有交集,只能一张一张移动。 方法:设:输入的两个num1、num21,2号房间间的走廊设定为1号格;3,4号房间为2号格······依此类推。类比于RPG格子,只需计算每个格子出现的次数,然后再筛选出出现次数最多的格子,保留其值N,N*10即为所求时间。 于是,贴代码原创 2013-06-10 12:27:41 · 426 阅读 · 0 评论 -
POJ 1552
题意:输入一串数字,以0标志结束,搜索该串数字中,某个数字是其他数字2倍的这样数字的个数,-1标志文件结束。题目很简单= =就是挨个搜索比较。。。代码:#includeusing namespace std;int main(){ int a[16],i,j,num,count; while(cin>>num&&num!=-1) { cou原创 2013-06-10 12:28:43 · 459 阅读 · 0 评论 -
POJ 1674
题意:给一串顺序打乱的数字,要求输出:将这串数字变为从小到大顺序的最少交换次数。复制搜索复制搜索思路:输入完一串数字后,如果该位置上的数字与该位置号不相同,交换该位置上的数字与该位置上的数字的位置号上的数字(重复操作,直到该位置上的数字与该位置号相同为止)。即:while(a[i]!=i){swap(a[i],a[a[i]]);count++;}代码:#includ原创 2013-06-10 12:28:50 · 494 阅读 · 0 评论 -
POJ 1799
几何数学问题= =,利用三角函数SIN即可(⊙o⊙)… 代码:#include#include#includeusing namespace std;#define pi3.1415926535898int main(){ int n,i=1; double R,n0; cin>>n; while(n--) { cin>>R>原创 2013-06-10 12:28:52 · 546 阅读 · 1 评论 -
POJ 1862
题意:Stripies这货我就说成是小虫子啦(⊙o⊙)…,也就是说两只小虫(m1,m2)相遇后会合体,合体后的质量是m=2*sqrt(m1*m2)。题目要求输入小虫数量和每只小虫质量,要求输出小虫合体后的最后质量。复制搜索复制搜索思路:现将小虫的质量从大到小排列,再按照前面的排列顺序从头到尾逐对计算。代码:#include#include#include#原创 2013-06-10 12:28:54 · 531 阅读 · 0 评论 -
POJ 1906
题意:题目给出一个集合{3^0,3^1,3^2,3^3,3^4,3^5,3^6,···,3^n},以其所有子集中各元素之和为基准,从小到大排列该集合的所有子集:{ },{ 1 },{ 3 },{ 1, 3 },{ 9 },{ 1, 9 },{ 3, 9 },{ 1, 3, 9 },{27 },{ 1, 27 },{ 3, 27 },{ 1, 3, 27 },{ 9, 27 },{ 1, 9,原创 2013-06-10 12:28:56 · 554 阅读 · 0 评论 -
POJ 1929
题意:1g脂肪中含有9卡路里,1g蛋白质、1g血糖、1g淀粉中含有4卡路里,1g乙醇中含有7卡路里,要求输入脂肪、蛋白质、血糖、淀粉、乙醇的量,都为整数,单位为("%、g、C")不定,输入的每一行是每一份食物中脂肪、蛋白质、血糖、淀粉、乙醇的含量,每一行数据至少有1个数据不为0,单位为("g、C"),以'-'终止本次输入,连续出现两次'-'终止程序。要求输出所有数据中,脂肪所占的百分比,结果保留整原创 2013-06-10 12:29:00 · 806 阅读 · 0 评论 -
POJ 1969
数列:1/1 1/2 1/3 1/4 1/5 ...2/1 2/2 2/3 2/43/1 3/2 3/34/1 4/25/1题目要求输入一个数字N,输出该N在数列中所对应的数字,也就是第N个数。代码:#includeusing namespace std;int main(){ int num; while(cin>>num)原创 2013-06-10 12:29:02 · 379 阅读 · 0 评论 -
POJ 2000
题意:国王给骑士付工钱,第一天1枚金币,后面两天每天2枚,再后面三天每天3枚······复制搜索复制搜索要求输入天数,输出骑士在这些天里获得的总钱数。代码:#includeusing namespace std;int main(){ int data; while(cin>>data,data) { int i,temp=0原创 2013-06-10 12:29:05 · 454 阅读 · 0 评论 -
POJ 2005
题意:21点游戏规则:http://baike.baidu.com/view/302185.htm题目设定一玩家与一庄家对战,牌面有2-9、T、J、Q、K、A,T、J、Q、K是10,A是11或1,当爆牌(两手牌之和大于21)时,A变为1。要求:输入卡片套数(DECK,每套牌52张),输入庄家翻过来的一张卡牌的点数和玩家手持两张卡牌的点数,输出玩家的胜率。重点:注意庄家那张明原创 2013-06-10 12:29:07 · 568 阅读 · 0 评论 -
POJ 2017
题目要求输入时间段数,以及相应于每一时间段上的速度,速度右边输入已经过的总时间。输出前行的距离。代码:#includeusing namespace std;int main(){ int n; while(cin>>n&&n!=-1) { int *ps=new int[n],*et=new int[n],dis=0;原创 2013-06-10 12:29:09 · 400 阅读 · 0 评论 -
POJ 2070
题意:给出了球场上WideReceiver,Lineman,Quarterback三个位置所需人员的最低属性(speed,weight ,strength)要求,输入:三个数据,为别为speed、weight、strength,若输入的速度低于或等于球场上位置的要求,体重和力量大于或等于球场上位置的要求,则输出相应的符合位置,若有多个符合的位置,中间用一个空格隔开输出,如没有符合位置,则输出原创 2013-06-10 12:29:11 · 439 阅读 · 0 评论 -
POJ 1931
题意:生物面部特征识别,开始先输入特征数(坐标数),然后输入相应特征的坐标,输入两组(代表两张脸),判断这两张脸是否相似。思路:建立链表筛选重点,并且删去多于的重点只留一个;然后用X乘的方法判断图形方向(点与点之间的位置关系,是否能通过旋转、平移、放缩重合),再用点乘的方法判断钝角锐角(主要是区分0度与180度),最后用边比边的方法判定是否相似。代码:#include#incl原创 2013-06-10 12:29:13 · 680 阅读 · 0 评论 -
POJ 2105
题意:给出32位的二进制字符,要求按X.X.X.X(X为十进制数字)输出二进制所表示的IP地址。思路:将给出的32位二进制平均截成4段,每段8个字符,然后逐位运算,逐段运算即可。代码:#include#include#includeusing namespace std;int main(){ int n,d[4]; string b; cin>原创 2013-06-10 12:29:22 · 374 阅读 · 0 评论 -
POJ 2109
题意:给出一个指数x与一个数字y,要求输出x√y的结果。代码:#include#includeusing namespace std;int main(){ double n,e,t; while(cin>>n>>e) { t=1; while(pow(t,n)!=e)t++; co原创 2013-06-10 12:29:24 · 414 阅读 · 0 评论 -
POJ 2116
题意:以二进制的形式给出一串数列(例:11101),要求按照斐波那契数列的规律化为10进制,斐波那契数列1,2,3,5,8,13,21···,其标号分别为F0,F1,F2,F3···,化为十进制:1*1+2*0+3*1+5*1+8*1=17.数列11101的标准形式为:100101(中间不能有连续两个或两个以上的1出现即为标准形式,对每个十进制数字,标准形式有且只有一种)。要求输入两串数列,原创 2013-06-10 12:29:26 · 1192 阅读 · 0 评论 -
POJ 2136
题意:输入四行字符串,每行字符串中包括字母,符号,空格,输出每个大写字母出现的次数,一次一个星号。代码:#include#includeusing namespace std;int main(){ string a; int count[26]={0},m=0; for(int n=0;n4;n++) {原创 2013-06-10 12:29:28 · 399 阅读 · 0 评论 -
POJ 1504
题目大意:输入两个数字,按位取反(倒过来写),然后相加,在按位取反输出其结果。(输入233 56,取反后是:33265,相加后是:397,取反输出:793)复制搜索复制搜索注:输入001时记为1,因此取反后是1不是100。开始用STRING写的。。。头大了。。。翻来翻去。。。各种特殊情况错误(⊙o⊙)…,于是。。。扔了这个蛋疼的方法。。于是用INT重写的。。。。一下就过原创 2013-06-10 12:28:41 · 370 阅读 · 0 评论 -
poj 1226(转)
某大牛写的,方便个人今后参考使用(⊙o⊙)… 题意:就是求n个字符串的最长公共子串,子串是可以反转的思路:strstr,kmp爆搜,还可以用后缀数组实测kmp比strstr快,16ms那个是后缀数组的8389284Euler_M1226Accepted368K141MSG++1911B2011-03-28 16:44:598389280Euler_M1原创 2013-06-10 12:28:34 · 514 阅读 · 0 评论 -
poj 1226
Substrings 题目大意:给定若干字符串,找出其中的最长公共子字符串,输出其长度。要求公共子字符串必须是连续的(中间不能被其他字母隔开),最长公共子字符串在每个字符串中的出现正着反着都行。 思路:先确定输入的字符串中最短的(若有多个最短的其第一个即可),再用SUBSTR以这个最短的字符串为准,由长至短在所有字符串中进行搜索,取搜索到的第一个公共子串(即为最长公共子串)。原创 2013-06-10 12:28:32 · 436 阅读 · 0 评论 -
POJ 2255
题目大意:二叉树,分别给出了前序遍历(根,左子树,右子树)与中序遍历(左子树,根,右子树),要求输出后序遍历(左子树,右子树,根)。思路:将所有节点全部看为根来做,先利用前、中序遍历还原二叉树原图,然后输出后序遍历。 代码:#include#includeusing namespace std;struct Tree{ char R;//元素 Tre原创 2013-06-10 12:28:03 · 383 阅读 · 0 评论 -
POJ 3094
题目大意:输入一个字符串(字符串由大写字母与空格组成),且开始和结束字符为大写字母。与英语中的字母表一样A->1,B->2···Z->26,空格->0,将这些字母所代表的数字与字母相应的位置相乘(起始位置为1),最后将各个字母与相应位置的乘积相加,输出结果。 代码: #include#includeusing namespace std;int main(){ st原创 2013-06-10 12:28:19 · 375 阅读 · 0 评论 -
POJ 1063
题意:在一个椭圆轨道上放有黑、白两种颜色的碟子,要求碟子总数最少为10个,最多为30个,通过FLIP和SHIFT两种转换方式将黑、白两种颜色的碟子完全分居开来。 思路:FLIP和SHIFT两种转换方式一起使用可以理解为:将位置为i某个碟子与位置为i-2或i+2上的某个碟子交换。 这样理解起来方便许多,若椭圆轨道上的凹槽个数N为奇数,则一定可以将两种颜色的碟子完全分开(取一黑色的碟子原创 2013-06-10 12:28:30 · 557 阅读 · 0 评论 -
POJ 1401
题意:计算一个数的阶乘中末位连续0的个数思路(转载):每次只计算最多含有5,5^2,5^3……的数字个数每次含有5的[n/5]........25.[n/25]注意,当统计最多含有5^2的因子的时候,5的个数应该为[n/25]而不是[n/25]*2因为,在含有[n/5]的时候已经统计过一次了所以,只需要把[n/5],[n/25]...加起来就可以了例如1~100中(1)含有5的原创 2013-06-10 12:28:37 · 392 阅读 · 0 评论 -
POJ 1607
n 块相同的木板重叠,最多能够伸出桌面多远?1607" TITLE="POJ 1607" />这是一个非常经典的问题。传统的答案是,把第一块木板的重心放在第二块木板的右边缘,把这两块木板的重心放在第三块木板的右边缘,把这三块木板的重心放在第四块木板的右边缘⋯⋯利用杠杆原理可以推出,如果每块木板都是单位长,那么n 块木板可以伸出桌面 (1 + 1/2 + 1/3 + … + 1/n)原创 2013-06-10 12:28:45 · 642 阅读 · 0 评论 -
POJ 1657
题意:难得一道中文题目。。。不解释了(⊙o⊙)…复制搜索复制搜索传送门:http://poj.org/problem?id=1657思路:定义strings,g;s代表起始位置,g代表目标位置;王:取abs(g[0]-s[0])与abs(g[1]-s[1])中较大的;王后:当情况满足g[0]==s[0]||g[1]==s[1]||abs(g[0]-s[0])==a原创 2013-06-10 12:28:47 · 425 阅读 · 0 评论 -
POJ 1922
题意:Charley骑车有个习惯,总是跟在别人后面骑,从不自己骑,而且如果在跟着别人骑的过程中,有更快的自行车超过了他,他会离开目前跟的这辆,去跟较快的那辆。设定Charley到达学校门口的时间为0,要求输入其他自行车的速度与出发时间,速度1要求输出Charley到校的最短时间。思路:负时间的输入可以全部舍去,因为负时间的人都是在Charley到校门口之前就走了,Charley只会跟出发时原创 2013-06-10 12:28:58 · 515 阅读 · 0 评论 -
POJ 1976
题意:迷你火车头拉人,看一次最多能拉多少人。 题目要求输入车厢数,每节车厢的人数,以及每个迷你火车头能拉动车箱的数目,要求输出三个迷你火车头能拉动的最多人数。 01背包问题:http://love-oriented.com/pack/P01.html http://baike.baidu.com/view/841810.htm 动态规划是用空间换时间的一种方法的抽象。其关键是原创 2013-06-10 12:29:15 · 489 阅读 · 0 评论 -
POJ 2101
题意:第一行要求输入由北向南和由东向西的河流条数,第二行输入由北向南相邻河流间的间距,第三行输入由东向西相邻河流间的间距。要求输出直升机能检查到所有河流所花费的最少金钱数。(1金钱=1千米)提供两种代码(⊙o⊙)…代码1:#include#includeusing namespace std;int main(){ int n,t; double a,l原创 2013-06-10 12:29:19 · 562 阅读 · 0 评论 -
POJ 2190 ISBN
题意:验证书籍的ISBN码,给出一个10位ISBN码,前9位中每一位的值在0-9之间,最后一位的值在0-X之间(X为10)。从第一位开始,按照第一位的数字乘以10+第二位数字乘以9+···+第十位数字乘以1的形式求和,若其和能整除11,则为有效ISBN码。输入一串10位ISBN码,其中有一位是?。输出该?位置上的数字,若不存在,输出-1。代码:#include#include原创 2013-06-10 12:29:33 · 467 阅读 · 0 评论 -
POJ 2739
题目大意:输入任意一个整数,要求:若存在这样一组连续的素数,其相加之和等于输入的这个数,则COUNT加1(COUNT初始值为0)。若输入的整数本身为素数,则COUNT也加1。 首先贴代码:#include#includeusing namespace std;int main(){ int i,j,k,n,num,sum,count;int a[1300]; n=0; for(原创 2013-06-10 12:27:34 · 353 阅读 · 0 评论 -
POJ 2159
题目大意:置换密码可忽略,对本题无影响,主要是替代密码。。。替代密码:需注意的是替代是:1.原来相同的字母替代后仍然相同(如:AAA→CCC(正解)AAA→CDF(误解));2.替代时所替代的字母是任意选取的。不要被题目所误导,题目中“WJDUPSJPVT”同减1变为“VICTORIOUS”,这是个陷阱,我开始就以为是每个字母都是加上或减去同一个数,其实不是,而是加上或减去任意一个数(⊙o⊙原创 2013-06-10 12:27:36 · 428 阅读 · 0 评论 -
POJ 3299
题目大意:利用如下的公式: 3299" TITLE="POJ 3299" />给出humidex,temperature,dewpoint中任意两个变量求第三个变量的值,输入“E”结束。 代码如下:#include#include#includeusing namespace std; const double e=2.718281828;doubl原创 2013-06-10 12:27:38 · 433 阅读 · 0 评论 -
POJ 2262
题意:证明哥德巴赫的猜想:任意一个大于4的偶数均可分解为两素数之和(2除外),要求输出格式为:num = a + b,b-a为所有可能式子中的最大值。 本题主要考查判断素数的方法(⊙o⊙)… 首先,自己写的,针对题目设计的代码。。。。AC了(⊙o⊙)… #include#includeusing namespace std;int isprime(int num)原创 2013-06-10 12:27:43 · 484 阅读 · 0 评论 -
POJ 3006
题目大意:等差数列,要求分别输入首项a,差值d,以及n(n为输出的的第n个素数)。 方法:先用筛选法列出2--1000000的素数表,再利用prime[a+i*d]判断a+i*d是否为素数即可。用j记录素数数目,当j==n是输出即可。(筛选法详见POJ2262) 于是,贴代码:#include#define MAX1000001int prime[MAX]={0};原创 2013-06-10 12:27:45 · 404 阅读 · 0 评论 -
POJ 1503
题意:大数相加。。。注意:Thefinal input line will contain a single zero on a line byitself. 判断这句时,不能用[0]是否为0来判断,要用strcmp来比较。 代码:#include#includeint main(){ int i,j,k,n,len,temp1,temp2; char原创 2013-06-10 12:27:47 · 354 阅读 · 0 评论 -
POJ 2160 BOX
题意:给出六个矩形的长与宽,判定这六个矩形是否可以组成一个长方体。思路:先假设可以组成长方体,共有三种情况:情况一:该长方体的长、宽、高各不相等,从第一个矩形输入的两条边(先左后右)开始扫描(逐个矩形扫描,先和输入的六个矩形左侧的边比较,若相等,则频数自增;若不相等,和该输入矩形右侧的边比较,若相等,则频数自增),每条边的出现频数为4,共有12个4出现;情况二:该长方体的长、宽、原创 2013-06-10 12:29:30 · 699 阅读 · 0 评论