java算法
一曲无痕奈何
执笔书写人生路,背包踏尽世俗事。
展开
-
朋友圈(java版)
7-8朋友圈(25 分)某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友,则A和C也是朋友。请编写程序计算最大朋友圈中有多少人。输入格式:输入的第一行包含两个正整数N(≤30000)和M(≤1000),分别代表...原创 2019-03-07 21:14:28 · 3274 阅读 · 0 评论 -
并查集的几种实现方式(java版)
并查集:Union Find :一种不一样的树形结构:由孩子指向父亲用处:网络中节点间的连接状态,路径问题,朋友问题。对于一组数据,主要支持两个动作: union(p,q) isConnected(p,q)上面代表的是数字,下面代表的是 id值,这样可以明显看到,0到4属于同一个集合,5到9属于第二个集合。因为各自的id值相等第一个并查集的实现方法...原创 2019-03-07 21:15:23 · 1331 阅读 · 0 评论 -
记第一次参加2019届蓝桥杯总结与体会
说实话我第一次写这种文章,也不知道从何处写起,就组织一下语言从刚开始如何准备开始写吧,本来刚比完就应该写的,但是一直没时间,刚好今天清明节给自己放半天假,开始写这个博客。我们学校也就两人参加java组,学长他考研,一点题目没刷,他依旧拿个三等奖回来。(具体比赛我下面会说)。当我们学校开始召集人手参加蓝桥杯时候,是去年的12月份之前,那时候,我本不打算参加,奈何想训练java水平,就参加了,说实...原创 2019-04-05 11:04:53 · 2964 阅读 · 0 评论 -
用JAVA实现魔法优惠券
7-9魔法优惠券(25 分)在火星上有个魔法商店,提供魔法优惠券。每个优惠劵上印有一个整数面值K,表示若你在购买某商品时使用这张优惠劵,可以得到K倍该商品价值的回报!该商店还免费赠送一些有价值的商品,但是如果你在领取免费赠品的时候使用面值为正的优惠劵,则必须倒贴给商店K倍该商品价值的金额…… 但是不要紧,还有面值为负的优惠劵可以用!(真是神奇的火星)例如,给定一组优惠劵,面值分别...原创 2019-03-10 13:34:43 · 1742 阅读 · 0 评论 -
用java实现 最长连续递增子序列
7-52最长连续递增子序列(20 分)给定一个顺序存储的线性表,请设计一个算法查找该线性表中最长的连续递增子序列。例如,(1,9,2,5,7,3,4,6,8,0)中最长的递增子序列为(3,4,6,8)。输入格式:输入第1行给出正整数n(≤105);第2行给出n个整数,其间以空格分隔。输出格式:在一行中输出第一次出现的最长连续递增子序列,数字之间用空格分隔,序列结尾不能...原创 2019-03-10 20:09:14 · 4060 阅读 · 2 评论 -
2018蓝桥杯(java)B组日志统计(详细思路)
思路 与反思:开始这道题,想着想着还是没有思路,后来我又总结了一下,此题是需要几步操作。大致操作如下:第一:对id进行操作。这就是把在同一个时间段内也就是[T,T+D],的时间段内,找id相同的,然后比较一下是大小,这样便于后续操作。第二:以id进行排序,id为主,ts为辅,当id相同,再比较其ts.第三:只要在规定的时间内有两个点赞即可。因为开始对id进行排序了,所以此时直接输出id...原创 2019-03-15 22:43:48 · 1007 阅读 · 2 评论 -
贪心算法详细介绍(java)以及会场安排问题
用贪心选择策略解会场安排问题。贪心算法重要的两个性质:贪心选择性质和最优子结构性质。1、问题的贪心选择性质证明:首先将会场安排问题数学化,设有n个活动的集合e={1,2,…,n},每个活动i都有一个要求使用该会场的起始时问si和一个结束时问fi。即k是所需最少会场的个数。设活动已排序,(a1,a2,…,ak)是所需要的k个已安排了活动的会场。①...原创 2019-03-20 17:22:32 · 5471 阅读 · 5 评论 -
java贪心算法(线段树)的详细介绍
注意区间的改变!(原来的部分被重新区间的染色覆盖了)注意以求和问题为列,把整个区间分为很多段,当你求那一段时候,这样直接就可以拿。每一个孩子区间都是相应的父节点的半段注意叶子节点不一定在最后一层求和区间的实现:定义一个接口(融合器就是方便我对区间的操作)...原创 2019-03-16 22:10:51 · 1053 阅读 · 0 评论 -
PTA的 QQ帐户的申请与登陆(java代码)简介版
7-44QQ帐户的申请与登陆(25 分)实现QQ新帐户申请和老帐户登陆的简化版功能。最大挑战是:据说现在的QQ号码已经有10位数了。输入格式:输入首先给出一个正整数N(≤105),随后给出N行指令。每行指令的格式为:“命令符(空格)QQ号码(空格)密码”。其中命令符为“N”(代表New)时表示要新申请一个QQ号,后面是新帐户的号码和密码;命令符为“L”(代表Login)...原创 2019-03-08 11:38:34 · 1059 阅读 · 2 评论 -
PTA上面的用java语言进行IP地址转换
7-39IP地址转换(20 分)一个IP地址是用四个字节(每个字节8个位)的二进制码组成。请将32位二进制码表示的IP地址转换为十进制格式表示的IP地址输出。输入格式:输入在一行中给出32位二进制字符串。输出格式:在一行中输出十进制格式的IP地址,其由4个十进制数组成(分别对应4个8位的二进制数),中间用“.”分隔开。输入样例:110011001001010000...原创 2019-01-16 21:11:34 · 541 阅读 · 0 评论 -
PTA水仙花数
7-38水仙花数(20 分)水仙花数是指一个N位正整数(N≥3),它的每个位上的数字的N次幂之和等于它本身。例如:153=13+53+33。 本题要求编写程序,计算所有N位水仙花数。输入格式:输入在一行中给出一个正整数N(3≤N≤7)。输出格式:按递增顺序输出所有N位水仙花数,每个数字占一行。输入样例:3输出样例:153370...原创 2019-01-16 20:16:39 · 4163 阅读 · 0 评论 -
java遍历集合的几种方式
集合类的通用遍历方式, 用迭代器迭代:Iterator it = list.iterator();while(it.hasNext()) { Object obj = it.next();}Map遍历方式:1、通过获取所有的key按照key来遍历//Set<Integer> set = map.keySet(); //得到所有key的集合f...转载 2018-12-28 22:48:14 · 9456 阅读 · 0 评论 -
2018蓝桥杯全球变暖B组(JAVA)(简介代码)
思路与反思:这题拿到之后的第一个想法就是:二维数组,判断其上下左右是否与指定的中间的字符相等.我需要用两个计数器,一个计数完全不会被淹没的岛屿,一个是岛屿数目,最后拿岛屿数目减去完全不会被淹没的岛屿数目,这样剩的就是会被淹没的岛屿,并且为了不让其重复,每次把找到的岛屿全部换成指定的符号,这样就不会重复了,并且为了保证第一行最后一行,第一列最后一列为. 直接遍历赋值,因为无论输入什么保证就行了,而且...原创 2019-03-17 17:20:31 · 854 阅读 · 1 评论 -
用java实现人以群分
7-18人以群分(25 分)社交网络中我们给每个人定义了一个“活跃度”,现希望根据这个指标把人群分为两大类,即外向型(outgoing,即活跃度高的)和内向型(introverted,即活跃度低的)。要求两类人群的规模尽可能接近,而他们的总活跃度差距尽可能拉开。输入格式:输入第一行给出一个正整数N(2≤N≤105)。随后一行给出N个正整数,分别是每个人的活跃度,其间以空...原创 2019-03-10 12:09:35 · 650 阅读 · 0 评论 -
PTA汽车加油问题(java版)
7-40汽车加油问题(20 分)题目来源:王晓东《算法设计与分析》一辆汽车加满油后可行驶 n公里。旅途中有若干个加油站。设计一个有效算法,指出应 在哪些加油站停靠加油,使沿途加油次数最少。输入格式:第一行有 2 个正整数n和 k(k<=1000 ),表示汽车加满油后可行驶n公里,且旅途中有 k个加油站。 第二行有 k+1 个整数,表示第 k 个加油站与第k-1 个加油站之...原创 2019-03-09 17:36:29 · 1164 阅读 · 0 评论 -
第七届蓝桥杯javaB组第八题:四平方和
四平方和四平方和定理,又称为拉格朗日定理:每个正整数都可以表示为至多4个正整数的平方和。如果把0包括进去,就正好可以表示为4个数的平方和。比如:5 = 0^2 + 0^2 + 1^2 + 2^27 = 1^2 + 1^2 + 1^2 + 2^2(^符号表示乘方的意思)对于一个给定的正整数,可能存在多种平方和的表示法。要求你对4个数排序:0 <= a <= b ...原创 2018-12-05 09:04:25 · 438 阅读 · 1 评论 -
PTA用辗转相除法求约分最简式
7-26 约分最简分式 (15 分)分数可以表示为分子/分母的形式。编写一个程序,要求用户输入一个分数,然后将其约分为最简分式。最简分式是指分子和分母不具有可以约分的成分了。如6/12可以被约分为1/2。当分子大于分母时,不需要表达为整数又分数的形式,即11/8还是11/8;而当分子分母相等时,仍然表达为1/1的分数形式。输入格式:输入在一行中给出一个分数,分子和分母中间以斜杠/分隔,...原创 2018-12-06 10:04:03 · 766 阅读 · 0 评论 -
用java实现情人节
7-60 情人节 (15 分)以上是朋友圈中一奇葩贴:“2月14情人节了,我决定造福大家。第2个赞和第14个赞的,我介绍你俩认识…………咱三吃饭…你俩请…”。现给出此贴下点赞的朋友名单,请你找出那两位要请客的倒霉蛋。输入格式:输入按照点赞的先后顺序给出不知道多少个点赞的人名,每个人名占一行,为不超过10个英文字母的非空单词,以回车结束。一个英文句点.标志输入的结束,这个...原创 2018-12-06 12:22:32 · 2241 阅读 · 0 评论 -
用java实现PTA古风版
7-61 古风排版 (20 分)中国的古人写文字,是从右向左竖向排版的。本题就请你编写程序,把一段文字按古风排版。输入格式:输入在第一行给出一个正整数N(<100),是每一列的字符数。第二行给出一个长度不超过1000的非空字符串,以回车结束。输出格式:按古风格式排版给定的字符串,每列N个字符(除了最后一列可能不足N个)。输入样例:4This is a test...原创 2018-12-06 13:48:08 · 339 阅读 · 0 评论 -
用java求整数序列中出现次数最多的数
7-49 求整数序列中出现次数最多的数 (15 分)本题要求统计一个整型序列中出现次数最多的整数及其出现次数。输入格式:输入在一行中给出序列中整数个数N(0<N≤1000),以及N个整数。数字间以空格分隔。输出格式:在一行中输出出现次数最多的整数及其出现次数,数字间以空格分隔。题目保证这样的数字是唯一的。输入样例:10 3 2 -1 5 3 4 3 0 3 2...原创 2018-12-06 16:28:13 · 8203 阅读 · 7 评论 -
java实现顺序查找和二分查找
顺序查找:import java.util.Scanner;//顺序查找public class Main { public static void main(String[] args){ Scanner sr = new Scanner(System.in); int fs = sr.nextInt(); int n = sr...原创 2018-12-06 18:32:07 · 1723 阅读 · 0 评论 -
PTA高精度运算详细解法和思路
反思: 此题过的非常艰难,每一次都是答案错误,写了两个小时,最后上网百度,才发现,并不是只有两组数据,而是不知道多少组数据,这是一个问题,还有一个问题,大数处理时候开始内存超限,因为开了好几个大数空间,接下来我贴上二个代码,一个是优化后的代码,第二个是百度的代码,自认为博主很强,代码比我的简洁很多。思路: 拿到这个题目,喜欢数学的一定会想到,等差数列和等比数列相乘,原谅我数学方法没...原创 2019-02-16 17:22:22 · 1078 阅读 · 0 评论 -
PTA质因子分解解法和思路
怎样理解唯一分解定理,如何证明,这个定理有什么用?看《什么是数学》有讲一个算术基本定理,又称为正整数的唯一分解定理,即:每个大于1的自然数均可写为质数的积,而且这些素因子按大小排列之后,写法仅有一种方式。看了半天还是不太明白是怎么证明的。贴一段转来的,终于看懂了(转自:《什么是数学》读书笔记(一):反证法、数学归纳法与唯一分解定理)为了真正地证明,分解质因数的方法是唯一的,我们将再次用到反...原创 2019-02-12 13:57:40 · 939 阅读 · 0 评论 -
java TreeSet 集合自定义集合比较器的算法实现例题
import java.util.Comparator;import java.util.Scanner;import java.util.TreeSet;public class Main { public static void main(String[] rags) { //录入学生成绩 Scanner sr = new Scanne...原创 2019-02-28 21:17:57 · 559 阅读 · 0 评论 -
用java求前缀表达式的值
7-2求前缀表达式的值(25 分)算术表达式有前缀表示法、中缀表示法和后缀表示法等形式。前缀表达式指二元运算符位于两个运算数之前,例如2+3*(7-4)+8/4的前缀表达式是:+ + 2 * 3 - 7 4 / 8 4。请设计程序计算前缀表达式的结果值。输入格式:输入在一行内给出不超过30个字符的前缀表达式,只包含+、-、*、/以及运算数,不同对象(运算数、运算符号)之间以空格分隔...原创 2019-03-05 19:24:25 · 1972 阅读 · 0 评论 -
用java实现PTA的互评成绩
7-25 互评成绩 (25 分)学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。输入格式:输入第一行给出3个正整数N(3 < N ≤104,学生总数)、k(3 ≤ k ≤ 10,每份作业的评审数)、M(≤ 20,需要输出的学...原创 2019-02-26 21:23:14 · 1029 阅读 · 3 评论 -
PTA用java实现悄悄关注
7-20悄悄关注(25 分)新浪微博上有个“悄悄关注”,一个用户悄悄关注的人,不出现在这个用户的关注列表上,但系统会推送其悄悄关注的人发表的微博给该用户。现在我们来做一回网络侦探,根据某人的关注列表和其对其他用户的点赞情况,扒出有可能被其悄悄关注的人。输入格式:输入首先在第一行给出某用户的关注列表,格式如下:人数N 用户1 用户2 …… 用户N其中N是不超过5000的正...原创 2019-03-04 08:16:53 · 640 阅读 · 2 评论 -
第七届java蓝桥杯B组压缩变换第十题
题目:小明最近在研究压缩算法。他知道,压缩的时候如果能够使得数值很小,就能通过熵编码得到较高的压缩比。然而,要使数值很小是一个挑战。最近,小明需要压缩一些正整数的序列,这些序列的特点是,后面出现的数字很大可能是刚出现过不久的数字。对于这种特殊的序列,小明准备对序列做一个变换来减小数字的值。变换的过程如下:从左到右枚举序列,每枚举到一个数字,如果这个数字没有出现过,刚将数字变换成它的相反...原创 2018-12-05 08:58:50 · 300 阅读 · 0 评论