数据结构 算法学习
文章平均质量分 86
董公子
这个作者很懒,什么都没留下…
展开
-
并查集学习
并查集学习:public class Main3{ //并查集 //getMore: http://blog.csdn.net/u011487593/article/details/48526743 static int[] pre = new int[1000];//根节点的话等于自己 public int Find(int x){ //查找根节点 int fx = x; w原创 2017-09-26 18:01:11 · 145 阅读 · 0 评论 -
1015 德才论 (25 分) AC JAVA C++双版本
1015 德才论 (25 分)宋代史学家司马光在《资治通鉴》中有一段著名的“德才论”:“是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人。凡取人之术,苟不得圣人,君子而与之,与其得小人,不若得愚人。”现给出一批考生的德才分数,请根据司马光的理论给出录取排名。输入格式:输入第一行给出 3 个正整数,分别为:N(≤105),即考生总数;L(≥60),为录取最...原创 2019-02-21 18:16:58 · 645 阅读 · 1 评论 -
PAT 1025 反转链表 (25 分) JAVA 已达最优
还是短了一点 倒数第二个点超时 但这个速度已经是同级里面最优的了 1025 反转链表 (25 分)给定一个常数 K 以及一个单链表 L,请编写程序将 L 中每 K 个结点反转。例如:给定 L 为 1→2→3→4→5→6,K 为 3,则输出应该为 3→2→1→6→5→4;如果 K 为 4,则输出应该为 4→3→2→1→5→6,即最后不到 K 个元素不反转。输入格式:每个输入包...原创 2019-02-22 18:54:43 · 849 阅读 · 0 评论 -
OpenJ_Bailian - 4001 量子能力猫 JAVA
D - 量子能力猫OpenJ_Bailian - 4001题目描述猫从薛定谔的箱子里成功存活并逃脱出来,这时它发现它已经掌握了量子力学的原理并拥有运用量子的能力。即便这样它还是克服不了它喜欢钻入纸箱的天性。假设现在有一排纸箱的一端从0开始依次编号,这只猫可以以如下的方式在箱子之间行动:走到相邻箱子:从第X号箱子走到相邻的第X+1号或X-1号箱子。 量子形式转移:从第X号箱子...原创 2019-03-08 16:27:50 · 245 阅读 · 0 评论 -
n点游戏 [PSA] EOlymp - 44 DP JAVA
F - n点游戏 [PSA]EOlymp - 4424点游戏是非常经典而简单的小游戏,从一堆扑克牌中抽取4张,向其中添加运算符号并使其运行结果恰等于24,这叫作24点游戏。现在我们不再是组合24,而是组合出给定的数字n,但要求只可以利用任意多个数字1,并且运算只有加法、乘法和括号。对于给定的数字N,最少需要几个1可以完成数据输入输入一个数字N( 1≤N≤5000)数据输...原创 2019-03-10 18:06:06 · 315 阅读 · 0 评论 -
海景房 OpenJ_Bailian - 2945 JAVA
F - 海景房OpenJ_Bailian - 2945开发商计划在海边建造许多海景房的楼房,工程师发现在设计图中由于某些靠海的楼太高,导致有些稍远的楼房即使站在楼顶也不能看到海。开发商和工程师就在分析,只能在原设计图中保留一部分楼,才能保证所有的楼都可以在楼顶看到海。若两楼的高度相同,也认为可以在楼顶看到海。按离海岸的距离从远到近的给出各楼在设计图上的高度,请你计算开发商最多...原创 2019-03-11 00:22:45 · 312 阅读 · 0 评论 -
牛吃草 [PSA] EOlymp - 15 JAVA DP
E - 牛吃草 [PSA]EOlymp - 15问题描述Alice在山上放牛,发现前方有一块矩形的优质草场。草场共有M×N个小格,每个格子有一棵牧草,用一个整数描述一棵牧草的品质。牛从左下角进入草场开始,吃完一个格子中的牧草之后,只能向右或向前继续吃,并且最后吃到草场的右上角。Alice希望牛能吃到的牧草的品质之和尽量大。请你帮Alice规划一下牛吃草的路线。数据输入第一行...原创 2019-03-12 02:04:53 · 283 阅读 · 0 评论 -
算法导论 资源 课后答案 PDF
个人体会 建议大家还是买实体书一方面一些东西是要经常来回翻的还有就是书的记忆效果确实更好一点 做笔记什么的都很方便如果是PDF,也建议大家打印出来使用算法导论第三版PDF链接:https://pan.baidu.com/s/1NZ0xuAA4gw_nexkRnVo43A提取码:53xs课后答案2-25章链接:https://pan.baidu.com/...原创 2019-03-12 18:00:34 · 10587 阅读 · 15 评论 -
《算法导论》第三版第31章 数论算法 练习&思考题 个人答案
https://blog.csdn.net/u013762431/article/details/86597987转载 2019-03-12 18:02:24 · 861 阅读 · 0 评论 -
HDOJ Doing Homework again JAVA 1789
贪心因为要尽可能少的扣学分,所以肯定是要按学分的高低来进行排序贪心的最优情况是:刚好在最后一天完成相应的任务所以本着这个情况,设置了一个vis[]数组 表示第i天是否有任务预约(待完成)于是先按照贪心排序,完了从头到尾遍历,eg:3 3 7 2 如果第三天没有任务预约,那就vis[3]=true,任务一(学分7的)设为完成。再看任务二,因为第三天有预约,原创 2017-11-25 22:19:59 · 285 阅读 · 0 评论 -
HDOJ Wash JAVA超时 6000
贪心这道题C++可以过,JAVA超时了。思路是贪心,洗的取最快的,再把这个最快的取甩干最慢的。这样最后一件出来的就是最快的。只不过因为洗衣机不是用完就扔了,所以要使用优先队列进行存储。洗衣机分basetime和nowtime就解决了重复使用的问题。计划的优化方法是:等等补充/** * *//** * @author Enron * */package _原创 2017-11-22 20:05:16 · 207 阅读 · 0 评论 -
CCF-CSP 交通规划 JAVA 2016-09-04 100分
参考资料:dijkstra和Floyd算法思想:http://www.cnblogs.com/biyeymyhjob/archive/2012/07/31/2615833.htmlC++代码版:http://blog.csdn.net/moilk_nepho/article/details/52950546JAVA优先队列使用:http://www.importnew.com/69原创 2017-10-08 19:53:03 · 720 阅读 · 0 评论 -
CCF-CSP 通信网络 JAVA 201709-4 100分
思路:我不知道标准解法是怎么样的,反正我为我“禁忌的解法”解得100分感到很开心=。=首先使用list,制作好图的邻接表。一个是1→2→32→43→44一个是12→13→14→2→3为什么要分两个邻接表呢,因为一个邻接表不能正确的表示我们要的结果。(自己体悟吧。。。 表1确定发送信号方有哪些全知,表2确定接受信号方有哪些全知)接下来我们做一原创 2017-10-18 15:51:20 · 2816 阅读 · 2 评论 -
CCF CSP 路径解析 JAVA 201604-3 100分
又做了一遍,不知道为什么,最后是错误90分。很神奇的找不到最后10分为什么错。有人能找到吗?。。找到了问题 :因为没有对输入的“当前路径”正则化。eg:3//////////////d1/d2/.../d3///////../d4输出://////////////d1/d2/.../d4其中/..的情况经研究不会出现。原创 2017-10-19 19:24:04 · 787 阅读 · 1 评论 -
CCF CSP 送货 JAVA 201512-4
浅谈欧拉回路与欧拉路径:http://blog.csdn.net/prime_min/article/details/40686563数据结构之图(存储结构、遍历) :http://blog.chinaunix.net/uid-26548237-id-3483650.htmlHashSet,TreeSet和LinkedHashSet的区别:http://www.cnblogs.com/Terry-...原创 2017-10-12 04:54:14 · 816 阅读 · 7 评论 -
CCF-CSP 地铁修建 JAVA 201703-4
做了很多其他题,学习了一番,再回头看这道题,找出了很多可以优化的地方:1. 对象Main d 可以去掉 pre[]和Find()可以用static静态调用,效果会更快。(快了5分)2.可以新定义一个Edge类,使用结构化的方法来存储数据。List list 来代替原来的ms数组,因为list中存储的是结构化的数据Edge的对象成员,调用起来会比原来二维数组ms要快。 (快了15分)更原创 2017-10-02 21:13:23 · 456 阅读 · 0 评论 -
CCF-CSP 游戏 JAVA 201604-4 100分
题目很简单 也很好理解 就不多说了一切求最优问题,类涉及求“最短”(无论最短时间,最短路径),且各节点的连通权值为1的题,一般都能用BFS来完成。这道题也是一样,只不过比传统BFS多了一个时间T的问题,而且存在重复通过一个结点,不能简单地控制vis来要求曾经过的结点不能再经过。也很好解决,只需要把传统vis[][]改成三维数组,加一个时间t即可。即在相同的时间下,同一结点只经过原创 2017-10-11 01:27:20 · 1065 阅读 · 0 评论 -
CCF CSP 高速公路 JAVA 201509-4 100分
题目放下面了两种解法:1.tarjan算法 专门用来求这种强连通分量,可以解到N2.禁忌的解法=。= (感觉和Kosaraju有点像?) 但只能解到N先说第一种解法:tarjan算法介绍:https://wenku.baidu.com/view/112c64096c85ec3a87c2c527.html?re=view——如果看不懂可以看进一步解释:http://原创 2017-10-23 20:26:31 · 1478 阅读 · 2 评论 -
CCF CSP 最优灌溉 JAVA 201412_4 100分
用的并查集和优先队列去解的。其实就是Kruskal算法。最小生成树问题。package csp2014_12_4;import java.util.PriorityQueue;import java.util.Queue;import java.util.Scanner;class Edge implements Comparable<Edge>{ int s,e,cos...原创 2017-11-12 18:16:47 · 556 阅读 · 0 评论 -
翻译单词 EOlymp - 3624 JAVA 最长公共子串LCS 动态规划DP
E - 翻译单词 [PSA]EOlymp - 3624问题描述Bob漫游仙境的时候,仙境里所用的语言实在让Bob摸不到头脑,但是在这里生活了一段时间的Bob还是发现了这仙境语言中的一些奥秘。仙境的一个单词,按照Bob总结的规律可以分如下两步翻译:将一个原始单词S分成两段L和R,然后求两个字符串L与R的最长公共子序列M。对于原始单词S的所有切分方法,当最长公共子列M的长度最长时,...原创 2019-03-13 03:24:55 · 295 阅读 · 0 评论