自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

秋叶红于二月花

要活在实践中。 https://littlefall.blog.csdn.net/

  • 博客(421)
  • 资源 (6)
  • 收藏
  • 关注

原创 【总结】ACM比赛生涯总结

csf学长的总结奖项总结时间比赛奖励大一下学期2017.5西安交通大学ACM校赛铜奖大二下学期2018.5蓝桥杯C++国赛A组三等奖2018.5ICPC全国邀请赛-西安站铜奖2018.6ICPC全国邀请赛-宁夏站银奖大三上学期2018.10ICPC亚洲区域赛-沈阳站银奖(银二)2018.10...

2019-11-28 22:49:05 4298 8

原创 链接不以 lib 为开头的库

如果 target_link_libraries(foo PRIVATE bar),cmake 会生成这样的命令 “-lbar”,即尝试寻找 libbar.so 或者 libbar.a,导致链接失败。这样 cmake 生成的命令就是 “-l:bar.so”,ld 就能正确找到库了。假设我们有个库需要链接,叫做 bar.so (没有 lib 前缀)。来让 ld 知道不要给我们加上 lib 前缀和 so 后缀。

2024-02-04 15:54:59 245

原创 C++ 设计模式 Forward Declaration & Pimpl

放几轮跟 chatgpt 的对话,很精彩的回答。

2023-12-04 17:27:31 292

原创 c++:输出高维 vector 的 shape 并支持结构化绑定

来自学弟的问题:一个vector > v, 写一个模板函数Size(), 然后可以直接auto [n,m,k] = Size(v)获取这个高维矩阵的各维维度?

2022-11-27 14:42:11 629 1

原创 C++ debug 系列:手动调用析构函数

^^_

2022-10-27 17:55:53 1729

原创 send line/selection to terminal

按下快捷键就可以在一个系统 terminal 里面执行任务,可以执行 shell 或者在 markdown 中执行 shell script,将 line/selection 发到终端中。需要预先启动一个 repl session,只能写入在 repl 中而且暂时不支持我的 zsh 的 ansi 格式。可以直接在 markdown 中执行一行命令,非常贴近我的需求,但是没有找到文档和设置的地方。这是一些我的探索过程以及非完美的解决方案,如果有更好的解决方案可以评论交流。还在 track,遥遥无期。

2022-08-23 22:15:11 265

原创 Rust Pattern - 不重叠地遍历迭代器的每两个元素

代码】RustPattern-不重叠地遍历迭代器的每两个元素。

2022-07-16 18:15:34 224

原创 【题解】Codeforces Round #804 (Div. 2)

要加快手速,不能甩锅给 rust,还有就是增强通用模板,比如构造题的 check。1699B. Almost Ternary Matrix构造、矩阵给两个偶数 n,m,构造一个 01 矩阵使得每个元素都只有两个相邻元素和它不等。显然除去最外层,里面的内容都是重复的,类似于:0 0 1 1 0 0 1 10 0 1 ...

2022-07-05 02:26:48 351

原创 leetcode周赛 299

经典 rustwa 两次,一次是因为运算的最终结果没有取模,一次是因为初始值选的有问题,建议直接 i32::MAX/2ABCD

2022-06-26 11:45:49 101

原创 Codeforces 1696E. Placing Jinas 高维前缀和、组合数取模

记 sum[k][i] 表示 k 维前缀和的第 i 项,比如:sum[0] = 0, 1, 0, 0sum[1] = 0, 1, 1, 1sum[2] = 0, 1, 2, 3sum[3] = 0, 1, 3, 6, …那么答案就是 sigma(sum[i+2][ai]).高维前缀和单点可以用组合数求,sum(k,n) = C(n+k-2, n-1),放到答案里也就是 sigma(C(i+ai, i+1)).相关的具体说明有个 quora 答案写的挺好:https://qr.ae/pvo6rl组合

2022-06-26 02:20:09 360 6

原创 Codeforces1696D. Permutation Graph,静态区间最大最小值,ST表

从 1 到 n 的路径一定要经过两个极值点,以此递归即可获得最优解。需要支持的操作是求静态区间的最大/最小值,可以用 ST 表,现场把我四年前的博客翻译成 rust…https://blog.csdn.net/m0_37809890/article/details/82585410......

2022-06-26 02:10:58 257

