自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(261)
  • 收藏
  • 关注

原创 Codeforces Round #780 (Div. 3)

A - Vasya and Coins 题意:有a个1块的硬币,b个2块的硬币,问最小不能用上述两种硬币表示的数量是多少?如果有大于等于1块价值为1的硬币,那么a1 + b2 = Max 范围内所有数字都可以表示,ans = MAX + 1如果没有1块的价值为1的硬币,答案就是1,因为没有价值为1的硬币,所以无法表示点击查看代码#include <string.h>...

2022-04-05 09:59:00 160

原创 设计模式学习——桥接模式

重学一下设计的内容,这里说一下桥接模式桥接模式的定义将抽象部分与实现部分分离,使他们都可以独立地进行变化。UML图ConcretelmplementorA和ConcretelmplementorB:Implementor的具体实现,两者拥有相似的行为,都可以把行为抽象为Implementor的接口Implementor:对ConcretelmplementorA/B行为的抽象接口,提供给外部调用。Abstraction:抽象类,真正的桥,保存并持有Implementor的引用,调

2021-12-13 01:28:30 249

原创 Kotlin协程的基础设施:函数的挂起

函数的挂起挂起函数使用suspend关键字修饰的函数叫挂起函数,只能在协程体内或者挂起函数内调用。Kotlin一般函数分为两种:普通函数和挂起函数。挂起函数可以调用任何函数,但是普通函数只能调用普通函数/** * 同步返回 * @return synchronous return * */suspend fun suspendFunc01(a: Int) { return}/** * 异步返回 * @return asynchronous return * */sus

2021-08-09 01:40:04 495

原创 面试题56 - I 数组中数字出现的次数

题意一个数组,有两个数字只出现一次,其他数字出现两次,如何在O(N)的复杂度,O(1)的空间复杂度情况下求出这两个数字?思路这个题之前做校赛的时候做过,还是很简单,由异或的性质,我们很容易得知道,把所有数字都异或一次,答案就是res=a^b(那俩单独的数字的异或),那么怎么利用好这个res呢?由于本题不能开数组,无法从数据结构或者某个算法的角度去考虑,那么肯定是用位运算那么考虑把这个res的...

2020-04-28 20:03:10 167

原创 leetcode 2两数相加

ACM打多了,好久没写指针的题目了#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<vector>#define LL long longusing namespace std;/** * Definition...

2020-04-27 21:35:36 110

原创 leetcode 搜索旋转排序数组

搜索旋转排序数组思路其实应该注意的是,题目说了数组是由一个递增数组旋转而来,那么怎么用好这个数组递增???其实你可以发现这个数组只会有一种情况要么全递增,要么是分两端递增,并且左端递增的所有值一定比右段递增的所有值大,那么我们其实只需要看这个查找的数是在左边的递增序列,还是右边的递增序列,在二分的时候设置一下标记就可以了坑点有空输入,最开始特判一下吐槽看了半天题意都没看懂,是不是我语文...

2020-04-27 20:13:32 138

原创 无序数组取中位数问题

解决快速求出无序数组的中位数方法一:快排思想思想:利用快排思想。具体解释,其实简单,我们利用的就是一个东西,快排每次选取一个数,然后把比这个数字小的扔到前面,把比这个数字大的数放到前面,那么对取的这个中间数,它的位置一定是正确的,然后我们考虑这个数字的位置,如果比中位数的位置大,就往前面那个区间继续找中位数的位置,反之如果中位数的位置,比这个标准位置的位置小,那么一定是在这个数字后面一个...

2020-04-14 23:11:36 837

原创 红黑树,B-tree,B+tree结合mysql索引的学习分析

sql语句在mysql里面如何运行的?怎么去查找?目录查找:类似索引健查找:hash查找遍历:暴力查找二分:B+树的基础算法能做索引的结构:数组,红黑树,链表,哈希,B树(B-,B+)hash为什么不能做mysql索引?hash函数值会计算出一个hash值,。hash(user_id)=key 一旦used变了key值也变了。hash索引并不支持范围查找,以及字符串匹配类似like...

2020-04-11 13:57:50 138

原创 ali一面凉经

讲讲项目。。。balalala1了解IO吗?A:不了解2 三次握手?A:balalalaa,你确定?我确定3 排序算法平时用的什么?—快排,最优复杂度是多少?最坏呢?A:O(N^2) 退化到O(logn)4 其他算法最优和最差复杂度是多少??A:除了快排、归并都是O(N^2),5 你确定???A:我确定啊,你写排序都要两层for…这不是稳稳的O(N^)嘛?6 TCP和UDP区...

2020-04-08 15:00:20 165

原创 面试排序整理

