Loading

08 2019 档案

摘要:A. There Are Two Types Of Burgers 水题。题意:给你面包片数,两种不同的肉饼数(制作一个汉堡要消耗两片面包和一片肉饼),之后再给你两种不同的汉堡售价,问你如何取得最大收益。 思路:照题意模拟即可 ,简单贪心。 #include <iostream> #include 阅读全文
posted @ 2019-08-28 23:23 ViKyanite 阅读(178) 评论(0) 推荐(0) 编辑
摘要:A. Choose Two Numbers 题意:让你从A集合里取一个数a,B集合里也取一个数b,使得a+b同时不存在于集合A和集合B中 思路:直接取A和B集合中最大元素,最大元素相加必然不在A集合或者B集合里 #include <cstdio> #include <algorithm> #incl 阅读全文
posted @ 2019-08-23 23:05 ViKyanite 阅读(189) 评论(3) 推荐(0) 编辑
摘要:题意:输入 A B X,表示 B 的权值比 A 多 X,以300为周期,求描述错误的数目 思路:标准带权并查集 阅读全文
posted @ 2019-08-21 12:20 ViKyanite 阅读(148) 评论(0) 推荐(0) 编辑
摘要:并查集。 新兵入伍。三种操作:①入伍②合并队伍③查找一个队伍里面战斗力最弱的。注意队伍编号从0开始。 多了一个记录每个集合最小值的minn数组而已,然后判断的时候小心一点就可以了。 阅读全文
posted @ 2019-08-21 12:16 ViKyanite 阅读(242) 评论(0) 推荐(0) 编辑
摘要:这是并查集很常见的题型。 对于A~B之间的和是S,其实可以理解成B比A-1大S; 这样和普通的并查集就很类似了。 阅读全文
posted @ 2019-08-20 22:14 ViKyanite 阅读(147) 评论(0) 推荐(0) 编辑
摘要:大意:告诉你有n个点 m个边的无向图 然后问有多少点对 他们的路径上节点之间的距离都少于 x 思路: 并查集 离线处理。将边权值按从小到大排序,查询标号后按照从小到大排序。对于每次查询,依次将比当前查询值小的边加入并查集。 阅读全文
posted @ 2019-08-20 21:39 ViKyanite 阅读(108) 评论(0) 推荐(0) 编辑
摘要:克鲁斯卡尔(最小生成树) 阅读全文
posted @ 2019-08-20 20:54 ViKyanite 阅读(126) 评论(0) 推荐(0) 编辑
摘要:题意:输入n个点,要求选m个点满足连接m个点的m-1条边权值和sum与点的权值和ans最小,即sum/ans最小,并输出所选的m个点,如果有多种情况就选第一个点最小的,如果第一个点也相同就选第二个点最小的........分析:因为n<=15,所以可以暴力枚举出所选的m个点,然后对这m个点进行最小生成 阅读全文
posted @ 2019-08-20 20:53 ViKyanite 阅读(131) 评论(0) 推荐(0) 编辑
摘要:最小生成树。 题意就是有N座城市,每个城市有一定的幸福值a[i]。对于任意两个城市i和j,如果a[i],a[j],a[i]+a[j]中任意一者的值为素数,那么他们的边权就是min(min(a[i],a[j]),abs(a[i]-a[j]))。问题就是这一幅图的最小生成树。显然,边一旦建出来了,这就是 阅读全文
posted @ 2019-08-20 20:51 ViKyanite 阅读(110) 评论(0) 推荐(0) 编辑
摘要:并查集求最大集合中元素数量 阅读全文
posted @ 2019-08-20 20:49 ViKyanite 阅读(114) 评论(0) 推荐(0) 编辑
摘要:建图+最小生成树 阅读全文
posted @ 2019-08-20 20:35 ViKyanite 阅读(117) 评论(0) 推荐(0) 编辑
摘要:基础并查集 要注意的点就是成环和空集,成环即Union拥有相同的根的两个点必然就会成环,此时是输出“NO”的。 而空集是要输出“YES”的。 阅读全文
posted @ 2019-08-20 20:33 ViKyanite 阅读(132) 评论(0) 推荐(0) 编辑
摘要:基础并查集,统计有多少个根节点即可。我这里用set 阅读全文
posted @ 2019-08-20 20:25 ViKyanite 阅读(95) 评论(0) 推荐(0) 编辑
摘要:还是最基础的最小生成树。 这道题我是真的无语,不加#include <iostream>就会wa 阅读全文
posted @ 2019-08-20 20:24 ViKyanite 阅读(94) 评论(0) 推荐(0) 编辑
摘要:基础最小生成树。 阅读全文
posted @ 2019-08-20 20:18 ViKyanite 阅读(104) 评论(0) 推荐(0) 编辑
摘要:基础并查集。 阅读全文
posted @ 2019-08-20 20:17 ViKyanite 阅读(125) 评论(0) 推荐(0) 编辑
摘要:典型的打怪兽贪心。 题目讲的是在你打游戏时面对了以一打多的情况,这时你开了无敌状态,有无限的生命,但是你的攻击力变为了1,试问你把所有敌人打倒时你消耗的最少生命值。将DFS与HP的比值进行从大到小的排序,然后按这个顺序依次打。 阅读全文
posted @ 2019-08-20 14:11 ViKyanite 阅读(144) 评论(0) 推荐(0) 编辑
摘要:不得不说这道题的贪心策略对于那时我来说真的挺难想的,不过贪心策略难想好像就是贪心题目的特色? 按照结束时间排序,优先选取结束时间早的。 阅读全文
posted @ 2019-08-20 14:08 ViKyanite 阅读(86) 评论(0) 推荐(0) 编辑
摘要:题意:从小到大每三杯第三杯免费,就是每第三杯不要钱,问你要花多少钱。 hint:贪心,就是简单的sort函数运用 阅读全文
posted @ 2019-08-20 14:05 ViKyanite 阅读(198) 评论(0) 推荐(0) 编辑
摘要:典型迷宫。 阅读全文
posted @ 2019-08-20 13:57 ViKyanite 阅读(73) 评论(0) 推荐(0) 编辑
摘要:这道跟前面的油田挺像的,不过从四个方向变成了八个方向 阅读全文
posted @ 2019-08-20 13:56 ViKyanite 阅读(91) 评论(0) 推荐(0) 编辑
摘要:还是很简单的水题。不过他的边界条件我到现在还是不是很懂hhhh 阅读全文
posted @ 2019-08-20 13:54 ViKyanite 阅读(124) 评论(0) 推荐(0) 编辑
摘要:还是迷宫只是从之前的二维变成了三维而已。 阅读全文
posted @ 2019-08-20 13:53 ViKyanite 阅读(116) 评论(0) 推荐(0) 编辑
摘要:水题不多说。上代码 阅读全文
posted @ 2019-08-20 13:52 ViKyanite 阅读(144) 评论(0) 推荐(0) 编辑
摘要:这道也是典型的DFS迷宫。算是简单的了。 /*对于此题的理解 一开始认为与走砖块差不多但后来发现有很多地方我实现不了 学习了此题便可以解决一系列找宝藏问题 这题重要的地方就是 1.奇偶剪枝 2.找到目标退出(最优路径便无需推出) 3.方向循环里该如何编写的学习 4.墙数与地图可行数对题目的优化*/ 阅读全文
posted @ 2019-08-20 13:50 ViKyanite 阅读(124) 评论(0) 推荐(0) 编辑
摘要:因为是否放在这个入门专题里的所以就没怎么想直接就做了。 但是超时了,于是去网上看题解去学DFS剪枝,但是神奇的是剪枝之后居然还是超时。 由于题目的N是小于等于10的 所以。。 如果不喜欢这样的骚操作。 当然推荐的还是楼天城的位运算剪枝。真的很神奇。想去了解的还是自行百度。 阅读全文
posted @ 2019-08-20 13:48 ViKyanite 阅读(115) 评论(0) 推荐(0) 编辑
摘要:也是很简单的DFS水题,就跟求有多少连通块差不多。(只有上下左右四个方向有联通才是连通块) 阅读全文
posted @ 2019-08-20 13:39 ViKyanite 阅读(116) 评论(0) 推荐(0) 编辑
摘要:传送门problem_link 这道就是DFS的入门题。没啥好说的 唯一要注意的可能就是输出格式吧,记得有空行 阅读全文
posted @ 2019-08-20 13:28 ViKyanite 阅读(118) 评论(0) 推荐(0) 编辑
摘要:题目传送门problem_link 题意:给出一个区间,选择这段区间的某个子区间,使得在这段子区间内的元素最小值*这段区间所有元素之和最大。 具体看代码吧。 阅读全文
posted @ 2019-08-20 13:16 ViKyanite 阅读(120) 评论(0) 推荐(0) 编辑
摘要:这道题就是最基础的单调栈。 所谓的单调栈就是,维护栈内元素使其保持单调性。有了单调栈我们就可以在O(n)的复杂度下解决一些特定的问题 这道题的意思是问你所有的牛都往右看,能看见牛的数目总和。 题目样例都解释的很清楚了。直接上代码吧。 阅读全文
posted @ 2019-08-18 20:10 ViKyanite 阅读(136) 评论(0) 推荐(0) 编辑
摘要:这题没啥好说的。就是烂模拟,我的是这样想: 每次读三个数和两个运算符,如果第一个运算符是“+”或者“-”,后面的是“*”或者“/”那么就先将后面处理,之后将处理之后的值和还没用的数字再放回去,第一个运算符也同样放回。 其他情况便都是先算前面之后把处理之后的值和还没用的数字放回,将第二个运算符同样放回 阅读全文
posted @ 2019-08-17 21:52 ViKyanite 阅读(216) 评论(0) 推荐(0) 编辑
摘要:这道题直接模拟即可,我也不是很懂为什么放在队列和栈里,估计学长是想让我们用栈和队列写吧。但是个人觉得数组更好理解,其实栈和队列跟数组本质上都差不多。 1 #include <bits/stdc++.h> 2 #define maxn 5000 + 10 3 int main(){ 4 int in; 阅读全文
posted @ 2019-08-17 14:48 ViKyanite 阅读(192) 评论(0) 推荐(0) 编辑
摘要:传送门problem_link. 很简单的阅读题,主要要看懂题意:给你N个游戏,每个游戏的价格是Ci。之后给你M份钱,每份钱是Ai。 注意:钱是花掉一份才能有下一份,就像第二个样例,19块什么游戏都买不了,所以就不能用下一份钱,所以就是0份 hint:队列模拟即可 #include <bits/st 阅读全文
posted @ 2019-08-17 14:34 ViKyanite 阅读(189) 评论(0) 推荐(0) 编辑
摘要:传送门(problem_link) 这道题目就是很普通的一道水题,容易错的点可能就是题目问你是最少要拆多少礼物。 ((()()(B)))这样的话最少应该是3个才对 当拆到()()(B)的时候直接拆有B的就行了,因为题目求的是最少 所以这道题的解题思路就是一直读,遇到"( "入栈,遇到" )"出栈,遇 阅读全文
posted @ 2019-08-16 17:41 ViKyanite 阅读(111) 评论(0) 推荐(0) 编辑
摘要:#include <bits/stdc++.h> using namespace std; int main() { cout << "Hello, World!" << endl; return 0; } 阅读全文
posted @ 2019-08-16 12:33 ViKyanite 阅读(84) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示
主题色彩