![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
洛谷
lingyoumax
这个作者很懒,什么都没留下…
展开
-
洛谷P1030(求先序排列)
洛谷P1030(求先序排列)题目描述输入格式输出格式解题思路代码题目描述给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度≤8)。输入格式2行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。输出格式1行,表示一棵二叉树的先序。解题思路这是一道二叉树的题目,当时老师是布置过这个题目的,但是我当时是用递归做的,但是我当时年轻,老师问了一句如果数据量10000000个,你又怎么处理呢,我当时提出了一个解法,好像和二叉排序树相关,转眼半年过去了,原解原创 2020-08-11 21:43:15 · 435 阅读 · 0 评论 -
洛谷P1029(最大公约数和最小公倍数问题)
洛谷P1029(最大公约数和最小公倍数问题)题目描述输入格式输出格式解题思路代码题目描述输入两个正整数 x0,y0x_0, y_0x0,y0,求出满足下列条件的 P,Q 的个数:1.P,Q 是正整数。2.要求 P, Q 以 x0x_0x0 为最大公约数,以 y0y_0y0为最小公倍数。试求:满足条件的所有可能的 P, Q的个数。输入格式一行两个正整数 x0,y0x_0, y_0x0,y0。输出格式一行一个数,表示求出满足条件的 P, Q 的个数。解题思路这题我是参考了别人的原创 2020-08-11 12:23:28 · 788 阅读 · 1 评论 -
洛谷P1028(数的计算)
洛谷P1028(数的计算)题目描述输入格式输出格式解题思路代码题目描述我们要求找出具有下列性质数的个数(包含输入的正整数 n)。先输入一个正整数 n(n≤1000)n(n \le 1000)n(n≤1000),然后对此正整数按照如下方法进行处理:1.不作任何处理;2.在它的左边加上一个正整数,但该正整数不能超过原数的一半;3.加上数后,继续按此规则进行处理,直到不能再加正整数为止。输入格式1 个正整数 n(n≤1000)n(n \le 1000)n(n≤1000)输出格式1 个整数,表示原创 2020-08-11 09:29:05 · 1495 阅读 · 0 评论 -
洛谷P1027(Car的旅行路线)
洛谷P1027(P1027 Car的旅行路线)题目描述输入格式输出格式解题思路代码题目描述又到暑假了,住在城市 A 的 Car 想和朋友一起去城市旅游。她知道每个城市都有 4 个飞机场,分别位于一个矩形的 4 个顶点上,同一个城市中两个机场之间有一条笔直的高速铁路,第 i 个城市中高速铁路了的单位里程价格为 TiT_iTi,任意两个不同城市的机场之间均有航线,所有航线单位里程的价格均为 t。那么 Car 应如何安排到城市B的路线才能尽可能的节省花费呢?她发现这并不是一个简单的问题,于是她来向你请教原创 2020-08-10 20:30:22 · 563 阅读 · 0 评论 -
洛谷P1026(统计单词个数)
洛谷P1026(统计单词个数)题目描述输入格式输出格式解题思路代码题目描述给出一个长度不超过 200 的由小写英文字母组成的字母串(该字串以每行 20 个字母的方式输入,且保证每行一定为 20 个)。要求将此字母串分成 kk份,且每份中包含的单词个数加起来总数最大。每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串 this 中可包含 this 和 is,选用 this 之后就不能包含 th。单词在给出的一个不超过 6 个单词的字典中。要求输出最大的个数。输入格式原创 2020-08-10 14:52:16 · 579 阅读 · 0 评论 -
洛谷P1025(数的划分)
洛谷P1025(数的划分)题目描述输入格式输出格式解题思路代码题目描述将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1.问有多少种不同的分法输入格式n,k (6<n≤200,2≤k≤6)输出格式11个整数,即不同的分法。解题思路这题我是没有啥骚骚的办法,只能老老实实的dfs了,dfs过程中,差点就被递归诱惑了,不能忍,果断数组当栈用。要注意一个点,就是题目中重复的不算,我原创 2020-08-07 22:07:43 · 360 阅读 · 0 评论 -
洛谷P1024(一元三次方程求解)
洛谷P1024(一元三次方程求解)题目描述输入格式输出格式解题思路代码题目描述有形如:ax3+bx2+cx1+dx0=0ax^3+bx^2+cx^1+dx^0=0ax3+bx2+cx1+dx0=0这样的一个一元三次方程。给出该方程中各项的系数(a,b,c,d均为实数),并约定该方程存在三个不同实根(根的范围在−100至100之间),且根与根之差的绝对值≥1。要求由小到大依次在同一行输出这三个实根(根与根之间留有空格),并精确到小数点后2位。提示:记方程f(x)=0,若存在2个数x1x_1x1和x2x原创 2020-08-07 17:03:41 · 345 阅读 · 0 评论 -
洛谷P1023(税收与补贴问题)
P1023(税收与补贴问题)题目背景题目描述输入格式输入格式解题思路代码题目背景每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数)对于某些特殊商品,不可能完全由市场去调节其价格。这时候就需要政府以税收或补贴的方式来控制。(所谓税收或补贴就是对于每个产品收取或给予生产厂家固定金额的货币)题目描述你是某家咨询公司的项目经理,现在原创 2020-08-07 16:29:52 · 289 阅读 · 0 评论 -
洛谷P1022(计算器的改良)
洛谷P1022(计算器的改良)题目背景题目描述输入格式输出格式解题思路代码题目背景NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。题目描述为了很好的完成这个任务,ZLZL先生首先研究了一些一元一次方程的实例:4+3x=86a-5+1=2-2a-5+12y=0ZLZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三原创 2020-08-05 15:55:32 · 354 阅读 · 0 评论 -
洛谷P1021(邮票面值设计)
洛谷P1021(邮票面值设计)题目输入格式输出格式解题思路题目 给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤15)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1至MAX之间的每一个邮资值都能得到。 例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资原创 2020-08-05 15:45:55 · 1028 阅读 · 0 评论 -
洛谷P1020(导弹拦截)
洛谷P1020第一问第二问 做了这一题我才发现我好笨啊,不得不说我的dp功底不够。 #define int num[100000] 数组存储导弹高度序列。第一问 第一问就是问一个不上升的最长序列,这个大家都懂,那么怎么求呢,首先构造一个int d1[100000],这个数组里有效数字的长度就是我们要求的不上升序列的长度,注意,我们只需要求长度,但是序列里各个元素是些什么我们不需要知道,于是就有了这一个非常高明的dp方法(我也是看的大佬代码),假设d1末尾的元素是d1[len1-1],新遍历的元原创 2020-07-31 16:04:31 · 827 阅读 · 1 评论 -
洛谷P1019(单词接龙)
@[toc](洛谷P1019) 这一题要看清楚题目哦,每个单词可能出现2次,然后还有个隐藏条件没说的,就是龙头不一定只有一个啊,比如龙头的字母是a,但是有单词able和apple,那么这两个单词都能作为龙头。 深度遍历尽量别用递归,虽然这一题的单词量小,但是我学ac的初衷是提高自己的解决问题的思路水平,万一以后需要处理大数据量的相同题目,过度依赖递归就显然违背了我的初衷,所以果断堆栈寄存器,别说,用堆栈的实现方法运行时间也足够优秀。可是有个问题,这一题的dfs和普通dfs有点不一样的就是每个点允许经原创 2020-07-28 10:45:41 · 232 阅读 · 0 评论 -
洛谷P1018(乘积最大)
洛谷P1018 第一次用string做高精度就好香啊,熟悉高精度的朋友可以不用颠倒string,更加直观有没有。string的substr()和size()函数结合在一起感觉就像是为这题量身打造,但是有个问题,运行速度比较慢,里面有一个测试点12ms,另一个测试点13ms,其它都是正常的。 ans[i][j]表示前i个数中插入j个乘号后的最大值,我们最后输出ans[n][k]就好了。代码如下:#include<iostream>#include<string>#inc原创 2020-07-25 22:17:04 · 686 阅读 · 0 评论 -
洛谷P1017(进制转换)
洛谷P1017 这题可能有点吓人的就是负数除法,这个其实也没啥,如果熟正数的,负数也简单,但是注意一点就是除出来之后可能是一个负数,当然,这个负数的绝对值一定比除数的绝对值小,这和普通除法还是一样的,那么可以用余数减一个除数,相应地,商要加一,接着用商除以除数,直到商为0。代码如下:#include<iostream>#include<stack>using namespace std;int main() { int n; int m; int R; stac原创 2020-07-21 20:43:33 · 341 阅读 · 0 评论 -
洛谷P1016(旅行家的预算)
洛谷P1016 这一题,有点麻烦,本来想用滚动数组的,就像P1004那样,但是有个问题,里面涉及到汽车油量的问题,如果前面的油没用完,那么会影响到后面的花费问题,也就是说,它们并不是一个相互独立的问题,而是相互关联的。 但是我们可以结合实际去考虑这一题,现实生活中,我们如果进行长途旅行,如果两个加油站之间的距离,就算我们用完汽车油箱里所有油都到不了,那就只能输出"No Solution"了,表示我们无能为力啊,实在到不了。然后就算我们到得了,也要考虑花费问题,毕竟省下来的钱我们可以用来买好多好吃的。原创 2020-07-21 16:25:13 · 527 阅读 · 0 评论 -
洛谷P1015(回文数)
洛谷P1015 看到题目中说的有100位数据,再来个30次进位,多少个long long才放得下啊,所以我立马选择建立一个130位的数组,去存储,其实也不是很难。代码如下:#include<iostream>#include<string>#include<cstring>using namespace std;int num[130];int main() { int N; cin >> N; string M; cin >&原创 2020-07-19 18:42:36 · 629 阅读 · 0 评论 -
洛谷P1014(Cantor表)
洛谷P1014 这题是个入门题,只要看清楚题,都不会有问题的,什么?你问我为啥要写这篇博客?读书人水博客能叫水博客吗?说罢,气氛便欢乐了起来。代码如下:#include<iostream>#include<cmath>using namespace std;int main() { long long N; cin >> N; long long n = ceil(sqrt(2 * N + 0.25) - 0.5); long long t = N原创 2020-07-19 12:46:05 · 192 阅读 · 0 评论 -
洛谷P1013(进制位)
洛谷P10130级解法1级解法2级解法3级解法 洛谷里大神好多啊,这一次我会整理一下各种思路,最后再亮出代码。0级解法 不知道有没有人和我一样,一开始看到这题的时候,想用解方程的方法做,先在(n-1)*(n-1)个数中挑选n个数出来解方程,之后把结果代入表格中看是否能对上,但是这样复杂度蛮高的,而且acm不支持matlab,用c++去解方程想想就头疼,而且解方程中,遇到有进位的数,又不知道进制,这就很麻烦了。1级解法 在这个表中,必定存在有进位的数,且进制必为n-1,所要求的数必定是0,1,原创 2020-07-19 10:44:11 · 496 阅读 · 0 评论 -
洛谷P1012(拼数)
洛谷P1012 对于这一题,我刚开始还是想老老实实用int或long做的,但是看了一位大佬的做法,用string做,就很自然的解决了数字连接的问题,所以果断string。代码如下:#include<iostream>#include<string>using namespace std;int main() { string s[20]; int n; cin >> n; for (int i = 0;i < n;i++) { cin &g原创 2020-07-17 20:22:00 · 1182 阅读 · 0 评论 -
洛谷P1011(车站)
洛谷P1011 小瞧了斐波那契数列的能力,中间就是一个递推的关系,刚开始想简单解方程的,但是做不到,然后不要偷懒,可以自己手算一下,把大概递推关系算出来,然后就ac了。 第一次提交的时候wa了,原因是我把int型数组在main()函数中定义,但是数组中的元素并不会被初始化0,我把数组在main()函数以外定义就不存在这个问题了,直接ac。代码如下:#include<iostream>using namespace std;int a_num[19];int b_num[19];原创 2020-07-17 16:16:12 · 576 阅读 · 0 评论 -
洛谷P1010(幂次方)
洛谷P1010 本来想用多叉树的,但是二叉树好像无论是处理还是遍历,都好麻烦的,而且会浪费内存,这不能忍。于是我想到了用内存,它的时间复杂度就和需要处理的次数一样,空间复杂度也刚刚好,我用-3代表左括号,-2代表右括号,-1代表加号,这样就只用int型数据,中间我用了一个queue型的数组,没错,是数组,可以轮流用,当一个数组抛出数据的时候,另一个就接数据,在抛接的过程中,就可以处理那个数据,如果那个数据大于2,就可以将它分解一次。遍历完一个队列之后,如果在这个队列抛出的过程中没有处理过任何数据,就说明原创 2020-07-17 10:29:43 · 685 阅读 · 0 评论 -
洛谷P1009(阶乘之和)
洛谷P1009 还是没学会高精,唉,又浪费了内存,愧疚啊代码如下:#include<iostream>const long long num = 100000000000000000;using namespace std;struct big { long long num1 = 0; long long num2 = 0; long long num3 = 0; long long num4 = 0;};big add(big a, big b) {//将两个高精度原创 2020-07-16 22:00:20 · 496 阅读 · 0 评论 -
洛谷P1008(三连击)
洛谷P1008 这一题我们暴力搜索就好了,对于三个数中的最小值,应该不能小于123,也不能大于329(329/3),那么就在这个区间范围内搜索可行的解就行了。代码如下:#include<iostream>using namespace std;int main() { for (int a = 123;a <= 329;a++) { int b = 2 * a; int c = 3 * a; if (((a / 100 + (a / 10 % 10) + a %原创 2020-07-16 21:02:38 · 536 阅读 · 0 评论 -
洛谷P1007(独木桥)
洛谷P1007 对于最小时间大家应该都知道,就是每个士兵刚开始的时候方向都是离自己最近的桥的端点,这样的话,就去寻找每个士兵能够到达桥端的最短时间的最大值。 对于最大时间,每个士兵相遇后都会转身,但是每个士兵从宏观上看都是平等的,也是相同的,那么我们可以认为每个士兵相遇后会“灵魂交换”,即继续前进,那么我们就找每个士兵到达桥端的最大值的最大值就好了。代码如下:#include<iostream>#include <algorithm>using namespace s原创 2020-07-16 20:59:24 · 376 阅读 · 0 评论 -
洛谷P1006(传纸条)
洛谷P1005 这题比较重要的一个点是每个同学只能帮一次传纸条,(上课就要好好听讲,帮你传一次已经够朋友了)和P1004不一样的是,两条路线不能交叉,除了小渊处和小轩处能够交叉,这么样的话,我们可以看成小渊同时发送两条纸条,且两条纸条传递的路线是不能重合的,直到两个纸条都传到小轩手里。 注意到,两条路线不交叉的话,那么在相同步数的情况下,必然有一条路线的终点的行数大于另一条路线的终点的行数,这样的话,我看到很多人用了二维数组去表示在当前步数下好感度之和,但是这样会浪费一半的存储空间,很可怕,作为艰苦原创 2020-07-16 16:09:49 · 430 阅读 · 0 评论 -
洛谷P1005(矩阵取数游戏)
洛谷P1005 这题好像很难啊,我花了一个上午才做出来,首先一个重要的思想是把数组分割成小数组去遍历,递推公式是f[i,j]=max(a(i)+f[i+1,j],a(j)+f[i,j-1]),刚开始我想用递归和longlong去做,结果就报错TLE,复杂度太高了,没办法只能优化到非递归结构,选择用数组存储的形式,注意,这里我看到很多人选择用一个矩阵a去表示,a(i,j)=f(i,j),但是这样的话,f(j,i)是不存在的,就会把这个矩阵一半的空间浪费掉,这显然不符合我勤俭节约的作风,从matlab中将关原创 2020-07-13 21:13:58 · 1078 阅读 · 0 评论 -
洛谷P1084(疫情控制)
洛谷P1084 这一题是我和洛谷的结缘题,是在做了这题后才开始迈入洛谷的ac路,然而我都大二了,还是菜鸡一个 这题是一个二分法去做,因为题目的解是一个线性的,好像求一根直线与x轴的交点一样,非常的巧妙。我一开始是不会做的,是看了大佬们的题解后,摸索了3天才理解了个大概 感觉没啥好说的,直接上代码#include<iostream>#include<cstdio>#include<cstring>#include<stack>#includ原创 2020-07-11 19:10:41 · 952 阅读 · 0 评论 -
洛谷P1004(方格取数)
洛谷P1004 这一题我在做之前是看了题解的,但是好吓人,有人用了4维数组,特别恐怖 时间复杂度姑且不计,n^4空间复杂度就太恐怖了,但是注意到题目的一个性质,就是每个点的值只与前面一次遍历到的点有关,可以再次采用滚动数组的方法 以下是我的代码#include<iostream>#include <algorithm>#define ll long longusing namespace std;ll f[11][11];ll map[11][11];int原创 2020-07-11 19:08:00 · 334 阅读 · 0 评论 -
洛谷P1003(铺地毯)
洛谷P1003 这一题做的我有点飘啊,主要思想就是从编号比较大的先开始遍历,一次过,虽然可能会有人会吐槽我做的太简单了,本来想用栈的,但是感觉栈就是杀鸡用牛刀了。 以下是我的代码:#include<iostream>using namespace std;int main() { int n; cin >> n; int ** sj = new int *[n]; for (int i = 0;i < n;i++) { sj[i] = new int[原创 2020-07-11 18:58:53 · 440 阅读 · 0 评论 -
洛谷P1002(过河卒)
洛谷P1002 这一道题,我做了大概半天,感悟良多,其中,最重要的是感叹自己基础不够,没有把这个问题考虑透彻。 参考了大佬们的思路,磕磕碰碰总算写出来了。 在编程中,最简单又最容易碰到的问题是数组越界,可是我却没有考虑清楚,还有马的位置会影响棋盘边界能否让卒落脚,这是一个简单的问题,却也是复杂的问题。 最开始我的写法是用一个30*30的数组暴力遍历所有棋盘上的点,但是我后来想到卒只能向下或向右移动,也就是说B点以后的点是影响不了B点的值得,所以只用考虑B点和A点围城的一个矩形的范围内的棋点。原创 2020-07-11 18:57:02 · 250 阅读 · 0 评论 -
洛谷P1001(A+B Problem)
洛谷P1001 这一题是A+B题,作为一个入门选手,肯定都会,简简单单的Cout<<a+b之后,手贱点开了题解,然后颤颤巍巍地关闭网页。 唉,洛谷的大佬们太不友好了,给我来了一个下马威,不过这让我认识到了自己的渺小,人外有人,山外有山,晚辈自当奋发图强,超越就是最好的致敬。 这题就不附代码了...原创 2020-07-11 18:53:28 · 286 阅读 · 0 评论 -
洛谷P1000(超级玛丽游戏)
洛谷P1000才发现洛谷有P1000这题,“万事开头难”,彩蛋之题啊#include<iostream>using namespace std;int main(){ cout << " ********" << endl; cout << " ************" << endl; cout << " ####....#."原创 2020-07-11 18:48:19 · 257 阅读 · 0 评论