为了防止面试再次翻车,总结一下排序,并给出代码快排描述:1.首先设定一个分界值,通过这个分界值将数组的值分到两边2.将大于或等于分界值的数,放到数组分界值的右边。将小于或等于分界值的数,放到数组的左边。3.对于分界值左边的数据,继续进行分界流程,然后对于分界值右边的数据,同样可以继续进程分界流程。4.上述过程可以写成递归实现,先递归实现左侧部分排序,然后实现右侧部分排序。然后整个排序过...

2020-04-08 00:34:48 289

原创 mt一面凉经

提问:1、C和C++的区别?A:一个面向过程、一个面向对象2、C++面向对象知道吗?A:不知道3、设计模式知道多少呢?A:不知道、可以问问我算法方面的4、简述二叉查找树?A:左边的孩子节点值小于父亲节点、右边的孩子节点值均大于父亲节点。5:二叉查找树的问题?A:可能退化为O(n),可以使用平衡二叉树进行旋转6:简单聊一聊红黑树?A:不知道7:简述三次握手?A:TMD早上...

2020-04-07 19:07:18 164

原创 Codeforces Round #629 (Div. 3)

A-Divisibility Problem水B-K-th Beautiful String写的时候居然超时,哥们惊了,应该字符串用string的加法然后用cout<<string造成的,水题C-Ternary XOR从高位往低位看,如果当前位置是0,那么0=0+0如果当前位置是2,那么当前位置是1+1=2,如果当前位置是1,那么让第一个数为1,另外一个数这一位为0,这样第...

2020-04-03 21:34:41 138

原创 1014 Waiting in Line 队列+前缀和

题意有K个人需要办理业务,总共有n个窗口,每个窗口后面有一条黄线,窗口和黄线之间只能容纳m个人,黄线后面的人只排成一列,如果一旦前面排队的队伍有空位,那么就选择人数最少的一列,如果人数最少的一列有多种情况,就选择窗口最短的思路首先肯定是要用队列的,可以利用队列开成数组解决,我们每次扫描队列头,把队列头部人完成所需要消耗的时间,加上这个队列前面所有已经出队的时间,就是这个人出队伍的时间,我们扫...

2020-02-23 21:38:29 156

原创 我们会赢的对吗?一定会的对吗???

唉,找工作也找不到,保研也保不了,真的非常的难受,每年拿着奖学金,感觉没有什么太大的作用。 和队友一样面临着失业的风险,找不到好的实习。 真的是难受到不行,偏偏自己又不服输。 我们会赢的对吗?一定会的对吗???...

2020-02-18 22:51:00 126

原创 1013 Battle Over Cities (25分)

题意很简单,对于一个图来说,每次去掉一个点和这个点所相关点边,为了使得剩下点之间互相都是联通的,问需要加多少条边?思路很简单,类似记忆化搜索,我们遍历每个点,然后对于当前点去掉的情况,我们算整个图的联通块数目,算法是DFS,每次遇到每个没有走过的点,就把和这个点的所有关的点打上标记,下次遇到这些打了标记点就不会走了,我们算这些没有走过的点,就能算出联通块点数目坑点第一次写了一个DFS搜索...

2020-02-17 16:04:00 157

原创 tarjan算法中与无向图联通性

算法理解tarjan算法重要的是搞懂三个东西,dfn[] ,subtree() ,low[]1.DFN[]dfn[]其实就是DFS序,任意选一个点进行深度优先搜索的时候的遍历顺序,由DFS遍历顺序,我们可以得到一个搜索树,根就是前面任选的一个深度优先搜索的最开始的那个结点。2.subtree()在搜索树中,为了表示的方便,subtree()这个结点的子树结点集3.low[]这个...

2020-02-16 20:23:01 125

原创 1012 The Best Rank (25分)

题意每个人有四个成绩,分别书C,M,E,A其中A是前三个成绩的平均值,你需要输出每个人的最好名次,每个人最好名次的定义是,这四个成绩中最靠前的一个成绩作为最好成绩。分析其实很简单,直接结构体排序就行,首先排优先级高的,再排优先级低的。坑点对于排名类似 100 99 99 98 98 对应名次应该是1 2 2 4 4 而不是1 2 3 4 5总结注意在复制重复代码的时候,注意修改关键部...

2020-02-15 20:31:05 113

原创 1010 Radix (25分) 思维+二分

题意这个题意开始理解错了,一定要好好看题啊!!!这个题还是很简单的,给定四个树 N1,N2,tag,radixtag=1代表N1是radix进制的数,tag=2代表N2是radix进制的数问另外一个数是否可以是某一个进制的数,使得N1=N2思路肯定要枚举这个数,但是怎么枚举,题目并没有说进制是<=35,我们需要枚举,怎么枚举呢???很简单,这个数所含每一位数的最大值+1,就是二...

2020-02-15 11:35:22 273

