![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
在算法中挣扎
文章平均质量分 83
星--空
在校大学生,个人学习使用,有错的话麻烦大家多多提醒
展开
-
Codeforces Round #708 (Div. 2)
文章目录A、MeximizationB、M-arraysC1、 k-LCM (easy version)C2、 k-LCM (hard version)D、GeniusE1、 Square-free division (easy version)E2、Square-free division (hard version)A、Meximization题目大意:MEX[ i ]代表数组前 i 个数中没有出现的最小非负数,给一个数组,重新排列使他MEX的和最小。解题思路:对于所有出现的数字从小到大(可以尽原创 2021-03-18 11:19:16 · 324 阅读 · 0 评论 -
Educational Codeforces Round 104 A-D
文章目录A-ArenaB-Cat CycleC-Minimum TiesD-Pythagorean TriplesA-Arena题目大意:有n个英雄,英雄之间会不断发生战斗,等级高的英雄会赢。求最后可以赢到100的500次方的英雄数量思路:战斗不断进行没有条件限制,那么只要这个英雄可以打得过任何一个人那么只要时间不限他就可以完成胜利的场次数量。换句话书,只有有人比他弱就可以,所以答案就是总数减去等级最低的那一批人的数量。AC代码:#include <iostream>#includ原创 2021-02-16 11:29:26 · 180 阅读 · 0 评论 -
Codeforces Round #701 (Div. 2)A-C
文章目录A-Add and DivideB-Replace and Keep SortedC-Floor and ModA-Add and Divide题目大意:你有两种操作可以执行。1、a = a/b (整除) 2、b++ 问最少几次操作可以使a==0 。思路:如果要进行b++操作那么显然在最开始把b++执行完再执行整除必定是操作数最少的操作顺序,所以设i为执行完b++之后b的值,操作2步数为:i-b,再算出操作一的步骤就可以得出总步骤,在枚举时一旦这一次的步数大于上一次的步数就可以停止了原创 2021-02-13 20:42:24 · 118 阅读 · 0 评论 -
Codeforces Round #700 (Div. 2)A-D2题解
文章目录A-Yet Another String Game题意:思路:AC代码B-The Great Hero题意:思路:AC代码C-Searching Local Minimum题意:思路:AC代码D1-Painting the Array I题意:思路:AC代码D2-Painting the Array II题意:思路:AC代码A-Yet Another String Game题意:给一个字符串,两个人轮流改一个字符(改为一个与原来不一样的字符,同时改过的不能再改)一个想要结果尽可能大,一个想原创 2021-02-09 00:24:12 · 202 阅读 · 0 评论 -
Codeforces Round #699 (Div. 2)A-E题解
@[TOC](Codeforces Round #699 (Div. 2)A-E题解)A-Space Navigation题目大意:在坐标系中你的初始位置为(0,0)UDRL分别对应向上,向下,向右,向左操作,告诉你目标点位和当前已执行的操作。问能否通过删除部分操作到达目标点。思路:确定目标点和当前位置,通过这两个坐标来确定要删除的操作及其个数,如果原操作中有对应数量的操作,则可以完成目标,否则不行。#include <iostream>#include <cstring>原创 2021-02-07 19:45:38 · 201 阅读 · 0 评论 -
1043 Is It a Binary Search Tree (java)
1043Is It a Binary Search Tree判断给定的序列是否是二叉搜索树(对于任意节点左子树的所有节点值小于此节点值,任意右子树的节点值大于等于此节点值),或者是镜像的二叉搜索树(左右节点互换)方法:对于给定的树的序列找到对应的右子树开始节点(搜索树就是第一个大于等于序列第一个数(因为数前序,第一个就是这个输的根节点),镜像则是小于他的数)再往后遍历找出是否有值是不符合规范的(搜索树:剩下的值都要大于等于第一个数)...原创 2020-12-01 23:36:23 · 109 阅读 · 0 评论 -
LeetCode 111 二叉树的最小深度(java)
寻找给定的树的最小深度,这里用的是宽搜做的,水题,但是这里有两个点需要注意:1.会给出空树 (题目表达是:[] 就是root是 null )2.对于[1,2]这种情况需要注意最小的深度不是1,因为叶节点是没有子节点的节点,而要找的深度是根节点和叶节点的深度 ,也就是root 和 左右子树都是 null 的节点显然 1(root) 节点不符合这种情况 而2 符合。所以深度是1-2 就是2;上代码:public int minDepth(TreeNode root) { ...原创 2020-08-21 23:33:44 · 103 阅读 · 0 评论 -
LeetCode 110 平衡二叉树(java)
给你一个树让你判断是否是平衡二叉树(左右子树高度差不大于1)递归回溯 判断高度差class Solution { public boolean isBalanced(TreeNode node ) { return !(getH(node) == -1); } public int getH(TreeNode node) { if(node == null) { return 0; }else { int leftH = getH(node.l原创 2020-08-17 23:06:09 · 86 阅读 · 0 评论 -
LeetCode 733 图像渲染(java)
一道基础的搜索题,我用的是宽搜。注意点:他会给出更改前后颜色一样的情况这个时候就要注意一下,如果搜索的话就会进入死循环。解决方法:可以记录一下访问过的点,或者直接返回原数组(反正这时候改和不改都一样)。 public int[][] floodFill(int[][] image, int sr, int sc, int newColor) { int oldColor = image[sr][sc]; if(oldColor == newColor) return im原创 2020-08-16 22:44:29 · 118 阅读 · 0 评论 -
LeetCode 785 判断二分图(java)
判断二分图(java)思路:先取一个点把他作为图一的点,之后去查找和他相连接的点这些点就是图二的点,再用这些点中新确定的点去确定其他的点。期间如果出现某一点对应的图有冲突就是就说明不是二分图。可能会出现跑了一遍之后还有点没有确定(如:0只与1相连,2只与3相连),这是就要外面套一个循环来保证所有的点都要被确定下来。实现:使用队列来实现把每回新确定的点都加入到队列之中,之后依次取出并以此来寻找其他的点。代码:class Solution { static ConcurrentLink原创 2020-07-18 23:07:46 · 123 阅读 · 0 评论 -
LeetCode 174 地下城游戏(java)
地下城游戏这题我是用dfs做的,但是一开始的时候直接暴力dfs会超时,用了记忆化dfs就过了。这里有大量的重复计算:当你不是第一次到[x][y]时其实你已经在前面的计算中算过这个值了,这个时候如果使用一个数组将这个值储存起来在你重复算到的时候直接取用就可以节省大量的时间。废话不多说直接上代码:(刚写好代码又丑又长,后面会去调整)class Solution {static int[][] mer; public int calculateMinimumHP(int[][] d原创 2020-07-15 00:25:45 · 188 阅读 · 0 评论 -
LeetCode 32 最长有效括号
LeetCode 32 最长有效括号使用栈来做这题: 使用结构体来储存括号和对应的下标。 通过栈来实现括号的匹配,匹配的弹出或者不入栈。 用剩下的括号来判断最长的有效括号。#include <iostream>#include <map>#include <queue>#include <climits>#include <vector>#include <...原创 2020-07-11 21:40:23 · 107 阅读 · 0 评论 -
Strings in the Pocket ZOJ - 4110
Strings in the Pocket直达车题目大意:建议不会马拉车的朋友先去看看马拉车算法在来看看这题,如果会的话请往下看。首先会给你一个数字n表示有n组测试用例,每组测试用例有两个字符串。要求是把一个字符串中的一部分反转使其与第二个字符串相等。代码:#include <iostream>#include <algorithm>#incl...原创 2019-06-11 23:46:09 · 106 阅读 · 0 评论 -
HDU-1257 最少拦截系统
最少拦截系统题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1257题目大意:总的来说就是首先会给你一个数n之后会给你n个数,需要你把这n个数分为最少的非上升序列。总的来说就是一题水题。先上代码:因为这题其实不难,代码量也少所以建议能不看解释也就不要看了。#include <iostream>#include &...原创 2019-06-11 00:43:09 · 93 阅读 · 0 评论