原创 Codeforces1696 C. Fishingprince Plays With Array

首先将两个数组切分到不能切分为止,然后判断是否相等,数组的表示经过了一定的压缩。rust:

2022-06-26 02:06:46 174

原创 leetcode 2766. 统计区间中的整数数目 珂朵莉树 使用 set 维护区间合并 rust/c++

给你区间的 空 集,请你设计并实现满足要求的数据结构:新增:添加一个区间到这个区间集合中。统计:计算出现在 至少一个 区间中的整数个数。实现 CountIntervals 类:CountIntervals() 使用区间的空集初始化对象void add(int left, int right) 添加区间 [left, right] 到区间集合之中。int count() 返回出现在 至少一个 区间中的整数个数。注意:区间 [left, right] 表示满足 left <= x <.

2022-05-15 16:14:29 261

原创 rust leetcode 周赛 286

模拟比赛,1:33:00(超时3分钟),no dirty,第一名时间 0:10:40。。。猫猫疑惑,写同样的题目花人家9倍时间,酱紫慢?rust snippet:从 vec 构建 hashset:HashSet::<i32>::from_iter(nums1.into_iter());,里面也可以是 .iter.clone()reverse string:.chars().rev().collect::<String>()string 不能加 string,但可以加 &am

2022-04-22 03:13:29 1248

原创 rust leetcode 周赛 287