原创 AcWing95. 费解的开关 枚举+位运算

这道题的确比较难想,首先我们知道图比较小,有可能是枚举,那么该如何枚举呢???你可以发现,我们只要把第一排定了,并且保证第一排不准动,那么答案就定了也就是说,我们首先用二进制枚举,枚举第一行需要翻转的,然后让第一行不准再翻转,后面的翻转只能在第二行进行,那么第二翻转的实际上是定好了的,然后因为定好了,所以不能翻转,那么第二行也定了,我们要改变第二行,只能通过第三行,最后判断一下最后一...

2019-12-17 22:57:00 195

原创 AcWing 91. 最短Hamilton路径

状压DP,对于这种范围给到20的,1<<20并不大,dp[i][j]中i代表状态,表当前二十个二进制位中,有多少点已经走过,j代表的是当前状态中最后的点什么,我们维护这个二维数组,就能得到答案dp[(1<<n)-1][n-1],如何转移呢???很简单,我们知道,一个状态i,由另外一个状态转移过来,一定是另外一个状态的二进制位的点,走到了新的二进制位0的点,造成了那...

2019-12-17 19:30:00 124

原创 快速乘法模板

快速乘 解决int64*int64%int64问题移位快速乘,思想是把a*b%p中的b,对其进行二进制拆分,把b拆成二进制形式a*b=ck-1*a*2k-1+ck-2*a*2k-2+ck-3*a*2k-3+....+c0*a*20其中c代码二进制位是否为1,我们只需要把b每次&1看最后一位是否为1,然后把b/=2就保证每次最后一位一定是最新的,如果一旦最后一位非0,需要把...

2019-12-17 15:36:00 264

原创 C - League of Leesins-构造

题意就是给多个三元组(内部没有顺序),让你构造一个序列,使得所有的三元组都是存在的简单的思考后就会发现一个简单的思路,开头的数一定只出现一次,进而可以找到头或者尾部的第一个三元组,然后我们知道序列最开始的元素是什么,但是后面两个我们并不知道,两个的顺序是什么,但是我们知道,两个相邻的元素,可以找到连与其相邻的两个元素,然后就很简单了,每次查找下一个元素,然后看前面两个元素中,与第三个元...

2019-11-27 19:37:00 154

原创 结束了?这只是新的开始

博客全面停更,咱们江湖再会

2019-11-26 09:03:00 69

原创 python数据分析

