杂谈
文章平均质量分 76
tomjobs
别慌,慌也没用
展开
-
PhxRPC源码简析
PhxRPC是微信后台团队推出的一个非常简洁小巧的RPC框架,可以看作是微信内部svrkit框架的简化版。在此基础上又实现了PhxSQL和PhxQueue等开源框架。通过学习PhxRPC可以学习到微信内部优秀的框架实现经验(快速拒绝、C++协程、HSHA、Back Request等)。学习这个项目的初衷是因为内部的svrkit代码太多,想先从简单的下手。不过这个项目貌似也很久没维护过了,网上也查不到什么资料,这里是自己学习过程的一些记录。原创 2022-10-31 01:17:52 · 1818 阅读 · 5 评论 -
一个acmer的校招经历
关于博主弱校acmer,有过5个月的字节实习经历,拿到了微信、百度、字节、拼多多、迅雷、知乎、富途、虾皮…的offer关于春招春招比较浪了,寒假的时候一个大佬在群里说字节有个部门实习只面算法,然后确实除了算法什么都没答上来,比较印象深刻的是,我问三面面试官职业发展要学什么,他说先证明自己有学好一个东西的能力;面过后就躺平了关于实习首先感谢mentor和ld,团队氛围也非常不错。实习最大的感受是将各种类型的知识给串起来了,实际项目中,数据量会很大,服务也会很多,不可避免的要原创 2021-12-16 21:57:10 · 1603 阅读 · 2 评论 -
计算机学习笔记
前言I’m so much older then, I’ younger than that now.—Bob DylanC++基础语法const分为修饰变量、指针、引用,简单记忆为const后面修饰的值不可改变//修饰变量const int A; //常量,代表A不能被修改const int* A; //指向常量指针,代表*A不能被修改,但是指针指向可以修改const int& A; //代表被引用的数不可以被修改int* const A; //指向变量的常指针cons原创 2021-08-18 20:23:57 · 818 阅读 · 1 评论 -
二叉树前中后序的非递归遍历(用栈实现)
前序遍历class Solution {public: vector<int> preorderTraversal(TreeNode* root) { stack<TreeNode*>stk; stk.push(root); vector<int>ans; while(!stk.empty()) { TreeNode* now = stk.top();stk.pop();原创 2021-03-14 11:11:59 · 181 阅读 · 0 评论 -
欧拉回路 Hierholzer算法 简单笔记
1.基本概念欧拉回路: 遍历所有边一次且行遍所有顶点的回路欧拉通路: 遍历所有边一次且行遍所有顶点的通路欧拉图: 具有欧拉回路的图半欧拉图: 具有欧拉通路的图2.判定条件欧拉图: 每个点度数都为偶数,相当于很多个环交叉起来。半欧拉图: 仅有两个点度数为偶数,相当于一条边连着两个欧拉图。3.判定条件的证明:Hierholzer算法核心部分长这样void dfs(int x){ for(int i = head[x];i;i = nex[i]) { int原创 2021-02-05 22:16:09 · 1948 阅读 · 0 评论 -
再见2020(ACM退役倒计时)
总结一下自己的2020:1000+的博客3个cf紫名湖南省赛2等奖蓝桥杯国一省一天梯赛国一省一CCPC威海铜加上乱七八糟企业比赛的奖最终ICPC济南完成了大一的心愿rk50+拿到了银牌(差2个多小时就金了呜呜呜,顺便后面3天考试喜提挂科)All Was Ended...原创 2020-12-27 17:19:48 · 1146 阅读 · 8 评论 -
对于“采用二进制枚举所有数目为k的子集”的一些理解(转载)
写Leetcode周赛218的时候想到的问题,转载学习一下。抛出问题: 假如我们遇到这样一个问题,给你n个元素,需要取出k个元素,问你有哪些取法?对于有算法基础的同学一定会想到要用回溯,这个方法肯定是可行的,但是当n很大的时候怎么办呢?进一步优化,我们可能要想到用二进制枚举状态的方式,相信有状压dp基础的同学一眼就能看出。不过在最近的周赛中我却发现,无脑的枚举所有状态,还是会浪费很多时间去查看一些无效的状态(二进制表示中1的数量不为k),于是就去查找更优的方法。我们可以只枚举1的数量为k的所有状态转载 2020-12-19 11:32:07 · 214 阅读 · 1 评论 -
对疫情的一点感悟
时代的一粒灰,落在个人头上,可能就是一座山。武汉本来就是一座很英雄的城市,中国本来就是一个很英雄的国家。中国人,总是被他们之中最勇敢的人保护得很好。有一分热,发一分光,就令萤火一般,也可以在黑暗里发一点光,不必等待火炬。山川异域,风月同天。岂曰无衣,与子同裳。强国之道,不在强兵,而在强民。强民之道,惟在养成健全之个人,创造进化的社会。...原创 2020-04-27 15:15:27 · 588 阅读 · 0 评论 -
背包问题输出方案 ACWING 12
以ACWING 12题为例https://www.acwing.com/problem/content/description/12/方案输出问题要求从结果遍历使用了4种方法输出本题要求的是输出背包方案,并要求方案字典序最小。因此要从后往前转移,并且等于的时候也要发生转移。方案1:记录pre[i][j]代表状态(i,j)是否发生了转移。那么一旦pre[i][j]为1,就代表选择了i,就...原创 2020-02-10 20:44:53 · 737 阅读 · 0 评论 -
(转)算法竞赛编程变量命名指南
从黄学长博客看到转载的????算法竞赛选手,在变量名使用上,有诸多门派:字母派:a b c d e f g 依次使用新字母派:array,brray,crray 表示三个数组新新字母派:img,jmg,kmg 表示三张图片拼音派:用 shanchu 表示删除,用 xiugai 表示修改卖萌派:QAQ,qwq,TAT,orz复读派:n,nn,nnn重排派:next,extn,xtne化合...转载 2020-02-10 00:30:28 · 399 阅读 · 0 评论 -
背包问题小结
题目来源于 https://www.acwing.com/problem/acwing题库的2~12题。大概有这些类别:个人觉得比较难的还是输出方案。01背包问题: 每个物品只能选一次F[i][j] = max(F[i - 1][j - v[i]] + w[i],F[i - 1][j])代表第i个物品选与不选的状态第一维状态可以省点变成F[j] = max(F[j],F[j - ...原创 2020-02-06 22:22:05 · 188 阅读 · 0 评论 -
《你和你的研究》全文
学习海明码的时候看到的。海明码表示将一个字符串转化为另一个字符串的最小修改次数。相关题目:HihoCoder1084(hash + 二分)洛谷P1461海明码HammingCodesYou and Your Research这是大科学家 Richard Hamming 的著名讲演,于 1986 年在贝尔通讯研究中心给 200 多名 Bellcore 的科学家们所做。演讲者介绍: Ric...转载 2020-01-27 20:47:14 · 7098 阅读 · 0 评论 -
编程巨星的唯一秘诀
导读:本文是从《The Singular Secret of the Rockstar Programmer》这篇文章翻译而来。译文来自外刊IT评论《编程巨星的唯一秘诀》。别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理...转载 2020-01-27 20:03:06 · 223 阅读 · 0 评论 -
快速排序求k小 归并排序 逆序数
#include <stdio.h>#include <algorithm>using namespace std;int a[1005];void qqsort(int l,int r){ int i,j,mid,p; i = l; j = r; mid = a[(l + r) / 2]; do { ...原创 2020-01-02 17:16:24 · 211 阅读 · 0 评论 -
编程杂谈
1default 默认2else if的BUG暂未解决,同志仍需努力——其实就是布尔表达式的问题3while(flag)相当于while(flag!=0)while(!flag)相当于while(flag==0)?:为三目表达式,逐个检验真假4首行定义下面的组数或者行数可以用strlen取其5乘法表与6ceil表示向上取整7 关系和逻辑运算符的结果只有0和1——由此可以延伸到w...原创 2018-12-01 18:58:52 · 648 阅读 · 1 评论 -
lcy老师的训练反思
三省吾身而有得,转载记录下来吧https://blog.csdn.net/u011321546/article/details/9320567该我自己检讨了_By LCYPosted by Admin_LCY at 2010-05-05 00:54:33 (65)首先,我想说,下面检讨的很多问题并不是现在才有,去年或许更早就已经逐步显现出来,只不过还算过得去的比赛成绩,特别是去年幸运的第...转载 2019-08-14 12:01:01 · 187 阅读 · 0 评论 -
矩阵旋转90度
(x,y) --> (n-x,y) --> (n-y,x);先左右交换,再x,y互换,就是高中时候的方程变换,本质是与原矩阵的映射关系发生了变化。#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace...原创 2019-08-14 18:25:27 · 1707 阅读 · 0 评论 -
结合codeforces1207A和01背包部分背包问题的一些思考
回顾一下Codeforces1207A,https://blog.csdn.net/tomjobs/article/details/100045335是一道800分的大水题,但还是通过此题加深了对01背包的理解题意: 有原材料,汉堡鸡翅所需原材料不同,价格不同,问最多能卖多少钱。思路: 我两个for枚举了所有情况。其实只需要考虑2种情况:优先换汉堡和优先换鸡翅。#include <c...原创 2019-08-23 22:25:03 · 352 阅读 · 0 评论 -
负数二进制与反码
lwl大佬问了我~运算是什么,发现自己并不知道二进制是什么。。。总结一下吧。前向星建图中常有 ~i。代表i为-1的时候结果为0。因为负数的二进制表示为对应正数的反码+1。也就是-x = ~x + 1。类似的,树状数组lowbit运算用来求二进制下末尾0的个数。其中lowbit(x) = x & (-x) = x & (~x + 1)。如二进制xxxxxx100000,反码...原创 2019-08-25 00:24:40 · 1443 阅读 · 0 评论 -
路径记录总结
一直感觉路径记录是个很玄学的东西。一般来说,只要有递推关系,就会有路径记录。相当于逆推。下面写了3个简单dp的路径记录,发现其实都差不多——根据原有的递推关系,反向递归。或者不要递归,就是从终点开始,寻找上一次转移的点,再寻找上次转移的点。类似的,bfs,floyd,dijkstra也因为有递推关系,也可以寻找路径。bfs:如迷宫,用一个path(i,j)数组记录(i,j)的上一个点,因为转移...原创 2019-09-03 23:13:17 · 464 阅读 · 0 评论 -
算法杂谈
1.总感觉tarjan和并查集异曲同工。tarjan妙就妙在追溯值low数组,有了这个数组,那么如果我们遍历x点的子树时,最终遍历回了x点,那么就会使得low[v] = low[x] = dfn[x],最终能够连在一起能够任意到达的一坨点的low[v]都会变成dfn[x](因为是递归遍历到最深层,先算最深,如果能算到x,那么一开始出发的x点的dfn[x]肯定最小,那全变成了这玩意),low[x]最...原创 2019-09-16 23:55:23 · 167 阅读 · 0 评论 -
二分的mid取法
有两个二分写法r = mid, l = mid + 1, m = (l + r) >> 1.当答案要对mid的浮点结果向上取整的时候这样取。如最少几个人可以分完果子,二分人数。r = mid - 1, l = mid, m = (l + r + 1) >> 1.当答案要对mid的浮点结果向下取整的时候这样取。如最多需要几个果子分配给所有人,二分果子数。...原创 2019-09-27 22:58:42 · 797 阅读 · 0 评论 -
瓶盖换可乐问题非循环写法
假设有x瓶可乐,a个盖子可以换一瓶可乐。问最后能换多少瓶可乐。a个盖子换一瓶可乐,可以简化成:a-1个盖子换一瓶不带盖子的可乐。那么初始有x个盖子,不就直接能换x/(a-1)瓶可乐吗?但是注意到一点,假设x%(a-1) == 0,最后一个(a-1)不能换一个没盖子的可乐,需要a个盖子才能换一个没盖子的可乐。因为这个交换本质是”透支的“,只有所剩余的盖子数大于等于a的时候才能发生这样的交换,所有...原创 2019-10-04 23:59:57 · 633 阅读 · 0 评论 -
学习笔记
1enum枚举2真是奇怪,office有90%的人只会用它10%的功能,但剩下的10%人才是真正NB3约瑟夫问题——循环,hnnoi——递归4记录进步,可视化进步??5全英教学,追随高校步伐。6无从下手时,考试和写题吧7scanf("%d%d",&a,&b);//意思是a,b同值8非常规,有个性的人——Jamie Zawinski,中村修二,阮一峰,王垠9编程是创造...原创 2018-12-01 18:57:47 · 345 阅读 · 0 评论