摘要:原题链接: "Find the answer" c++中,multiset是库中一个非常有用的类型,它可以看成一个序列,插入一个数,删除一个数都能够在O(logn)的时间内完成,而且他能时刻保证序列中的数是有序的,而且序列中可以存在重复的数。 具体操作请参考: "multiset用法总结" 解题思路 阅读全文
posted @ 2019-07-31 11:02 zoom1109 阅读 (58) 评论 (0) 编辑
摘要:原题链接:1373:鱼塘钓鱼(fishing) 解题思路: 由于在走路时,鱼的数量不会减少,那我们此时可以先减去路上可能花掉的时间,用剩下的时间来找最多的鱼,然后从左向右走,k枚举能到达的最远的鱼塘,然后开一个大根堆选出最多能选的鱼,当然别忘了每次减去路上的花费(只走一次); 大根堆的关键字用num 阅读全文
posted @ 2019-07-30 13:46 zoom1109 阅读 (22) 评论 (0) 编辑
摘要:原题链接:P2085 最小函数值 解题思路: 我们建一个大根堆,存最小的数到第m小的数,第m小的数就理所当然的是堆顶了。 每次我们只需要比较新加进来的数比堆顶大还是比堆顶小,如果比堆顶小,将原来的堆顶丢掉,将新的数塞进去; 如若比堆顶大,根据该题题意,a>0 && b>0,函数对称轴x = −b / 阅读全文
posted @ 2019-07-30 13:29 zoom1109 阅读 (19) 评论 (0) 编辑
摘要:原题链接:POJ 2796 Feel Good 题意简述: 求某段区间的最小值*这段区间所有元素之和的最大值; 代码如下: #include<iostream> #include<cstdio> using namespace std; const int N = 100010; typedef l 阅读全文
posted @ 2019-07-27 14:42 zoom1109 阅读 (23) 评论 (0) 编辑
摘要:原题链接:H Magic Line 题意简述: 给定n个点,要求画一条直线将n个点分成均有n / 2个点的两部分,不能有点在线上; 解题思路: 首先,先将所有的点进行以x为第一关键字,y为第二关键字进行排序,接着: 第一种情况 对于第二种情况,我们首先根据a1(a[n / 2].x - 1,a[n 阅读全文
posted @ 2019-07-27 13:56 zoom1109 阅读 (25) 评论 (0) 编辑
摘要:原题链接:Largest Rectangle in a Histogram 题意简析: 首先我们得对我们的问题进行一个总结:给定一序列,寻找某一子序列,使得子序列中的最小值乘以子序列的长度最大。这样抽象出来之后,很显然我们可以用单调栈解决此题。 我们建一个栈,用来保存若干矩形,这些矩形的高度是单调递 阅读全文
posted @ 2019-07-25 16:27 zoom1109 阅读 (27) 评论 (0) 编辑
摘要:题目链接:A Equivalent Prefixes 解题思路 单调栈 我们可以利用单调栈对输入的两个数组进行一下操作:找到比当前数字小的元素,将找到的元素的下标储存起来; 比较两个数组,如果有不一样的,则记录答案,break; 代码如下 1 #include<iostream> 2 using n 阅读全文
posted @ 2019-07-19 22:41 zoom1109 阅读 (62) 评论 (0) 编辑
摘要:【题目描述】 马在中国象棋以日字形规则移动。 请编写一段程序,给定n×m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上的所有点。 【输入】 第一行为整数T(T < 10),表示测试数据组数。 每一组测试数据包含一行,为四个整数,分别为棋盘的大 阅读全文
posted @ 2019-07-17 14:27 zoom1109 阅读 (29) 评论 (0) 编辑
摘要:【题目描述】 有两堆石子,两个人轮流去取。每次取的时候,只能从较多的那堆石子里取,并且取的数目必须是较少的那堆石子数目的整数倍,最后谁能够把一堆石子取空谁就算赢。 比如初始的时候两堆石子的数目是25和7。 最后选手1(先取的)获胜,在取的过程中选手2都只有唯一的一种取法。 给定初始时石子的数目,如果 阅读全文
posted @ 2019-07-17 13:23 zoom1109 阅读 (41) 评论 (0) 编辑
摘要:Description 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。 Input 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k, 阅读全文
posted @ 2019-07-17 10:07 zoom1109 阅读 (19) 评论 (0) 编辑