2224 转化时间需要的最少操作数impl Solution {pub fn convert_time(current: String, correct: String) -> i32 { let (h0, m0) = current.split_once(":").unwrap(); let (h0, m0) = (h0.parse::<i32>().unwrap(), m0.parse::<i32>().unwrap()); let (h1, m

2022-04-22 01:01:11 176

原创 rust leetcode 周赛 288

2231 largest-number-after-digit-swaps-by-parity/impl Solution { pub fn largest_integer(num: i32) -> i32 { let mut digits = num. to_string(). chars(). map(|d| d.to_digit(10).unwrap() as i32). c

2022-04-21 21:03:32 333

原创 【题解】codeforces1667B. Optimal Partition

给一个长为 5e5 的数组(正负1e9),你需要将其分为若干段,使得价值之和最大,每段的价值定义是:如果段之和为正,则价值为段长度如果段之和为0,则价值为0如果段之和为负,则价值为段长度的相反数。dp,用 dp[i] 表示 1..=i 分好后的价值之和,那么有 dp[i] = max_{j=0..i} dp[j] + value(j..=i)。考虑一个性质,如果负价值或零价值的段长度大于 1,那么总可以将它拆开而结果不会更劣,所以可以认为所有负价值或零价值的段长都为 1.(实际上无需这个结论

2022-04-20 20:22:26 462

原创 rust leetcode 前十题

刷题集Two sumuse std::collections::HashMap;impl Solution { pub fn two_sum(nums: Vec<i32>, target: i32) -> Vec<i32> { let mut mp = HashMap::new(); for (i, num) in nums.iter().enumerate() { if let Some(&id

2022-03-28 00:03:47 469

原创 [WindowFunction] 系列二:TiDB 中的 Window Function 实现

接下来几篇文章将分析一些热门数据库中的窗口函数实现方式,主要包括 节点间并发、节点内并发、具体实现、内存控制,以及其它值得注意的细节。TiDB代码:代码文档:文档design doc: design doc窗口函数分组在 parser 将 sql 解析为 ast 之后,tidb 的 planbuilder 会将 windowFunction 进行分组,合并具有相同 spec name 的窗口,核心逻辑在以下函数中:func (b *PlanBuilder) groupWindowFuncs(w

2022-03-01 17:10:08 308

原创 [WindowFunction] 系列一:窗口函数的语法与举例

MySQL :: MySQL 8.0 Reference Manual :: 12.21 Window Functionscreate table employee(empid int, deptid int, salary decimal(10,2));insert into employee values(1,10,5500.00), (2,10,4500.00, (3,20,1900.00, (4,20,4800.00, (5,40,6500.00, (6,40,14500.00, (7,40,4

2022-02-16 15:28:44 441

原创 小知识随笔 address 与 advertise-address

简而言之,address 是本项目要监听的地址,通常是 0.0.0.0:<port>,代表不管从接收到来自哪里的请求,只要打在这个端口上,都可以处理。advertise-address 是本项目向服务发现项目注册时提交的地址,比如是域名的形式,比如 h81:<port>,代表让服务发现项目(及其它项目)可以向这个地址发送请求。为什么不能直接把 address 当作 advertise-address 发给服务发现项目呢?因为两者的网络环境可能有差异,比如项目本身不能识别本机的某个

2022-01-24 15:59:34 1254

原创 可重入锁 std::recursive_mutex

文档:https://en.cppreference.com/w/cpp/thread/recursive_mutex好奇它的实现。找 clang 的 <mutex> 源码:https://github.com/llvm/llvm-project/blob/main/libcxx/include/mutex#L213发现 lock 调用了 __libcpp_recursive_mutex_lock(&_m),其中 m 是 __libcpp_recursive_mutex_t。看

2022-01-11 15:09:15 1214

原创 Rust 笔记

https://rustwiki.org/zh-CN/rust-by-example/custom_types/constants.html1 print!fmt::Debug:使用 {:?} 标记。格式化文本以供调试使用。需要 #[derive(Debug)]可以使用 {:#?} 来获得更规范的数据结构的打印fmt::Display:使用 {} 标记。以更优雅和友好的风格来格式化文本println!("Pi is roughly {:.3}", pi);#[derive(Debu

2022-01-10 00:39:07 384

原创 【小笔记】奇异递归模版模式CRTP:优雅的静态分派

CRTP 可以以模版继承的方式实现静态分派。与纯靠模版实现静态分派的方式相比:更加优雅,方便编码与实现,更好理解;或者说,CRTP 本身就是用模版实现分派的一种良好实践。与多态相比:编程模式近似。缺点:不能实现动态分派,原因:无法定义一个 Base * b;,因为没有指定模版参数。代码大小可能会因为模版生成而膨胀。优点:省略虚表跳转的开销。例子:#include<iostream>template <typename T>class Base {public

2021-10-13 17:30:09 126

原创 【小笔记】进程恢复

看到一个任务的状态异常切到对应机器上通过 lsof 查看端口占用,发现进程还在通过 ps aux 查看进程状态,发现有一个不寻常的 T查 man,T 代表 stopped by job control signal,也就是被类似于 ctrl+Z 的东西挂起了。第一反应是用 bg 恢复,但是 bg 只能对本 session 的 job 使用。网上查了一下没有很好的方法,也找不到对应的 session.后来想到,ctrl+Z 本质是给进程发一个信号 SIGTSTP,完全可以再发一个信号恢复,这

2021-10-11 15:45:57 543

原创 【笔记】什么是 cartesian left outer anti semi self join?

这个 join 类型一共包括 7 个词:cartesian left outer anti semi self join,第一次见的时候被这叠 buff 一样的前缀干晕了。实际理解的话并不很困难,记录一下。有参考:https://riptutorial.com/sql/example/22934/join-terminology–inner–outer–semi–anti—基础概念我们使用 mysql 8.0 来进行测试。mysql> select version();+-------

2021-07-14 16:29:17 173

原创 c 语言的函数与函数指针

备忘c语言的函数不是“一等公民”,它不算一种变量类型,不能像变量一样初始化、赋值。只能进行定义、声明、调用。#include <stdio.h>int main() { void (func)(int); // declaration // void (func2)(int) = func; // error: illegal initializer (only variables can be initialized) func(1

2021-07-12 02:39:24 487

原创 【题解】Google Code Jam 2021 - Qualification Round

工作好久,回来打一场程序设计比赛真是神清气爽。顺便配好了 sublime 的插件 FastOlympicCoding 以及 Terminus,前者可以方便地输入样例执行等,后者则是一个内置命令行,效率提升不少。A. Reversort按字面意思模拟即可。#include <iostream>#include <algorithm>inline int read(){ int x=0,f=1;char ch=getchar(); while(ch<'

2021-03-28 03:13:33 1397 5

原创 【笔记】sysbench bulk_insert 的实现和改造

实现Sysbench is a benchmark suite which allows you to quickly get an impression of system performance which is important if you plan to run a database under intensive load.sysbench 是一个常用的负载测试套装,bulk_insert 是其中用于对数据库进行批量写入的测试 lua。执行 sysbench 测试用例需要用户执行 p

2021-01-18 16:21:30 1394 3

转载 【转载】分布式系统的一致性算法

转自 https://www.cnblogs.com/yxy-ngu/p/12587341.html一:分布式系统和一致性问题分布式系统就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,对于后端服务器开发人员来说,SOA微服务的架构想必肯定不陌生,它的好处自不必多说。那分布式系统有什么难题和挑战呢?让我们设想一个具体的场景,比如三个人讨论中午去哪里吃饭,第一个人说附近刚开了一个火锅店,听说味道非常不错;但第二个人说,不好,吃火锅花的时间太久了,还是随便喝点粥算了;而第三个人说,那个粥店

2020-10-10 13:41:53 282

原创 【小题解】字符串排列

Leetcode 剑指 Offer 38爷青回。next_permutation 60ms使用库函数遍历每个排列。class Solution {public: vector<string> permutation(string s) { vector<string> result; sort(s.begin(), s.end()); do { result.push_back(s);

2020-09-12 12:55:31 160 2

原创 【debug】IntelliJ IDEA 或 maven 打包含 main 的 jar

照下面的方法执行,不会出现找不到主清单错误。IntelliJ IDEAFile - Project Structure - Artifacts.+ - JAR - From modules with dependencies设置 Main Class,选择主类。设置 Directory for META_INF/MANIFEST.MF,选择到 src/main/java 目录,不要再往下选择。回到主界面, Build - Build Artifact - Build此时在项目根目录的

2020-08-16 14:51:49 368

原创 【笔记】Flink 官方教程 Section2 Learn Flink

地址Section 2 Learn Flink2.1 概览2.1.1 教程目标如何实现流数据处理管道(pipelines)Flink 如何管理状态以及为何需要管理状态如何使用事件时间(event time)来一致并准确地进行计算分析如何在源源不断的数据流上构建事件驱动的应用程序Flink 如何提供具有精确一次(exactly-once)计算语义的可容错、有状态流处理2.1.2 流处理Flink 的应用程序由流式 dataflows 构成,以一个或多个源 source 开始,一个或多个

2020-08-12 15:22:23 302 1

原创 【笔记】Flink 官方教程 Section1 Try Fink

Section 1. Try Flink官方链接1.1 基于 DataStream API 实现欺诈检测1.1.1 项目搭建找一个目录,在其中执行如下命令mvn archetype:generate \ -DarchetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-walkthrough-datastream-java \ -DarchetypeVersion=1.11.0 \ -Dgroup

2020-08-11 22:12:35 981

原创 【小工具】Windows 一键打开可修改的 Hosts 文件

背景如果想要修改 hosts 文件,在 Linux 下可以直接 sudo vim /etc/hosts,而在 windows 下需要打开 C:\Windows\System32\drivers\etc\hosts,而且我没有找到什么好的 cmd 命令能够直接打开一个管理员的记事本窗口。在网上找了一些资料之后,得到了一个取巧的办法,使用 vbs 来申请管理员权限然后使用记事本打开,快来和小编一起看看吧(这浓浓的营销号味)。代码核心代码就几行,请保存成一个批处理文件 hosts.bat.@echo o

2020-07-30 01:27:34 1684

原创 【分布式】两阶段提交

参考:《数据库系统概念》19.3,19.4概念分布式事务由一个站点发起,多个站点参与。事务必须保证要么在所有站点上都提交,要么在所有站点上都中止。两阶段提交(Two-Phase Commit,2PC)协议是最简单且使用最广泛的提交协议之一。考虑一个例子,站点 S0S_0S0​ 发起了事务 TTT,用 SiS_iSi​ 来表示各个参与执行事务的站点。提交协议当所有 SiS_iSi​ 都通知 S0S_0S0​ 完成了 TTT 的执行时,S0S_0S0​ 启动 2PC2PC2PC 协议。阶段1S

2020-07-27 23:13:33 200

原创 Go 生成并调试核心转储文件

Go 生成并调试核心转储文件前言注意:我的 wsl 生成不了 core 文件,但是在独立的 ubuntu 系统上可以测试代码panic.gopackage mainimport "fmt"func main() { A() fmt.Println("qwq")}func A() { fmt.Println("qaq") panic("quq")}流程# 此时仅...

2020-05-08 15:01:28 360

原创 【笔记】ubuntu mysql 无法进入的解决方法

ubuntu mysql 无法进入的解决方法在 mysql 登陆上遇到了无数次问题,每次解决完就忘了,好恶心,记录一下。我的版本查看自己的系统版本和 mysql 版本lsb_release -amysql --version我的系统是 ubuntu 18.04,MySQL 版本是 5.7.29,版本如果不同请适当参考.忘记密码参考 https://www.cnblogs.com...

2020-04-14 11:44:40 730

原创 【笔记】vim 学习笔记

vim 学习笔记前言一个基本的能力,学会备用。参考链接:Linux vi/vim | 菜鸟教程,个人认为写的很好,循序渐进。基本模式介绍vim 分为三种模式:命令模式 command,输入模式 insert,以及底线模式 last line.命令模式打开 vim 后自动进入命令模式。此时敲击键盘会被识别为命令而非字符。常用的几个命令:i,切换到输入模式,可以输入字符。:,切...

2020-03-31 00:47:09 203

原创 【笔记】WSL Ubuntu 安装手记

Windows 子系统 Ubuntu 安装手记前言之前安装了双系统,见 windows10+ubuntu 双系统安装手记, ubuntu更改手记。用了一段时间之后,发现纯 ubuntu 并不如想象中的那么美好,有很多东西都得切回 windows 来使用,而两者切换就必须重启电脑,很麻烦,所以考虑一下双系统。最好的教程当然是官网文档 适用于 Linux 的 Windows 子系统文档。这篇博...

2020-03-30 23:23:40 357

windows 系统下一键打开 hosts 文件的小工具及代码

windows 系统下直接打开 hosts 文件的小工具及代码,示例及原理见文章 https://littlefall.blog.csdn.net/article/details/107679635

2020-07-30

基于注解的MyBatis使用实例

MyBatis 是一款优秀的持久层框架,可以很方便的在java中实现对数据库的操作。 MyBatis 可以将sql语句映射为java接口函数,直接对实体进行操作。 MyBatis 的映射类(Mapper)在映射sql语句时有两种方式,一种是xml映射,功能强大;另一种是java注解,书写简便。 博文链接:https://blog.csdn.net/m0_37809890/article/details/88381897

2019-03-10

MapReduce: Simplified Data Processing on Large Clusters 英文原文

这是谷歌三大论文之一的 MapReduce: Simplified Data Processing on Large Clusters 英文原文。我的翻译可以见https://blog.csdn.net/m0_37809890/article/details/87830686

2019-02-20

2019美赛D题-参考代码

元胞自动机模拟多出口疏散模型的matlab实现,见https://blog.csdn.net/m0_37809890/article/details/86652211; 多源多汇扩散模型的按时间分层最大流算法,见https://blog.csdn.net/m0_37809890/article/details/86668097; Project目录下一共有6个文件夹,其中test文件夹中的代码并非我们原创,是我们用来学习与参考的代码,原链接见https://wenku.baidu.com/view/78ad680d0812a21614791711cc7931b765ce7bad.html. zht文件夹下存放着“多源多汇扩散模型的按时间分层最大流算法”相关内容,这个算法由甄昊天原创,我来实现。 floor1和floors文件下是元胞自动机模型的相关内容,分别对应一层地图和多层地图,主要由我和我的数模队友徐福冬,伊小蝶制作。 其它文件夹是数模比赛中的一些画图过程等。

2019-01-31

MSVC编译器

不用装Visual Studio也能用的VS C++编译器。 原文链接https://blog.csdn.net/m0_37809890/article/details/85103109

2018-12-19

C++ 命令行小游戏 节奏大师(别踩白块) 源码+程序

C++命令行小游戏:节奏大师(别踩白块)。 可以选歌,目前支持的有:1.两只老虎,2.两只老虎无尽版。 开始游戏后*号会从右边不断出现并往左边移动,在到达最左端时变为#号,这个时候需要对应地按下数字1,2,3,4键来命中它们。 如果成功命中,就会播放一声《两只老虎》里的旋律,游戏继续。 如果按了错误的键或者没有按键,游戏就会结束。 游戏有计分功能,击中一个音乐块算一分,还有记录最高分的功能,而且可以通关(除了无尽模式)。 详细介绍的博客地址 https://blog.csdn.net/m0_37809890/article/details/84602634

2018-11-29

空空如也

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

TA关注的人

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