摘要: 一、什么是有效地训练? 很多ACMer入门的时候,都被告知:要多做题,做500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。 我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。 其实,500题仅仅是一个标志,而且仅仅表示你做ACM 阅读全文
posted @ 2019-05-31 12:02 Mmasker 阅读(277) 评论(0) 推荐(0)
摘要: 题目大意 在一个平面坐标系里,给你 n 个三角形,让你选出一条平行于 x 轴的线,能穿过最大数量的三角形。 废话不多说,直接上代码,自行理解。 #include<bits/stdc++.h> using namespace std; #define maxn 2000005 int n; int a 阅读全文
posted @ 2019-05-14 20:10 Mmasker 阅读(134) 评论(0) 推荐(0)
摘要: A - hzy 和 zsl 的生存挑战 这道题很有意思啊,在不知道答案的情况下很多人在比赛的时候可能会很着急就难以考虑到方方面面,其实只需要一个人说自己听到的数字,另一个人说与自己听到数字相反的数字,就一定能活下来。 这题就没必要附上代码了。 G - 简单数学题 这道题数据量很大,显然是需要推公式的 阅读全文
posted @ 2019-05-11 21:28 Mmasker 阅读(170) 评论(0) 推荐(0)
摘要: A.两只脑斧(签到题) 这题就不多叙述,直接上代码 #include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <vector> using namespace std; int mai 阅读全文
posted @ 2019-05-11 20:19 Mmasker 阅读(180) 评论(0) 推荐(0)
摘要: 最小生成树问题 给定一个无向图,如果它的某个子图中任意两个顶点都互相连通,那么这个图就叫做生成树。如果边上有权值,那么使得边权和最小的生成树叫做最小生成树(MST)。 但是!!! 如果这个图不连通呢? 有时题目会让你自行判断图是否连通,若不连通输出-1,连通输出权值和。 其实我们只需要加入一个fla 阅读全文
posted @ 2019-05-07 19:43 Mmasker 阅读(147) 评论(0) 推荐(0)
摘要: Kruskal算法的核心:并查集加贪心 思想内容:要让n个点连通,那么至少选n-1条边,又要让各边的长度之和最小,那么只要每次选出最短的边即可,但是注意已经联通的点无须再增加多余的边,这个可以用并查集判断,是否在一个集合内。 #include<iostream> #include<cstdio> # 阅读全文
posted @ 2019-05-01 21:57 Mmasker 阅读(100) 评论(0) 推荐(0)
摘要: #include<iostream> #include<algorithm> #include<cstring> #include<string> #include<cmath> #include<queue> #include<vector> using namespace std; #defin 阅读全文
posted @ 2019-04-10 18:47 Mmasker 阅读(92) 评论(0) 推荐(0)
摘要: 首先我们应该考虑的是如何将这个图中的每条有向边表示出来 刚开始大家肯定都会想到用二维数组,用坐标来写两个点间的距离,但这会造成时间和空间的巨大浪费,因此,我们就需要新型高效的方法来储存这些有向边—— 1.链式前向星 struct edge { int next; int to; int val; } 阅读全文
posted @ 2019-04-10 16:42 Mmasker 阅读(288) 评论(0) 推荐(0)
摘要: 大多数的编程问题都离不开数学问题,而排列组合作为数学的一重要分支,自然也会被列入编程学科里来。 下面给出一道简单例题: 众所周知,不定方程的解有0个或者若干个。 给出方程: 想知道这个不定方程的正整数解和非负整数解各有几个。 (链接:https://ac.nowcoder.com/acm/conte 阅读全文
posted @ 2019-04-07 16:42 Mmasker 阅读(290) 评论(0) 推荐(0)