https://scut.online/p/243 这道题唯一难点在于如何快速确定m合法.可以统计滑动窗口中已有元素的数量. #include<bits/stdc++.h> using namespace std; #define ll long long int n; ]; ]; int sum; ]; int cntsum; bool ok(int m){ memset(cnta,,sizeof(cnta)); cntsum=; ;i<m;i++){ ){ cntsum++; } c…
https://scut.online/p/240 就是要小心绝对路径中也有.和..出现. #include<bits/stdc++.h> using namespace std; #define ll long long struct path{ string fullpath; void toparent(){ int n; n=fullpath.length(); ;i>=;i--){ if(fullpath[i]=='/'){ fullpath=fullpath.substr(,…
https://scut.online/p/216 演员 把这个当成dp算了半天,各种姿势,好吧,就当练习一下树dp. 假如是每个节点的层数之和,按照dp[i][j]为从i点出发获得j科技的最小费用dp是比较好的. 改了改居然也可以过. #include<bits/stdc++.h> using namespace std; typedef long long ll; vector<pair<int, int> > E[50]; int d[50]; int f[50]…
宋宝华: 关于Linux进程优先级数字混乱的彻底澄清 原创: 宋宝华 Linux阅码场 9月20日 https://mp.weixin.qq.com/s/44Gamu17Vkl77OGV2KkRmQ   有点晕 Linux进程的调度优先级数字会在好几个地方出现:内核,用户,top命令.他们各自都有自己的表示法.我们用一个实际的例子来说明,下面在Linux写一个最简单的程序: 编译它运行,把调度策略设置为SCHED_FIFO,优先级设置为50:$ sudo chrt -f 50 ./a.out这个…
本文系转载,著作权归作者所有. 商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 最初的2小时,你会爱上Docker,对原理和使用流程有个最基本的理解,避免满世界无头苍蝇式找资料.本人反对暴风骤雨式多管齐下狂轰滥炸的学习方式,提倡迭代学习法,就是先知道怎么玩,有个感性认识,再深入学习高级用法,深层原理,一轮轮迭代.坚决反对一上来就搞几百页厚的东西把人脑子弄乱. Docker是什么? KVM, Virtualbox,…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) Ftrace简介 Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布. Ftrace案例 写一个proc模块,包含一个proc的读和写的入口.test_proc_show()故意调用了一个kill_time()的函数…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前言 <设计模式>这本经典的书里面定义了20多种设计模式,虽然都是面向对象的,似乎需要C++.Java这样的语言才能实现,但是根据笔者前面反复强调的,Linux内核虽然是用C语言和汇编语言写成,但是其实也到处充满了面向对象的设计.面向对象更多的是一种思想,而不是一个语言.我们可以用C语言实现极大的OO,Linux内核到处都有OO. 模…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者:宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 前向声明 编程定律 先强调一点:在一切可能的场景,尽可能地使用前向声明(Forward Declaration).这符合信息隐蔽的原则. 一个例子 regmap 那么前向声明究竟是个什么鬼?在内核写代码和看代码的童鞋,经常发现Linux内核里面充斥着这样的代码,比如 include/vim linux/regulator/driver.h…
本文系转载,著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 作者: 宋宝华 来源: 微信公众号linux阅码场(id: linuxdev) 竞态无所不在 首先我们要理解竞态(race condition)无所不在,哪怕是对一个全局变量做++的加1动作. a=0 a++; a++这句话,会被翻译为多条指令: ldr     r3, [r3, #0]  adds    r2, r3, #1 str     r2, [r3, #0]  它会先读(ldr),再修改(add),再写(…
$Mingqi\_H$ NOIp 2017考挂了...gg 重新开始好了. 计划明年2月24号前复习完所有的NOIp知识点(毕竟很不熟练啊),之后到七月底前学习完省选的东西(flag?). 从现在开始吧. 11.29 NOIp图论(Ⅰ) 坑:Floyd.Dijkstra.最短路计数.Tarjan.二分图.拓扑. 最短路计数: 类似一个标准的SPFA,不同之处在于加粗的两句: 如果第一次到达nxt节点,nxt节点的最短路数量就等于其前驱节点的最短路数量,当前点需要松弛,则当前点继承被松弛节点的最短…
Ftrace简介 Ftrace是Linux进行代码级实践分析最有效的工具之一,比如我们进行一个系统调用,出来的时间过长,我们想知道时间花哪里去了,利用Ftrace就可以追踪到一级级的时间分布. Ftrace案例 写一个proc模块,包含一个proc的读和写的入口.test_proc_show()故意调用了一个kill_time()的函数,而kill_time()的函数,又调用了mdelay(2)和kill_moretime()的函数,该函数体内调用mdelay(2). kill_time()的函…
最初的2小时,你会爱上Docker,对原理和使用流程有个最基本的理解,避免满世界无头苍蝇式找资料.本人反对暴风骤雨式多管齐下狂轰滥炸的学习方式,提倡迭代学习法,就是先知道怎么玩,有个感性认识,再深入学习高级用法,深层原理,一轮轮迭代.坚决反对一上来就搞几百页厚的东西把人脑子弄乱. Docker是什么? KVM, Virtualbox, Vmware是虚拟出机器,让每个实例看到一个单独的机器:而Docker是虚拟出操作系统,实现应用之间的隔离,让各个应用觉得自己有一个自己的操作系统,而且彼此之间隔…
http://mp.weixin.qq.com/s/BixMISiPz3sR9FDNfVSJ6w 本文解释swappiness的作用,以及swappiness=0究竟意味着什么. 内存回收 我们都知道,Linux一个进程使用的内存分为2种: file-backed pages(有文件背景的页面,比如代码段.比如read/write方法读写的文件.比如mmap读写的文件:他们有对应的硬盘文件,因此如果要交换,可以直接和硬盘对应的文件进行交换),此部分页面进page cache anonymous…
处理器 存储器 接口与总线 I2C时序 SPI总线时序 以太网…
今天复习二分匹配,A 了一道模板题. 二分匹配需要理解增广路的寻找.用dfs来更新最大匹配.注意一些点:赋初值:愚蠢地把==写成了= ; 然后match的记值;每个点都要重新走一遍. #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define INF 80005 #define maxn 405 using namespace std; int n,m,a…
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记录存放在哪个桶当中.所谓Hive中的分桶,实际就是指的MapReduce中的分区.根据Reduce的数量,分成不同个数的文件. 我们先准备我们将使用的分桶表的数据. 1,jack,2016/11/11 2,michael,2016/11/12 3,summer,2016/11/13 4,spring…
题目分析 n个点的二分染色图计数 很显然的一个式子 \[ \sum_{i=0}^n\binom{n}{i}2^{i(n-i)} \] 很容易把\(2^{i(n-i)}\)拆成卷积形式,前面讲过,不再赘述. n个点的二分图计数 设\(f_n\)表示n个点的二分染色图个数. 设\(g_n\)表示n个点的二分连通图个数. 设\(h_n\)表示n个点的二分图个数. 分别构造f,g,h的EGF\(F,G,H\). 显然有 \[ \begin{aligned} F&=\sum_i(2*G)^i=e^{2G}…
各位同学们,好久没写原创技术文章了,最近有些忙,所以进度很慢,给大家道个歉. 警告:本教程仅用作学习交流,请勿用作商业盈利,违者后果自负!如本文有侵犯任何组织集团公司的隐私或利益,请告知联系猪哥删除!!! 一.淘宝登录复习 前面我们已经介绍过了如何使用requests库登录淘宝,收到了很多同学的反馈和提问,猪哥感到很欣慰,同时对那些没有及时回复的同学说声抱歉! 顺便再提一下这个登录功能,代码是完全没有问题.如果你登录出现申请st码失败的错误时候,可以更换_verify_password方法中的所…
  2021年10月22日,深圳钛铂数据有限公司「Tapdata」 与精诚瑞宝计算机系统有限公司「精诚瑞宝」战略合作签约仪式在深圳举行,Tapdata 创始人唐建法先生与精诚瑞宝副总经理余灿雄先生签署了合作协议,精诚瑞宝计算机系统有限公司正式成为 Tapdata 特约代理商,未来,精诚瑞宝与 Tapdata 将充分整合双方优势资源,秉承互利共赢原则,携手开拓 Real Time DaaS 蓝海市场,为广大客户提供全球首个基于数据即服务( DaaS)架构理念.面向 OLTP 业务或场景的企业实时数…
C语言嵌入式系统编程修炼 2008-08-19 作者:宋宝华 来源:天极网 C语言嵌入式系统编程修炼之背景篇 本文的讨论主要围绕以通用处理器为中心的协议处理模块进行,因为它更多地牵涉到具体的C语言编程技巧 不同于一般形式的软件编程,嵌入式系统编程建立在特定的硬件平台上,势必要求其编程语言具备较强的硬件直接操作能力.无疑,汇编语言具备这样的特质.但是,归因于汇编语言开发过程的复杂性,它并不是嵌入式系统开发的一般选择.而与之相比,C语言--一种"高级的低级"语言,则成为嵌入式系统开发的最佳…
前言 读者自行尝试可以想看源码戳这,博主在github建了个库,读者可以Clone下来本地尝试.此博文配合源码体验更棒哦~~~ 个人博客:Damonare的个人博客 原文地址:十大经典算法总结 这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和javascript....当年javascript为了抱Java大腿恬不知耻的让自己变成了Java的干儿子,哦,不是应该是跪舔,毕竟都跟了Java的姓了.可如今,javascript来了个咸鱼翻身…
重点 应用程序可以选择一个适当的即时编译器来进行接近机器级的性能优化. 分层编译由五层编译构成. 分层编译提供了极好的启动性能,并指导编译的下一层编译器提供高性能优化. 提供即时编译相关诊断信息的JVM开关. 像内联化和向量化之类的优化进一步增强了性能. OpenJDK HotSpot Java Virtual Machine被人亲切地称为Java虚拟机或JVM,由两个主要组件构成:执行引擎和运行时.JVM和Java API组成Java运行环境,也称为JRE. 在本文中,我们将探讨执行引擎,特别…
评注: 开源的分布式监控系统 转:http://www.infoq.com/cn/articles/distributed-real-time-monitoring-and-control-system?utm_campaign=rightbar_v2&utm_source=infoq&utm_medium=articles_link&utm_content=link_text 2011年底,我加入大众点评网,出于很偶然的机会,决定开发CAT,为各个业务线打造分布式实时监控系统,C…
1. 整体介绍 分类 排序大的分类可以分为两种,内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.主要需要理解的都是内排序算法: 内排序可以分为以下几类: (1).插入排序:直接插入排序.二分法插入排序.希尔排序. (2).选择排序:简单选择排序.堆排序. (3).交换排序:冒泡排序.快速排序. (4).归并排序 (5).基数排序 性能对比 稳定性:就是能保证排序前两个相等的数据其在序列中的先后位置顺序与排序后它们两个先后位置顺序相同.即如…
前言 个人博客:Damonare的个人博客 如遇到问题或有更好的优化方法,可以: 提issue给我 或是pull requests 我都会看到并处理,欢迎Star. 这世界上总存在着那么一些看似相似但有完全不同的东西,比如雷锋和雷峰塔,小平和小平头,玛丽和马里奥,Java和javascript....当年javascript为了抱Java大腿恬不知耻的让自己变成了Java的干儿子,哦,不是应该是跪舔,毕竟都跟了Java的姓了.可如今,javascript来了个咸鱼翻身,几乎要统治web领域,No…
本文对常见的排序算法进行了总结. 常见排序算法如下: 直接插入排序 希尔排序 简单选择排序 堆排序 冒泡排序 快速排序 归并排序 基数排序 它们都属于内部排序,也就是只考虑数据量较小仅需要使用内存的排序算法,他们之间关系如下: 稳定与非稳定: 如果一个排序算法能够保留数组中重复元素的相对位置则可以被称为是 稳定 的.反之,则是 非稳定 的. 直接插入排序 基本思想 通常人们整理桥牌的方法是一张一张的来,将每一张牌插入到其他已经有序的牌中的适当位置.在计算机的实现中,为了要给插入的元素腾出空间,我…
排序算法说明: (1)对于评述算法优劣术语的说明 稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面:不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面: 内排序:所有排序操作都在内存中完成:外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行: 时间复杂度: 一个算法执行所耗费的时间.空间复杂度: 运行完一个程序所需内存的大小. (2)排序算法图片总结: 1.冒泡排序: 解析:1.比较相邻的两个元素,如果前一个比后一个大,则交换位置.…
在内核初始化完成之后, 内存管理的责任就由伙伴系统来承担. 伙伴系统基于一种相对简单然而令人吃惊的强大算法. Linux内核使用二进制伙伴算法来管理和分配物理内存页面, 该算法由Knowlton设计, 后来Knuth又进行了更深刻的描述. 伙伴系统是一个结合了2的方幂个分配器和空闲缓冲区合并计技术的内存分配方案, 其基本思想很简单. 内存被分成含有很多页面的大块, 每一块都是2个页面大小的方幂. 如果找不到想要的块, 一个大块会被分成两部分, 这两部分彼此就成为伙伴. 其中一半被用来分配, 而另…