12 2019 档案

摘要:传送门 解题思路 首先想暴力做法: 每一次比赛前都sort一遍,然后两两比较,总复杂度为O(R*(n+2n*log(2n))),最大约为1.5*10^8,而且会跑满,所以需要优化。 怎么优化呢? 我们发现这样一条性质: 假设排好序的序列为1,2,3,4(1>2>3>4)。这时进行比赛(1和2,3和4 阅读全文
posted @ 2019-12-27 23:11 尹昱钦 阅读(204) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 很容易我们可以得出结论, 当地板上的玩具数不足k个时,直接放。 当玩具数量等于k时,从地板上拿走的玩具一定是在地板上玩具中,下一次使用昨晚的那一次。 所以我们用一个优先队列存地板上的玩具,重载运算符,比较next[i]的大小。 接下来想一下怎么求next数组。 可以倒着枚举玩具序列 阅读全文
posted @ 2019-12-27 21:03 尹昱钦 阅读(191) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 这一道题和中位数那道题很像,如果不会中位数请先看一下那道题——中位数 这道题和那道题不同的地方在于: 那道题的第一个大根堆队列的数字数量是数字总数的一半,是根据数学知识计算出来的,并且输出是每两个数输出一个; 这道题的第一个大根堆队列的数字数量是get(i)中的i,每用一次get函 阅读全文
posted @ 2019-12-26 21:11 尹昱钦 阅读(262) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 首先是暴力做法: 从1开始枚举时间,每一次加一,判断有没有新的任务到达,然后挑出优先队列中的优先值最大的,执行一秒钟,在放回队列中。 显然是TLE的! 接着想一下优化: 找一找那里可以优化,发现只有时间!所以我们每一次取出队首(任务a)有两种情况——第一种是现在的时间+a的剩余完成 阅读全文
posted @ 2019-12-26 19:49 尹昱钦 阅读(152) 评论(0) 推荐(0) 编辑
摘要:最长上升子序列 传送门 题意 对于给定的一个n个数的序列,找到它的一个最长的子序列,并且保证这个子序列是由低到高排序的。 例如,1 6 2 5 4 6 8的最长上升子序列为1 2 4 6 8。 基本思路 非常显然,这类题用dp求解。 dp[i]表示已i为结尾的最长上升子序列的长度,首先枚举每一个末尾 阅读全文
posted @ 2019-12-14 22:24 尹昱钦 阅读(766) 评论(0) 推荐(2) 编辑
摘要:传送门 解题思路 第一眼的贪心策略:每次都选最大的。 但是——不正确! 因为选了第i个树,第i-1和i-1棵树就不能选了。所以,要有一个反悔操作。 选了第i个后,我们就把a[i]的值更新为a[l[i]]+a[r[i]]-a[i]。 然后这样如果发现选i-1和i+1更优时,再次加上a[i],结果就变成 阅读全文
posted @ 2019-12-13 21:08 尹昱钦 阅读(268) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 首先读入a、b数组后,sort一遍(从小到大),然后把a[1]+b[1],a[2]+b[1],a[3]+b[1]……a[n]+b[1]全部加入一个优先队列q(小根堆)。 然后从一到n循环,每一次取出队列中的最小的元素(假设是a[i]+b[j]),输出数值,然后把数值修改为a[i]+ 阅读全文
posted @ 2019-12-10 23:33 尹昱钦 阅读(216) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 很容易想到用最短路来解决这一道问题(题解法),因为两个点之间可以互相无限走,所以如果到某个点的最短路是x,那么x+2,x+4也一定能够达到。 但是如何保证这是正确的呢?比如说到某个点的最短路是x,为什么不可能走一下弯路,是某一条路径的长度是x+1或者x+3或者x+5呢? 所以就用到 阅读全文
posted @ 2019-12-06 21:10 尹昱钦 阅读(932) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 本题首先要明白,在每一天时,最优策略是先进行操作2(卖),再进行操作1(买),才能是利益最大化。 本题很显然当只有两天时,是一个完全背包,就是把当日价钱当做体积,把明日价格和今日价格的差作为价值,跑一边完全背包即可。时间复杂度O(TNM) 然后我们考虑满分做法——我们用dp[j]表 阅读全文
posted @ 2019-12-04 00:21 尹昱钦 阅读(1081) 评论(0) 推荐(0) 编辑
摘要:传送门 解题思路 先把所有的数据读下来。 对于地铁,答案直接加,然后把编号放入一个数组a内。 对于公交车,从前往后枚举a数组,然后找到出现最早的且符合价钱大于等于公交车的价钱,然后把这个数删除(变为0)。 然后再考虑有效期是45分钟,为了优化时间,我们可以每一次把数组看做一个队列,当a[first] 阅读全文
posted @ 2019-12-01 20:36 尹昱钦 阅读(1367) 评论(0) 推荐(1) 编辑
摘要:传送门 洛谷改域名了QAQ 解题思路 没什么好说的,一道红题,本不想发这篇博客 ,但还是尊重一下CCF吧QAQ,怎么说也是第一年CSP呢! 用getchar一个个读入、判断、累加,最后输出即可。 不过要注意getchar是包含在cstdio库里的。 AC代码 1 #include<iostream> 阅读全文
posted @ 2019-12-01 12:15 尹昱钦 阅读(463) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示