POJ
julicliy
这个作者很懒,什么都没留下…
展开
-
合并果子(优先队列)
P1062 合并果子描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过n-1次合并之后,就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时...原创 2020-04-20 19:47:06 · 271 阅读 · 0 评论 -
医院设置
描述设有一棵二叉树(如图3-8,其中圈中的数字表示结点中居民的人口,圈边上数字表示结点编号。现在要求在某个结点上建立一个医院,使所有居民所走的路程之和为最小,同时约定,相邻结点之间的距离为1。就本图而言,若医院建在1处,则距离和=4+12+2*20+2*40=136;若医院建在3处,则距离和=4*2+13+20+40=81…转存失败重新上传取消格式输入格式第一行一个整数n...原创 2020-03-27 23:54:11 · 161 阅读 · 0 评论 -
猴子选大王
描述有n只猴子(编号从1到n),按顺时针方向围成一圈选大王。规则是从第1号开始报数,一直数到m,数到m的猴子退出圈外,剩下的猴子再接着从1开始报数。就这样重复下去,直到圈内只剩下一只猴子时,这只猴子就是大王。格式输入格式输入只有一行,两个数据,分别是n和m输出格式输出一个数据,大王的编号样例输入样例10 5输出样例3#include...原创 2020-03-08 20:20:08 · 691 阅读 · 0 评论 -
编辑距离
描述设A和B是两个字符串。我们要用最少的字符操作次数,将字符串A转换为字符串B。这里所说的字符操作共有三种:1、删除一个字符;2、插入一个字符;3、将一个字符改为另一个字符。对任意的两个字符串A和B,计算出将字符串A变换为字符串B所用的最少字符操作次数。格式输入格式第一行为字符串A;第二行为字符串B;字符串A和B的长度均小于2000。输出格式只有一个正整数,...原创 2020-03-08 17:21:48 · 97 阅读 · 0 评论 -
最长上升子序列
题目描述】一个数的序列bi,当b1<b2<...<bS的时候,我们称这个序列是上升的。对于给定的一个序列(a1,a2,...,aN),我们可以得到一些上升的子序列(ai1,ai2,...,aiK),这里1≤i1<i2<...<iK≤N。比如,对于序列(1,7,3,5,9,4,8),有它的一些上升子序列,如(1,7),(3,4,8)等等。这些子序列中最长的长度是...原创 2020-03-08 17:02:41 · 97 阅读 · 0 评论 -
机器分配(动态规划)
【题目描述】总公司拥有高效设备M台,准备分给下属的N个分公司。各分公司若获得这些设备,可以为国家提供一定的盈利。问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值。其中M≤15,N≤10。分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M.【输入】第一行有两个数,第一个数是分公司数N,第二个数是设备台数M;接下来是一个N*M的矩阵,表明了第 I个公司分配...原创 2020-03-08 16:40:03 · 1657 阅读 · 0 评论 -
01背包问题
【题目描述】一个旅行者有一个最多能装 M 公斤的背包,现在有 n 件物品,它们的重量分别是W1,W2,...,Wn,它们的价值分别为C1,C2,...,Cn,求旅行者能获得最大总价值。【输入】第一行:两个整数,M(背包容量,M≤200)和N(物品数量,N≤30);第2..N+1行:每行二个整数Wi,Ci,表示每个物品的重量和价值。【输出】仅一行,一个数,表示最大总价值。【输入...原创 2020-03-08 14:29:31 · 238 阅读 · 0 评论 -
lake Counting
【题目描述】有一块N×M的土地,雨后积起了水,有水标记为‘W’,干燥为‘.’。八连通的积水被认为是连接在一起的。请求出院子里共有多少水洼?【输入】第一行为N,M(1≤N,M≤110)。下面为N*M的土地示意图。【输出】一行,共有的水洼数。【输入样例】10 12W........WW..WWW.....WWW....WW...WW..........WW.........原创 2020-03-08 12:33:32 · 296 阅读 · 0 评论 -
最小步数
【题目描述】在各种棋中,棋子的走法总是一定的,如中国象棋中马走“日”。有一位小学生就想如果马能有两种走法将增加其趣味性,因此,他规定马既能按“日”走,也能如象一样走“田”字。他的同桌平时喜欢下围棋,知道这件事后觉得很有趣,就想试一试,在一个(100×100)的围棋盘上任选两点A、B,A点放上黑子,B点放上白子,代表两匹马。棋子可以按“日”字走,也可以按“田”字走,俩人一个走黑马,一个走白马。谁用...转载 2020-03-08 11:49:36 · 209 阅读 · 0 评论 -
取余运算
【题目描述】输入b,p,k的值,求bp mod k的值。其中b,p,k×k为长整型数。【输入】输入b,p,k的值。【输出】求 b^p mod k的值。【输入样例】2 10 9【输出样例】2^10 mod 9=7【源程序】#include<iostream>#include<cstdio>#include<cstdlib&g...原创 2020-03-07 22:06:38 · 381 阅读 · 0 评论 -
活动选择
【题目描述】学校在最近几天有n个活动,这些活动都需要使用学校的大礼堂,在同一时间,礼堂只能被一个活动使用。由于有些活动时间上有冲突,学校办公室人员只好让一些活动放弃使用礼堂而使用其他教室。现在给出n个活动使用礼堂的起始时间begini和结束时间endi(begini<endi),请你帮助办公室人员安排一些活动来使用礼堂,要求安排的活动尽量多。【输入】第一行一个整数n(n≤1000...原创 2020-03-07 13:26:17 · 207 阅读 · 0 评论 -
求后序遍历
描述输入一棵二叉树的先序和中序遍历序列,输出其后序遍历序列。格式输入格式共两行,第一行一个字符串,表示树的先序遍历,第二行一个字符串,表示树的中序遍历。输出格式一行,表示树的后序遍历序列。样例输入样例abdecdbeac输出样例debca#include <iostream>#include <stdio.h>...原创 2020-03-06 14:16:53 · 381 阅读 · 0 评论 -
全排列
【题目描述】给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。我们假设对于小写字母有‘a’ <‘b’ < ... <‘y’<‘z’,而且给定的字符串中的字母已经按照从小到大的顺序排列。【输入】只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。【输出】输出这个字符串的所有排列方式,每行一个排列。要求字母序比较小的排列在...原创 2020-03-05 21:31:18 · 206 阅读 · 0 评论 -
转进制
描述用递归算法将一个十进制数X转换成任意进制数M(M≤16)。格式输入格式一行两个数,第一个十进制数X,第二个为进制M。输出格式输出结果。样例输入样例31 16 {将十进制31转化为十六进制数}输出样例1F#include <iostream>#include <stdio.h>#include <cst...原创 2020-03-05 21:00:59 · 636 阅读 · 0 评论 -
放苹果
【题目描述】把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法?(用K表示)5,1,1和1,5,1 是同一种分法。【输入】第一行是测试数据的数目t(0 ≤ t ≤ 20)。以下每行均包含二个整数M和N,以空格分开。1≤M,N≤10。【输出】对输入的每组数据M和N,用一行输出相应的K。【输入样例】17 3【输出样例】8——————————...原创 2020-03-05 20:29:38 · 112 阅读 · 0 评论 -
流感传染
【题目描述】有一批易感人群住在网格状的宿舍区内,宿舍区为n*n的矩阵,每个格点为一个房间,房间里可能住人,也可能空着。在第一天,有些房间里的人得了流感,以后每天,得流感的人会使其邻居传染上流感,(已经得病的不变),空房间不会传染。请输出第m天得流感的人数。【输入】第一行一个数字n,n不超过100,表示有n*n的宿舍房间。接下来的n行,每行n个字符,’.’表示第一天该房间住着健康的人...原创 2020-03-05 18:41:39 · 113 阅读 · 0 评论 -
踩方格
【题目描述】有一个方格矩阵,矩阵边界在无穷远处。我们做如下假设:a、每走一步时,只能从当前方格移动一格,走到某个相邻的方格上;b、走过的格子立即塌陷无法再走第二次;c、只能向北、东、西三个方向走;请问:如果允许在方格矩阵上走n步,共有多少种不同的方案。2种走法只要有一步不一样,即被认为是不同的方案。【输入】允许在方格上行走的步数n(n≤20)。【输出】计算出的方案数量...原创 2020-03-05 20:20:44 · 227 阅读 · 0 评论 -
昆虫繁殖
【题目描述】科学家在热带森林中发现了一种特殊的昆虫,这种昆虫的繁殖能力很强。每对成虫过x个月产y对卵,每对卵要过两个月长成成虫。假设每个成虫不死,第一个月只有一对成虫,且卵长成成虫后的第一个月不产卵(过X个月产卵),问过Z个月以后,共有成虫多少对?0≤X≤20,1≤Y≤20,X≤Z≤50。【输入】x,y,z的数值。【输出】过Z个月以后,共有成虫对数。【输入样例】1 2 8【...原创 2020-03-05 16:22:44 · 346 阅读 · 0 评论 -
过河卒 动态规划
描述棋盘上A点有一个过河卒,需要走到目标B点。卒行走的规则:可以向下、或者向右。同时在棋盘上的某一点有一个对方的马(如C点),该马所在的点和所有跳跃一步可达的点称为对方马的控制点,如图3-1中的C点和P1,……,P8,卒不能通过对方马的控制点。棋盘用坐标表示,A点(0,0)、B点(n, m) (n,m为不超过20的整数),同样马的位置坐标是需要给出的,C≠A且C≠B。现在要求你计算出卒从A点能...原创 2020-03-05 12:50:10 · 199 阅读 · 0 评论 -
明明的随机数
描述明明想在学校中请一些同学一起做一项问卷调查,为了实验的客观性,他先用计算机生成了N个1到1000之间的随机整数(N≤100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生的学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。格式输入格式有2行,第1行为1个正整数,表示所生成的随机数的个数:N;...原创 2020-03-04 17:44:23 · 106 阅读 · 0 评论 -
谁考了第k名
描述在一次考试中,现知道了每个学生的学号和成绩,求考第k名学生的学号和成绩。学生总数不超过200名。若成绩相同,按照录入顺序排名。格式输入格式其后有n行数据,每行包括一个学号(整数)和一个成绩(浮点数),中间用一个空格分隔。输出格式输出第k名学生的学号和成绩,中间用空格分隔。(注:请用%g输出成绩)样例输入样例5 390788001 67.89078800...原创 2020-03-04 16:47:47 · 442 阅读 · 0 评论 -
阶乘和
描述用高精度计算出S=1!+2!+3!+…+n!(n≤50),其中“!”表示阶乘,例如:5!=5×4×3×2×1。输入正整数n,输出计算结果S。格式输入格式一个正整数n。输出格式计算结果S。样例输入样例5输出样例153#include <iostream>#include <stdio.h>#include &l...原创 2020-03-04 15:39:28 · 249 阅读 · 0 评论 -
高精度乘法
描述输入两个高精度正整数M和N(M和N均小于100位)。求这两个高精度数的积。格式输入格式输入两个高精度正整数M和N。输出格式求这两个高精度数的积。样例输入样例363输出样例108#include <iostream>#include <stdio.h>#include <cstring> #...原创 2020-03-04 13:43:00 · 188 阅读 · 0 评论 -
大整数的因子
描述已知正整数k满足2≤k≤9,现给出长度最大为30位的十进制非负整数c,求所有能整除c的k。格式输入格式一个非负整数c,c的位数≤30。输出格式若存在满足 c%k == 0 的k,从小到大输出所有这样的k,相邻两个数之间用单个空格隔开;若没有这样的k,则输出"none"。样例输入样例30输出样例2 3 5 6#include <i...原创 2020-03-04 00:40:15 · 219 阅读 · 0 评论 -
大整数减法
描述求两个大的正整数相减的差。格式输入格式共2行,第1行是被减数a,第2行是减数b(a 不小于 b)。每个大整数不超过200位,不会有多余的前导零。输出格式一行,即所求的差。样例输入样例99999999999999999999999999999999999999999999999999输出样例9999999999999999999999990000...原创 2020-03-03 23:51:50 · 411 阅读 · 0 评论 -
回文数
描述若一个数(首位不为零)从左向右读与从右向左读都是一样,我们就将其称之为回文数。例如:给定一个 10进制数 56,将 56加 65(即把56从右向左读),得到 121是一个回文数。又如,对于10进制数87:STEP1: 87+78 = 165STEP2: 165+561 = 726STEP3: 726+627 = 1353STEP4: 1353+3531 = 4884在这...原创 2020-03-03 23:16:24 · 562 阅读 · 0 评论 -
大整数加法
描述求两个不超过200位的非负整数的和。格式输入格式有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。输出格式一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。样例输入样例2222222222222222222233333333333333333333输出样例5555555555555555...原创 2020-03-03 22:03:49 · 113 阅读 · 0 评论 -
八皇后
描述会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 × 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。给出一个数b,要求输出第b个...原创 2020-02-29 15:19:32 · 127 阅读 · 0 评论 -
集合的划分
描述设S是一个具有n个元素的集合,S=〈a1,a2,……,an〉,现将S划分成k个满足下列条件的子集合S1,S2,……,Sk且满足:1.Si≠∅2.Si∩Sj=∅ (1≤i,j≤k,i≠j)3.S1∪S2∪S3∪…∪Sk=S则称S1,S2,……,Sk是集合S的一个划分。它相当于把S集合中的n个元素a1,a2,……,an放入k个(0 < k ≤ n < 30)无标号的盒子中,...原创 2020-02-28 19:30:35 · 1899 阅读 · 0 评论 -
汉诺塔问题
描述约19世纪末,在欧州的商店中出售一种智力玩具,在一块铜板上有三根杆,最左边的杆上自上而下、由小到大顺序串着由64个圆盘构成的塔。目的是将最左边杆上的盘全部移到中间的杆上,条件是一次只能移动一个盘,且不允许大盘放在小盘的上面。 这是一个著名的问题,几乎所有的教材上都有这个问题。由于条件是一次只能移动一个盘,且不允许大盘放在小盘上面,所以64个盘的移动次数是:18,446,744,073,70...原创 2020-02-28 17:50:58 · 617 阅读 · 1 评论 -
POJ 3783 (DP, 动态规化)
/* 如果有i楼j个球,当球从N楼丢下,那么就有两种可能,一是碎了,就有dp[N][j-1], 二是不碎,就有dp[i-N][j],取最坏情况,就是最大值。N从1 开始直到i-1;就可以找到最少要多少步; dp[i][j] = min(dp[i][j], max(dp[i-n][j], dp[n][j-1]); 这个公式中min对应是上文中的“最少”, max对应的是"最大“;原创 2017-11-03 02:02:25 · 481 阅读 · 0 评论 -
POJ 1185(在求最大炮数上,输出一条方案,未Accept,网站在维护)
一,状态压缩不讲了,很简单的;二,讲讲最核心的算法,怎么算过来的;a, 首先,动态规划是在求出子问题的基础上,并子问题不能变,在这个基础上,慢慢向后推,求出最终问题;b, 难点就在这里,子问题是改变的,在这一行的数受到上一行和上上一行的影响,是改变的;c, 但是在推到第3行时,表示第3行的状态时,包括第前2行,一起算到第3行,这样,在求第4行时,只需要看第4行的状态(包括第4行的前原创 2017-10-25 03:21:57 · 152 阅读 · 0 评论 -
POJ 1363 (栈的)
poj 1363我花了半天的时间解决这一题,也不差一点时间写注释;我的思路:一:A边的车厢,先和B边的比,成了就A,和B出站;二: 如果(一)不成立;则station和b比,成,就A,station 出站;三:如果一,二,不成立,就将A的车厢压到station栈中;四,重复一,二,三,结束条件是A没有车厢 并且 station没车厢 或者 b出栈出完了;在这里说原创 2017-10-15 16:35:25 · 293 阅读 · 0 评论 -
POJ 2259(用空间换取时间)
/**/#include #include #include using namespace std;queue teamid[1001];queue normal;int flagNum[1000000+1]; //关键在于这里,一个数的状态,看这个,如果是0,那么不是队列中的,是其他数,就是几号队列的 ;数就带过来了; int flagTeam[1001];void原创 2017-10-31 23:54:16 · 200 阅读 · 0 评论 -
POJ 1131 0ms通过测试;
解决此题的关键是:比如:0.75 先处理小数中最后一位(5/8 =/* 解决此题的关键是: 比如:0.75 先处理小数中最后一位(5/8 = 0.625);再处理最后第二位(7.625/8 = 最终结果); 为什么可以样做: (5/8 + 7) /8 = 最终结果; 5除二次8,7除一次8;是可以的; 明白了思想就要来,用代码实现了;中间有好多逻辑上的错误,我都一一解决原创 2017-10-14 01:47:07 · 188 阅读 · 0 评论 -
POJ 2499
/* 这是一个简单的题目,开始我以为有一个极端的情况出现,就是a,b两个数字相同怎么处理,但题目的要求,是不考虑这种情况; */#include using namespace std;int main(){ int lCount,rCount,testCount,i,j,a,b,t; scanf("%d",&testCount); for(i=1; i<=testCount; +原创 2017-11-08 18:45:25 · 514 阅读 · 0 评论 -
POJ 1001(高精度乘法)
在POJ上,测试通过(因为我在CSDN中很多不能通过的,特别声明)一,首先,说说我的解题思路,就是模仿乘法的运算过程,再来用字符串存结果;(这个不是很难);二,这个题目对于我来说,难的是没有考虑全面,a, 第一次使用完变量,前面都要初始化,不然容易出现 rinning error;b, 在设计算法的时候,对数据没考虑全面,比如,数据前面,和后面为零的无意义;题目要求去掉,我没去掉原创 2017-10-13 00:46:51 · 405 阅读 · 0 评论 -
POJ 1017
/*这题做的我心中上,有一万个草泥马。(用了一千个随机数测试,才知道自己的一部分代码出了逻辑错误,下次一定要注意一下本来简单的错误,我硬是找错误找了半天!) */#include #include #include using namespace std;int main(){//freopen("a.txt", "r", stdin); //输入重原创 2017-11-07 18:06:10 · 122 阅读 · 0 评论 -
POJ 1002(不用排序的方法)(简单的字符串处理程序)
#include #include using namespace std;int flag[10][10][10][10][10][10][10];int main(){ char map[30] = "2223334445556667#77888999"; char str[41]; char result[8]; int testCount,resultCount;原创 2017-11-07 18:09:36 · 151 阅读 · 0 评论 -
POJ 2082
#include #include using namespace std; const int N = 50005; struct Elem { int height; int width; }; Elem stack[N]; int top; int main() { int height,原创 2017-10-30 00:10:52 · 339 阅读 · 0 评论