.ndim 秩 就是轴的数目或者维度的数量.shape ndarray对象的尺度,对于矩阵就是n行,m列.size代表元素的个数 n*m的值.dtype ndarray对象元素类型.itemsize ndarray对象中每个元素的大小.以字节为单位ndarray数组的创建方法1 从python中的列表、元组等类型中创建nadarray数组 x=np.array(list/tuple...

2019-11-11 22:58:00 111

原创 算是反省吧!!!

最近课程压力太大了,不能像以前一样划水,然后还要准备区域赛,谁知道我这要比赛还忙学习,是不是在玩火。。。可能还是因为自己是拖延癌症患者。。。什么事情喜欢留到最后做,虽然最后做的效率的确蛮高的,但是也属于玩火的一种吧。。。拖延的原因,可能是因为自己是一个完美主义者,希望弄懂一步一步的完成一个东西,但是没人催你话,可能效率会比较底下。。。边听歌边学的效率极其底下。。。基本上就是在...

2019-11-01 20:01:00 113

原创 线段树动态开点+树链剖分BZOJ4999

以每个一个颜色开一颗线段树,内部以dfs序作为线段树节点,权值代表出现次数,维护线段树区间和#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<map>using namespace std;...

2019-10-31 23:42:00 110

原创 Codeforces Round #595 (Div. 3)

第一次这么顺手。。。都是1A。。。。D想了1个小时,想了一个假算法。。。最后20分开E,我叼,简单DP???不负众望的10分钟A掉。。。A. Yet Another Dividing into Teams 只会有两个队B1.B2. Books Exchange直接DFS找环,环内的传递时间是一样的。标记一下,线性复杂度。C1. Good Numbers (easy...

2019-10-23 20:34:00 136

原创 Educational Codeforces Round 74 (Rated for Div. 2)

我叼,打的时候CF被ddos了,还有这种操作?害得我只能睡觉 最后一题留坑 A. Prime Subtraction 以为是求GCD,上去wa一发。。。后来发现,y-x=C,如果C不为1,那么肯定可以由素数组成,偶数直接+2,奇数就是3+2*k ,k>=0#include<bits/stdc++.h>#define LL lon...

2019-10-12 17:04:00 102

原创 Codeforces Round #591 (Div. 2, based on Technocup 2020 Elimination Round 1) 题解

A..B略C 对当前的值排序,再二分答案,然后对于(i%x==0 && i%y==0)放入大的,再放其他的贪心解决即可。#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#include<map&g...

2019-10-08 20:15:00 172

原创 D - Denouncing Mafia DFS

这道题其实很简单,求k个到根的链,使得链上的节点的个数尽可能多,如果节点被计算过了,就不能再被计算了,其实我们发现,只要k>=叶子节点,那么肯定是全部,所以我们考虑所有的叶子节点,DFS到根节点后,往上递归,我们能比较容易的求出某个节点,所有儿子节点的最深深度,那么对于上面一个节点,其实只有一个最长那个影响,所有我们可以保存每个节点的最深深度,然后往上递归,递归到某个节点的时候...

2019-10-08 11:05:00 289

原创 Card Hand Sorting 二进制枚举暴力

这个题其实由于只有4种花色的,那么每种花色排列的顺序,也不过是4!种,然后对于每种花色内部到底是升序还是降序,其实也可以直接暴力,一共也就4!*2^4种情况,然后直接进行排序就可以了,但是我们如何计算需要移动的位置呢???我们这样考虑,我们由于要保证内部有序,那么最后一定是一个升序或者降序,那么插入一张牌,实际上是相当改变内部相对位置,那么考虑无序的,我们肯定是找到最长的递增子序列,...

2019-10-06 21:57:00 141

原创 20172018-acmicpc-southeastern-european-regional-programming-contest-seerc-2017-en A - Concerts

题意就是给一个字母序列a,以及一个另外一个字母序列b,你需要b中找到字母序列a,并且要求对于在b中的字母序列a,每个单词都需要满足相应的距离 其实很简单,我们利用DP[i][j]代表a已经匹配i个位置,当前是在b串的j位置,这样我们很容易写出转移方程dp[ i ] [ j ] +=dp[ i-1 ] [ j - time[ i ] -1]dp[ i ] [ j ]...

2019-10-05 19:25:00 175

原创 Round #590 (Div. 3)

拿DIV找快乐。。。 当场过了A-B1-B2-C 写D差5分钟写的是正解。。。留坑补FG A. Equalize Prices Again 直接判断sum%n==0?sum/n:sum/n+1 B1,B2. Social Network (hard version) 模拟类似什么cache之类的。。。 其实很简单直接用set保存内部出现过的元素,然后用list模...

2019-10-05 00:47:00 96

原创 A - Archery Tournament 动态开点+vecotor 神仙题

存图还是像矩形一样的存,每个节点存所在区级内部的圆的编号,然后暴力判断,开始我也有这个想法,但是。。。这TM也能过。。。仔细想想,貌似好像是可以过,时间复杂度玄学无法证明。。。。#include<iostream>#include<string.h>#include<algorithm>#include<stdio.h>...

2019-10-04 15:26:00 227

原创 P2634 [国家集训队]聪聪可可

点分治傻逼题。。。直接DP就行了#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#define LL long longusing namespace std;const int maxx = 2e5+6;in...

2019-09-30 21:31:00 85

原创 HDU-4807-Lunch Time(二分+费用流,思维)

这道题非常好,如果没有真正弄懂费用流算法的人,只会套模版的人是肯定做不出来的。 我们其实这样考虑,费用流真正的思想是吧费用作为长度,然后跑最短路,同时保证路上的流量不为0,也就是增广; 跑到终点后,回溯把路上的流量进行修改。一直这样下去直到无法增广。 这道题也是一样,我们把路径长度看成费用,路径限制看成流量限制。 每次增广到终点后,得到的dis[t]代表源点到...

2019-09-30 10:40:00 106

原创 易错分析

注意建边add(u,v),有可能函数内部已经加了双向边,记住不要再加add(v,u)

2019-09-28 09:05:00 74

原创 hihocoder1994 树与落叶 DFS+前缀和+二分

DFS找到节点删除的时间,删除的时间其实就是子树的最长链,然后给每个点打一个时间戳,然后求每个时间点对应删除的节点的个数,对于1-max_time时间戳求一个前缀和,然后二分找到和m距离最近的那一天#include<iostream>#include<algorithm>#include<string.h>#include<s...

2019-09-28 02:12:00 130

原创 [Offer收割]编程练习赛108 - 树上的最短边 树链剖分

直接点权下放到边权,每次查询从dfs序的st[u]+1,ed[v]之间查询,#include<iostream>#include<stdio.h>#include<string.h>#include<algorithm>#define lson rt<<1#define rson rt<&l...

2019-09-27 19:54:00 354

原创 【模板】左偏树(可并堆)

#include<iostream>#include<algorithm>#include<stdio.h>#include<string.h>using namespace std;const int maxx = 2e5+6;struct node{ int rt,l,r,val,pos,dis;...

2019-09-25 01:00:00 75

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除