ACM
算法训练之路
Janspiry
Github:Janspiry
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
G++和C++区别和评测注意事项
G++和C++的区别和评测注意事项 下面摘抄自互联网 G++ 首先更正一个概念,C++是一门计算机编程语言,G++不是语言,是一款编译器中编译C++程序的命令而已。 那么他们之间的区别是什么? 在提交题目中的语言选项里,G++和C++都代表编译的方式。准确地说,选择C++的话,意味着你将使用的是最标准的编译方式,也就是ANSI C++编译。如果你使用的是G++的话,意味着你将使用GNU项目中最平凡...原创 2019-08-03 12:01:47 · 572 阅读 · 0 评论 -
贪心算法:小船过河问题
贪心算法:小船过河问题 题意:N个人过河,船每次只能坐两个人,船载每个人过河的所需时间不同t[i],每次过河的时间为船上的人的较慢的那个,问最快的过河时间。(船划过去要有一个人划回来) 最优选择: 先将所有人过河所需的时间按照升序排序考虑把单独过河所需要时间最多的两个旅行者送到对岸去,有两种方式: 1.最快的和次快的过河,然后最快的将船划回来;次慢的和最慢的过河,然后次快的将船划回来,时间:t[0...原创 2018-10-13 10:45:02 · 4902 阅读 · 0 评论 -
贪心 哈夫曼思想
贪心 哈夫曼思想 题意:科学家发现一种奇怪的玩意,他们重量分别是Wi, 如果他们碰在一起,总重变成2*sqrt(W1 * W2)。 要求出最终的重量的最小值。 思路:哈夫曼思想,把所有重量放优先队列里,这里每次取俩最大的处理后再放回去,最后队列剩下的最后元素就是最小的 需要注意的是oj交G++的时候,double型的输出格式用%f,而不是%lf。C++可以过 更加详细可以这篇博客 #include...原创 2018-10-13 11:49:12 · 384 阅读 · 1 评论 -
贪心算法 田忌赛马问题
贪心算法 田忌赛马问题 这个题目贪心的本质在于:*田忌只在有把握赢的情况下拿出快马和王拼,否则用最慢的马比掉王的快马最大程度削弱王的战斗力 贪心策略: 1,如果田忌的最快马快于齐王的最快马,则两者比。 (因为若是田忌的别的马很可能就赢不了了,所以两者比) 2,如果田忌的最快马慢于齐王的最快马,则用田忌的最慢马和齐王的最快马比。 (由于所有的马都赢不了齐王的最快马,所以用损失最小的,拿最慢的和他比...原创 2018-10-13 20:17:14 · 3751 阅读 · 0 评论 -
贪心 区间覆盖最小值
贪心 区间覆盖最小值 POJ 2376 大概题意: 从1到T区间内,必须保证每个点都有牛在工作,给出每头牛的工作时间,求需用到的最小的牛的数量,无解输出-1 一开始以为组合[1,4] [5,T]不算覆盖,要[1,4],[4,T]才可以,卡了一下午。。。蠢哭 思路就是先按区间左l排序,先确定第一个区间,我们的原则是左边相同,右边越大越好。同样的,找区间右边可以接上的区间(下个区间的l<=本区间...原创 2018-10-13 21:56:54 · 1009 阅读 · 0 评论 -
贪心 填数找中位数
CodeForces 540B–填数找中位数 题意: 第一行 n,k,p,x,y,有n个任务,已经完成了k个任务,完成任务最大得分为p,最大得分总和是x,众多分数得分的中位数是y,问剩下的务该得多少分才能保证分数总和不大于x,而且中位数不小于y。如果不可能出现这种情况则输出-1。 分析 这里的贪心策略要使sum尽量小,在此基础上我们来考虑怎么是中位数>=y呢,最理想的情况就是中位数恰好是y,...原创 2018-10-14 14:35:38 · 476 阅读 · 0 评论 -
模拟 机器翻译
模拟 机器翻译 大概题意:有M个单元均可存放一单词。但出现单元里面没有的新单词时,查询一次,如果当前内存中已存入的单词数不超过M-1,自动存储在后面;若内存中已存入M个单词,清空最早储存的单词,来存放新单词。 长度为N个单词。需要查找多少次词典? 思路很简单,先暴力搜索,没有就考虑加入单元,没满直接加后面,满了从已经删除的地方+1开始删除,这个地方肯定是单元里面现有的最先进来的,替代它就好。 #i...原创 2018-10-14 19:43:20 · 274 阅读 · 0 评论 -
Red and Black POJ - 1979
Red and Black POJ - 1979 There is a rectangular room, covered with square tiles. Each tile is colored either red or black. A man is standing on a black tile. From a tile, he can move to one of four ad...原创 2018-11-06 16:00:25 · 261 阅读 · 0 评论 -
UVA - 208 Firetruck
UVA - 208 Firetruck 题目大意 构造出一张图,给出一个点,让你按字典序输出所有从1到该点的路径 一开始直接DFS超时了 后面看到大佬的优化,大意就是很多起点与终点不相连,需要一开始剪枝舍去,具体操作就反着来,只要判断下起点和终点能不能相连就行了。 算法设计: 先从终点出发,无回溯的走遍和终点相连的所有点并标记为used,然后从起点出发,DFS判断下标记,这样就不会多走很多路了。 ...原创 2018-11-06 16:18:53 · 218 阅读 · 0 评论 -
N皇后问题
N皇后问题 在N*N的方格棋盘放置了N个皇后,使得它们不相互攻击(即任意2个皇后不允许处在同一排,同一列,也不允许处在与棋盘边框成45角的斜线上。 你的任务是,对于给定的N,求出有多少种合法的放置方法。 这里我们的思路应该还是DFS,x代表行,y代表选的列数,每次递归x+1,到最后一行(x==n)开始逐层返回 那么列数有什么要求呢,列数不能是已经选取元素的对角或者上下 这里的判断很巧妙(我自己写的...原创 2018-11-06 17:18:14 · 304 阅读 · 0 评论 -
「一本通 6.5 练习 2」GT 考试
「一本通 6.5 练习 2」GT 考试 题目大意 给你一个n,你需要枚举n位的数字,其中不能出现子串=t,问你这样的数字可以有多少个,最后的答案mod p 分析 这个题很容易想到dp, dp[i][j]dp[i][j]dp[i][j]代表n位数字代表的文本串s前i位的后j位与模式串t的前j位匹配上的方案数. 那我们最后的答案就是∑j=0m−1dp[n][j]\sum_{j=0}^{m-1}{dp[...原创 2019-08-02 22:15:02 · 435 阅读 · 0 评论 -
「一本通 6.5 练习 3」迷路
「一本通 6.5 练习 3」迷路 题目描述 大意说一个给你有向图, 一个有n个节点,每个节点相连的边为所需要花费的时间, 问你从1到n 在时间刚好为t是的方案数。输出%2009 注意:不能在某个节点逗留,且通过某有向边的时间严格为给定的时间。 分析 这个题初看没有什么头绪(dp失败. 我们联系一下邻接矩阵, 邻接矩阵一个很神奇的性质: 表示连通性的邻接矩阵的k次幂后的a[i][j]表示图...原创 2019-08-02 22:15:28 · 416 阅读 · 0 评论
分享