05 2020 档案

摘要:给定n元组(a1,a2,...,an),ai均为整数,得到下一个序列为(|a1-a2|,|a2-a3|,...,|an-a1|),如此循环下去,必定会出现全零序列或重复序列。 现要求判断给定序列是全零序列还是重复序列(有趣的Ducii结果) 思路分析 用vector模拟元组序列,set<vector 阅读全文
posted @ 2020-05-31 19:55 RioTian 阅读(166) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://poj.org/problem?id=2484 题意:Alice和Bob玩游戏,从一堆圆环形排列的硬币中拿硬币,每次可以拿一个或者两个,但必须拿连续的(两个中间有空位也视为不连续),Alice先手,给定硬币个数,问谁赢。 题解: 当n=1或者n=2时,Alice可以一下子取走 阅读全文
posted @ 2020-05-30 21:16 RioTian 阅读(155) 评论(0) 推荐(0) 编辑
摘要:一:部分和问题 给定整数a1、a2、.......an,判断是否可以从中选出若干数,使它们的和恰好为K。 输入: n=4 a={1,2,4,7} k=13 输出: Yes(13=2+4+7) 书中带来是DFS搜索,相对比较简单 代码: #include<bits/stdc++.h> using na 阅读全文
posted @ 2020-05-29 22:18 RioTian 阅读(697) 评论(0) 推荐(0) 编辑
摘要:题意: 丑数是一些因子只有2,3,5的数。数列1,2,3,4,5,6,8,9,10,12,15……写出了从小到大的前11个丑数,1属于丑数。现在请你编写程序,找出第1500个丑数是什么。 思路: 如果按照正向思维分析,需要考虑除2,3,5以外的所有素数–这显然不切实际。 因此考虑派生的性质:假设一个 阅读全文
posted @ 2020-05-29 14:02 RioTian 阅读(180) 评论(0) 推荐(0) 编辑
摘要:题目大意 有一条长队,每个人均唯一属于一个组(有编号),执行给定操作序列,输出相应结果。操作如下: (假设长队q1) ENQUEUE x:标号为x的人入队,若q1中存在和x属于同一组的人,则将x插入长队中同组的最后一个人之后;否则插入长队最后一个之后 DEQUEUE:长队第一个人出队 STOP:结束 阅读全文
posted @ 2020-05-29 10:47 RioTian 阅读(176) 评论(0) 推荐(0) 编辑
摘要:Problem Description 统计每个元音字母在字符串中出现的次数。 Input 输入数据首先包括一个整数n,表示测试实例的个数,然后是n行长度不超过100的字符串。 Output 对于每个测试实例输出5行,格式如下: a:num1 e:num2 i:num3 o:num4 u:num5 阅读全文
posted @ 2020-05-29 10:37 RioTian 阅读(162) 评论(0) 推荐(0) 编辑
摘要:在默认情况下, std::cin/std::cout 是极为迟缓的读入/输出方式,而 scanf/printf 比 std::cin/std::cout 快得多。 可是为什么会这样呢?有没有什么办法解决读入输出缓慢的问题呢? 关闭同步/解除绑定 std::ios::sync_with_stdio(f 阅读全文
posted @ 2020-05-25 22:27 RioTian 阅读(415) 评论(0) 推荐(1) 编辑
摘要:题目大意 用集合模拟计算机操作。每执行完一个操作,输出栈顶的集合大小,操作如下: :空集合压栈 :将栈顶元素再次压栈 :依次弹栈得a,b,求并集后压栈 :依次弹栈得a,b,求交集后压栈 :依次弹栈得a,b,将a作为一个元素加入b中 思路分析 很好的一道题目,关键在于 如何设计递归定义的集合的数据结构 阅读全文
posted @ 2020-05-25 16:54 RioTian 阅读(168) 评论(0) 推荐(0) 编辑
摘要:https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=92 给定若干单词,按字典序输出不存在重排的单词。(经测试,不包含重复的单词) 重排单词:每个字母出现次数一样,但顺 阅读全文
posted @ 2020-05-23 14:47 RioTian 阅读(107) 评论(0) 推荐(0) 编辑
摘要:头文件: include\ 二分查找的函数有 3 个: 参考: "C++ lower_bound 和upper_bound" lower_bound(起始地址,结束地址,要查找的数值) 返回的是数值 第一个 出现的位置。 upper_bound(起始地址,结束地址,要查找的数值) 返回的是数值 最后 阅读全文
posted @ 2020-05-23 14:29 RioTian 阅读(4201) 评论(0) 推荐(1) 编辑
摘要:Candies POJ - 3159 题意: 给N个小朋友分糖, 给出M组约束a, b, c表示b的糖果不能比a多c个以上, 求1号和N号的最大糖果差异数 题解: 非常显然的线性查分约束问题 对于a, b, c表示b的糖果不能比a多c个以上 , 即cnt[a]+c >= cnt[b], 可以理解为a 阅读全文
posted @ 2020-05-22 19:43 RioTian 阅读(390) 评论(0) 推荐(0) 编辑
摘要:题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石。组委会已经选择好了两块岩石作为比赛起点和终点。在起点和终点之间,有 N N 块岩石(不含起点和终点的岩石)。在比赛过程中,选手们将从起点出发,每一步跳向相邻的岩石,直至到达终点。 为 阅读全文
posted @ 2020-05-21 16:47 RioTian 阅读(349) 评论(0) 推荐(0) 编辑
摘要:POJ :1511 http://poj.org/problem?id=1511 ##思路 求1号点到其他点的最短路 + 其他点到1号点的最短。 结果用long long。 用快读可以加快时间 代码 spfa 890ms #ifdef ONLINE_JUDGE #pragma warning (di 阅读全文
posted @ 2020-05-20 21:19 RioTian 阅读(312) 评论(0) 推荐(0) 编辑
摘要:快速读入:当数据输入较大时,比scanf快 阅读全文
posted @ 2020-05-20 20:42 RioTian 阅读(452) 评论(0) 推荐(0) 编辑
摘要:简介 Floyd算法算是最简单的算法,没有之一。 其状态转移方程如下map[i , j] =min{ map[i , k] + map[k , j] , map[i , j] }; map[i , j]表示 i 到 j 的最短距离,K是穷举 i , j 的断点,map[n , n]初值应该为0,或者 阅读全文
posted @ 2020-05-19 17:39 RioTian 阅读(716) 评论(0) 推荐(0) 编辑
摘要:POJ 2240 http://poj.org/problem?id=2240 题意:判断是否存在使得汇率增多的环 【任意一个点的汇率增多都可以】 Floyd 简单变形 w[i][j]=max(w[i][j],w[i][k]w[k][j]) #ifndef ONLINE_JUDGE 阅读全文
posted @ 2020-05-19 17:30 RioTian 阅读(303) 评论(0) 推荐(0) 编辑
摘要:POJ 3660 http://poj.org/problem?id=3660 思路: 传递闭包 输入A > B,那么我们可以建立一套A —>B 的边。 然后求出传递闭包。 判断一个人是否知道排名,如果知道大于它的人数+小于它的人数 == n-1那么就可以知道排名了。 大于它的人数: g[u][v] 阅读全文
posted @ 2020-05-19 15:37 RioTian 阅读(104) 评论(1) 推荐(0) 编辑
摘要:"A题:" 给你两个整数数组 (开始时间)和 (结束时间),并指定一个整数 作为查询时间。 已知,第 i 名学生在 时开始写作业并于 时完成作业。 请返回在查询时间 时正在做作业的学生人数。形式上,返回能够使 处于区间 (含)的学生人数。 示例 1: 示例 2: 示例 3: 示例 4: 示例 5: 阅读全文
posted @ 2020-05-17 13:17 RioTian 阅读(164) 评论(0) 推荐(0) 编辑
摘要:背景 我们第一次接触字符串匹配,想到的肯定是直接用2个循环来遍历,这样代码虽然简单,但时间复杂度却是Ω(mn),也就是达到了字符串匹配效率的下限。于是后来人经过研究,构造出了著名的KMP算法(Knuth Morris Pratt算法),让我们的时间复杂度降低到了O(m+n),但现代文字处理 阅读全文
posted @ 2020-05-17 08:37 RioTian 阅读(2246) 评论(0) 推荐(0) 编辑
摘要:算法介绍 A*(念做:A Star)算法是一种很常用的路径查找和图形遍历算法。它有较好的性能和准确度。本文在讲解算法的同时也会提供Python语言的代码实现,并会借助matplotlib库动态的展示算法的运算过程。 A*算法最初发表于1968年,由Stanford研究院的Peter Hart, Ni 阅读全文
posted @ 2020-05-16 21:11 RioTian 阅读(2777) 评论(1) 推荐(0) 编辑
摘要:在解 "AOJ 0531 Paint Color" 时,学到了一个累积和的妙用——imos法,由于原文是日语,所以特意翻译过来。值得一提的是,作者Kentaro Imajo跟鄙人同龄,却已取得如此多的成就,而鄙人一无所成,实在汗颜。 imos法 imos法是将累积和算法拓展到多次元、高次空间的方法。 阅读全文
posted @ 2020-05-14 20:23 RioTian 阅读(688) 评论(2) 推荐(1) 编辑
摘要:POJ - 1860 一种货币就是一个点 一个“兑换点”就是图上两种货币之间的一个兑换方式,是双边,但A到B的汇率和手续费可能与B到A的汇率和手续费不同。 唯一值得注意的是权值,当拥有货币A的数量为V时,A到A的权值为K,即没有兑换 而A到B的权值为(V-Cab)*Rab 本题是“求最大路径”,之所 阅读全文
posted @ 2020-05-14 15:59 RioTian 阅读(154) 评论(0) 推荐(0) 编辑
摘要:"POJ 3268 Silver Cow Party" 奶牛派对:有分别来自 N 个农场的 N 头牛去农场 X 嗨皮,农场间由 M 条有向路径连接。每头牛来回都挑最短的路走,求它们走的路的最大长度? 们其实都是“图” 最短路 dijkstra 解决任意两点最短路的变种 用floyd的话会TLE,$1 阅读全文
posted @ 2020-05-14 11:37 RioTian 阅读(113) 评论(0) 推荐(0) 编辑
摘要:Til the Cows Come Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 43861 Accepted: 14902 Description Bessie is out in the field and wan 阅读全文
posted @ 2020-05-12 22:37 RioTian 阅读(456) 评论(0) 推荐(0) 编辑
摘要:| Time Limit: 1000MS | | Memory Limit: 10000K | | | | | | Total Submissions: 1556 | | Accepted: 457 | Description After having drifted about in a smal 阅读全文
posted @ 2020-05-12 21:13 RioTian 阅读(124) 评论(0) 推荐(0) 编辑
摘要:"HDU 3038" 第一次接触带权并查集 阅读全文
posted @ 2020-05-12 11:04 RioTian 阅读(105) 评论(0) 推荐(0) 编辑
摘要:C 与 C++ 区别 本文介绍 C 与 C++ 之间重要的或者容易忽略的区别。尽管 C++ 几乎是 C 的超集,C/C++ 代码混用一般也没什么问题,但是了解 C/C++ 间比较重要区别可以避免碰到一些奇怪的 bug。如果你是以 C 为主力语言的 OIer,那么本文也能让你更顺利地上手 C++。C+ 阅读全文
posted @ 2020-05-11 11:07 RioTian 阅读(312) 评论(0) 推荐(1) 编辑
摘要:POJ 2236 Wireless Network 加工并储存数据的数据结构 并查集 这是并查集的基本应用,两台修好的电脑若距离d内则加入合并。不过不小心的话会TLE,比如: #include <iostream> using namespace std; #define MAX_N 1001 + 阅读全文
posted @ 2020-05-10 20:45 RioTian 阅读(141) 评论(0) 推荐(1) 编辑
摘要:dreamoon,知名中国台湾籍ACM选手,此为他的codeforces曲线: 关于中间突降的那段,还有个小故事: 当时dreamoon已经是世界上的顶级选手,甚至前一场的div1他排名第3!(当时cf的分制和现在不同,所以现在看起来只是个红名) 由于他没有拿到过div2的第一名,于是决定一直故意掉 阅读全文
posted @ 2020-05-10 20:07 RioTian 阅读(875) 评论(1) 推荐(2) 编辑
摘要:"A题链接" 给你一个目标数组 target 和一个整数 n。每次迭代,需要从 list = {1,2,3..., n} 中依序读取一个数字。 请使用下述操作来构建目标数组 target : Push:从 list 中读取一个新元素, 并将其推入数组中。 Pop:删除数组中的最后一个元素。 如果目标 阅读全文
posted @ 2020-05-10 13:35 RioTian 阅读(293) 评论(0) 推荐(0) 编辑
摘要:题目链接:https://cn.vjudge.net/problem/UVA-11624 题意: 给出一个 n×m 的矩阵,上面有的格子能走,有的格子是墙不能走。 有若干个点是火源,火每分钟都往上下左右蔓延一格(不能越墙)。又给出一个点是Joe的出发点,他只要能在不碰到火的前提下走出该矩阵,就算逃生 阅读全文
posted @ 2020-05-09 20:51 RioTian 阅读(154) 评论(0) 推荐(0) 编辑
摘要:Oil Deposits Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 12461 Accepted Submission(s): 7245 阅读全文
posted @ 2020-05-09 16:04 RioTian 阅读(212) 评论(0) 推荐(0) 编辑
摘要:第一次解决双向BFS问题,拆分两个出发点分BFS搜索 阅读全文
posted @ 2020-05-09 15:36 RioTian 阅读(133) 评论(0) 推荐(0) 编辑
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1495 BFS解法 题目 给三个数字 s n m s=n+m s在1到100之间 就是个倒水问题可以从第一个倒向第二个 类似的一共可以有六中到发 现在要求最少经过多少步就能平分那么多水 首先剪枝是 如果s 阅读全文
posted @ 2020-05-09 09:43 RioTian 阅读(231) 评论(0) 推荐(1) 编辑
摘要:埃拉托斯特尼筛法(sieve of Eratosthenes ) 是古希腊数学家埃拉托斯特尼发明的计算素数的方法。对于求解不大于 n 的所有素数,我们先找出 sqrt(n) 内的 所有素数p1到pk ,其中 k = sqrt(n) ,依次剔除 Pi 的倍数,剩下的所有数都是素数。 具体操作如上述 图 阅读全文
posted @ 2020-05-08 21:25 RioTian 阅读(581) 评论(1) 推荐(3) 编辑
摘要:"POJ 3279" 经典【状态压缩】【DFS】题型 题目大意:有一个 M N 的格子,每个格子可以翻转正反面,它们有一面是黑色,另一面是白色。黑色翻转之后变成白色,白色翻转之后则变成黑色。 游戏要做的是把所有的格子翻转为白色。不过因为牛蹄很大,所以每次翻转一个格子,与它上下左右相邻接的格子也会被翻 阅读全文
posted @ 2020-05-08 20:40 RioTian 阅读(180) 评论(0) 推荐(0) 编辑
摘要:"原题链接" 思路: 正常的思路,只不过是将二维BFS换成三维的,也算是个模板题吧(PS:DFS超容易超时) 阅读全文
posted @ 2020-05-07 13:35 RioTian 阅读(118) 评论(0) 推荐(0) 编辑
摘要:Farm Irrigation Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 4991 Accepted Submission(s): 214 阅读全文
posted @ 2020-05-07 08:56 RioTian 阅读(138) 评论(0) 推荐(0) 编辑
摘要:在一个火车旅行很受欢迎的国度,你提前一年计划了一些火车旅行。在接下来的一年里,你要旅行的日子将以一个名为 的数组给出。每一项是一个从 1 到 365 的整数。 火车票有三种不同的销售方式: 一张为期一天的通行证售价为 costs[0] 美元; 一张为期七天的通行证售价为 costs[1] 美元; 一 阅读全文
posted @ 2020-05-06 11:13 RioTian 阅读(161) 评论(0) 推荐(0) 编辑
摘要:"原题链接" 题意:很容易理解,就是让你输出满足相邻的相加是素数的序列(注意不要重复) 思路就是深搜思想把每种情况遍历一次 代码实现: 阅读全文
posted @ 2020-05-04 15:56 RioTian 阅读(114) 评论(0) 推荐(0) 编辑
摘要:Horspool 字符串匹配算法对Boyer Moore算法的简化算法。 Horspool 算法是一种基于后缀匹配的方法,是一种“跳跃式”匹配算法,具有 sub linear亚线性时间复杂度 。 Horspool 算法: 对于每个搜索窗口,该算法将 窗口内的最后一个字符 和 模式串中的最后一个字符 阅读全文
posted @ 2020-05-04 14:24 RioTian 阅读(947) 评论(0) 推荐(0) 编辑
摘要:Problem Description The doggie found a bone in an ancient maze, which fascinated him a lot. However, when he picked it up, the maze began to shake, an 阅读全文
posted @ 2020-05-04 09:10 RioTian 阅读(154) 评论(0) 推荐(0) 编辑
摘要:给定一个非负整数数组,你最初位于数组的第一个位置。 数组中的每个元素代表你在该位置可以跳跃的最大长度。 你的目标是使用最少的跳跃次数到达数组的最后一个位置。 示例: 输入: [2,3,1,1,4] 输出: 2 解释: 跳到最后一个位置的最小跳跃数是 2。 从下标为 0 跳到下标为 1 的位置,跳 1 阅读全文
posted @ 2020-05-04 07:14 RioTian 阅读(176) 评论(0) 推荐(0) 编辑
摘要:"原题目链接" 题目大意:把颜色由多到少进行排序,从大到小的输出。 解题思路:将变量存在结构体中,然后结构体排序即可。还需要注意格式的问题。 详见代码。 阅读全文
posted @ 2020-05-03 20:35 RioTian 阅读(175) 评论(0) 推荐(0) 编辑
摘要:SPFA(Shortest Path Faster Algorithm)算法,是西南交通大学段凡丁于 1994 年发表的,其在 Bellman ford 算法的基础上加上一个队列优化,减少了冗余的松弛操作,是一种高效的最短路算法。 算法过程 设立一个队列用来保存待优化的顶点,优化时每次取出队首顶点 阅读全文
posted @ 2020-05-03 13:01 RioTian 阅读(358) 评论(0) 推荐(0) 编辑
摘要:给定一个由 '1'(陆地)和 '0'(水)组成的的二维网格,计算岛屿的数量。一个岛被水包围,并且它是通过水平方向或垂直方向上相邻的陆地连接而成的。你可以假设网格的四个边均被水包围。 示例 1: 示例 2: 解法: BFS实现 阅读全文
posted @ 2020-05-02 20:58 RioTian 阅读(149) 评论(0) 推荐(0) 编辑
摘要:题意: 有几个比较坑的地方总结一下, 很容易误解: 遇到 就必须走 不消耗时间 对面如果也是 也不能走, 要不然无限循环了 最短路径剪枝时, 发现不能走的 是要把两步都标注为 1并跳出 题解: 一道经典的DFS+剪枝的题目, 这道题数据量过百了(大致范围), 直接裸的DFS+回溯是过不去滴, 必须要 阅读全文
posted @ 2020-05-02 20:57 RioTian 阅读(161) 评论(0) 推荐(0) 编辑

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