
算法题解
一些算法题解
今日晴转多雲
这个作者很懒,什么都没留下…
展开
-
第十二届蓝桥杯 2021年国赛真题 C完全日期(Calendar类 日期遍历)
题目:思路:遍历从2001.1.1到2021.12.31的所有日期,找出符合要求的。需要注意这个完全日期,根据实际日期大小数值判断一下,符合要求的平方数只有9,16,25。需要用到的类方法详解:用Calendar枚举所有日期,每次枚举只需要将date+1。需要注意以下地方:需要注意的其中是月份是从0开始。(此外,星期是从日开始)如下图:这个代表2021年1月31日Calendar的好处在于可以帮你把不合法的日期给合法化。如下图:2001.1.31执行过日份+1的操作后,日期变原创 2022-05-03 14:43:45 · 774 阅读 · 0 评论 -
第十二届蓝桥杯 2021年国赛真题 B纯质数
题目:解析:两个思路,一个是挨个遍历,挨个判断,另一个是 因为在 [ 0 , 10 ) 中,质数仅占 { 2 , 3 , 5 , 7 } 四位,如果仅判断这四个数字组合成的数是否是质数的话,性能能否有进一步的提升。代码:import java.util.ArrayList;import java.util.List;public class Test { public static final int N = 20210605; public static void m原创 2022-05-01 23:23:49 · 440 阅读 · 0 评论 -
洛谷 P1219 [USACO1.5]八皇后 Checker Challenge
题目链接:https://www.luogu.com.cn/problem/P1219题目:思路:八皇后问题,典型dfs,dfs练习。代码:不是很熟练,代码有些冗余import java.util.ArrayList;import java.util.Scanner;public class P1219_八皇后CheckerChallenge { public static void main(String[] args) { Scanner sc = new原创 2022-04-24 10:43:13 · 299 阅读 · 0 评论 -
DFS 深度优先搜索算法
概念:深度优先搜索算法(Depth First Search,简称DFS):一种用于遍历或搜索树或图的算法。 沿着树的深度遍历树的节点,尽可能深的搜索树的分支。当节点v的所在边都己被探寻过或者在搜寻时结点不满足条件,搜索将回溯到发现节点v的那条边的起始节点。整个进程反复进行直到所有节点都被访问为止。属于盲目搜索,最糟糕的情况算法时间复杂度为O(!n)。算法思想:回溯算法,又称为试探法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不原创 2022-04-16 17:38:06 · 186 阅读 · 0 评论 -
HDU 2072 单词数 字符串 Java
问题:思路:看似普通的问题,思路也简单,其实全是坑!一般思路就是 :接收字符串->存入set数组->输出set的值注意几个坑:1.输入的一行中两个单词直接有连续空格2.一行开头就输入了空格3.一行全是空格代码:(需要注意的地方代码中标注了)import java.util.Arrays;import java.util.HashSet;import java.util.Scanner;import java.util.Set;public class B {原创 2022-04-04 16:44:50 · 603 阅读 · 0 评论 -
codeforces_B_Delete from the Left
链接:https://codeforces.com/contest/1005/problem/B题目:题目自行翻译,大致意思就是求两个字符串需要删除多少个左边的字符,才能相等。思路:题目不难,需要注意两个地方:1.需要从右往左比较2.需要比较字符,用一个变量记录,不能直接比较字符串(都是防止超时)代码:import java.util.Scanner;public class 从左边删除 { public static void main(String[] args) {原创 2022-04-02 23:59:05 · 378 阅读 · 0 评论 -
codeforces_B_Strange List
题目链接: https://codeforces.com/contest/1471/problem/B思路:这个题关键点在与理解题目、代码:import java.util.Scanner;public class 奇异清单 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for (i原创 2022-04-02 22:17:07 · 586 阅读 · 0 评论 -
第十届蓝桥杯省赛JavaB组I_后缀表达式
题目:思路:首先要知道“后缀表达式”和普通算式的区别所以,可以把问题分成:1.有负号的情况:…1.例如数字全是正数,那么必须消耗一个最小的数字;…2.例如数字全是负数,那么需要消耗一个最大的数字;…可以总结为 排序之后,最大数-最小数 然后和其他数的绝对值全部相加。2.无负号的情况:只有加号,全部相加即可代码:import java.util.Arrays;import java.util.Scanner;public class I_后缀表达式 { public stat原创 2022-03-25 18:03:10 · 677 阅读 · 0 评论 -
第十届蓝桥杯省赛JavaB组G_外卖店优先级
题目:思路:本题关键是二维数组的建立,二维数组保存的意义。如下图:二维数组以时间、店数建立 在输入数据的时候,判断某时刻的某家店的订单情况,直接加到订单数中,之后进行for循环,利用set集合便可求出代码:import java.util.HashSet;import java.util.Scanner;public class G_外卖店优先级 { public static void main(String[] args) { Scanner sc =原创 2022-03-24 21:10:16 · 554 阅读 · 0 评论 -
第十届蓝桥杯省赛JavaB组H_人物相关性分析
题目:这个题在蓝桥杯官网案例错误,所以没法判断代码得分。思路:用两个list数组分别记录这两个字符串出现的位置,最后进行循环比较。要注意的是:判断字符出现是否是符号条件的位置(不能是一个单词的一部分)。代码:import java.util.ArrayList;import java.util.Scanner;public class H_人物相关性分析 { public static void main(String[] args) { Scanner sc =原创 2022-03-24 19:00:08 · 571 阅读 · 0 评论 -
Leetcode518. 零钱兑换 II(完全背包)
分析:首先这个题是一个完全背包问题,把面额看做是商品总金额看做背包容量,找出所有可能装满背包的方案。首先想到肯定是动态规划,关键是找出动量关系式例如:用1,2,5金额已知0元的情况,直接不用任何面值可以记为1种情况。1.当我们只有1元硬币的时候,只有一种结果2.当我们有了2元硬币的时候,结果等于 没有2元硬币的结果数+确定用了一枚2元硬币下其余的金额随意搭配3.到这里逻辑和转化方程就都已经清楚了f [i][j] = f [i − 1][j] + f [i][j − x]最后拿总额11来.原创 2022-03-18 23:31:47 · 668 阅读 · 0 评论 -
KMP算法
问题:给定一个长字符串和一个目标字符串,匹配字符串,找出目标字符串第一次出现的位置.一、暴力匹配:暴力匹配算法的思路很简单,用模式串的第一个字符和主串的第一个字符比较,如果相等就用模式串的第二个字符和主串的第二个字符比较,如果不相等就用子串的第一个字符和主串的第二个字符比较,以此类推:public class 字符串暴力匹配 { public static void main(String[] args) { String st = "李怡嘉怡怡怡"; St原创 2022-03-18 20:55:05 · 407 阅读 · 0 评论 -
第十一届蓝桥杯JavaB组省赛H_数字三角形
一、题目:二、题目分析:动态规划题从上往下走,本行数=本行数+max(左上点的值,右上点的值);向左下走的次数与向右下走的次数相差不能超过 1 表示:1.奇数行只能走到最后一行的中间那个数2.偶数行只能走到最后一行的中间两个数三、解法import java.util.Scanner;public class H_数字三角形 { public static void main(String[] args) { //接收数据 Scanner原创 2022-03-12 09:50:30 · 1238 阅读 · 0 评论 -
第十二届蓝桥杯JavaB组省赛H_杨辉三角形
一、题目:二、题目分析:首先这个题是我们比较熟悉的杨辉三角,需要注意的就是评测用例的范围。三、解法.题目给出20%的用例是1-10 所以可以直接 枚举出1-10的即可获得2分.下面我第一次的解法,思路就是依次算出数值,直到找到目标值,由于太复杂,最后得了4分:import java.util.ArrayList;import java.util.Scanner;public class H_杨辉三角形 { public static void main(String[] ar原创 2022-03-10 20:26:19 · 659 阅读 · 5 评论