自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 muduo 笔记

文章目录base库copyable、noncopyableAtomicTimestampDateMutexConditionCountDownLatchThreadCurrentThreadExceptionBlockingQueueStringPieceLogStreamLoggingnet库EndianInetAddressSocketsOpsSocketChannelPollerEventLoopTimerQueueAcceptorTcpConnectionConnectorBufferTcpServ

2020-05-09 18:22:26 94 1

原创 树莓派装机必备

树莓派装机必备文章目录树莓派装机必备1. vim简单配置2. 配置代理3. 安装v2..4. 配置ssh key5. 安装Boost库6. 配置局域网打印机6.1 安装CUPS6.2 安装打印机驱动6.3 Windows添加打印机7. 自动挂载硬盘8. Samba共享文件夹1. vim简单配置# 安装vimapt install cupsset nu# 添加配置文件sudo vim...

2020-04-19 20:41:46 110

原创 muduo学习笔记 日志类

learn_muduoLoggerLogger有六个日志等级TRACEDEBUGINFOWARNERRORFATAL日志的输出语句是通过宏定义完成,编译期完成宏定义替换,创建Logger的临时对象。#define LOG_TRACE if (muduo::Logger::logLevel() <= muduo::Logger::TRACE) \ muduo::Log...

2020-04-04 15:55:37 72

原创 muduo学习笔记 线程类

muduo学习笔记 Thread执行过程线程属性线程标识 pthreadId_,pid_t线程函数 func_线程名字 name_线程序号 numCreated_bool started_; // 线程状态标识bool joined_;pthread_t pthreadId_; // pthread_函数使用pid_t tid_; // 线程标识...

2020-04-02 17:37:24 56

原创 字节序

字节序数据存储有两种方式:大端字节序和小端字节序网络序采用大端,本地存储采用小端大端字节序:数据的高位在地址的低位,从左到右(符合人读数的习惯)小端字节序:数据的高位在地址的高位,从右向左#include <endian.h>(无符号)64字节主机转网络:htobe64(uint64_t data)(无符号)64字节网络转主机:be64toh(uint6...

2020-03-11 16:37:33 62

原创 __thread

__thread__thread修饰的变量,在每个线程中都有一份独立实体,每个线程互不干扰,可以修饰全局性且值可能改变的变量#include <iostream>#include <pthread.h>#include <unistd.h>using namespace std;// static __thread int i = 1; // 修饰s...

2020-03-06 12:05:16 36

原创 boost::function/bind

boost::function/bindboost::function头文件:<boost/function.hpp>boost::function是一个函数模板,可以代替具有相同返回类型,相同参数和相同参数个数的不同函数,和函数指针有些类似,用于封装函数,定义之后可以多次调用// 简单的例子typedef boost::function<int(int ,int)&g...

2020-03-05 10:44:35 48

原创 函数指针

函数指针函数指针指向函数的地址函数指针的定义:函数返回值类型 (* 指针指针变量名) (函数参数列表)# 定义一个指向一个返回值为int,参数为(int,int)的函数指针pint (*p)(int, int)int Max(int a, int b) { return a > b ? a : b;}int main() { int (*p)(int, int); //...

2020-03-04 22:02:19 37

原创 kali 设置中文字体

kali设置中文字体# 安装中文字体sudo apt-get install ttf-wqy-zenhei# 设置系统配置sudo dpkg-reconfigure locales重启系统即可…

2020-03-02 23:09:07 889

原创 muduo学习笔记 - 第五章 高效的多线程日志

第五章 高效的多线程日志日志有两种意思:诊断日志交易日志本章讲的是前一种日志,文本的供人阅读的日志,通常用于故障诊断和追踪,也可用于性能分析。日志通常要记录:收到的每条消息的id(关键字段,长度,hash等)收到的每条外部消息的全文发出每条消息的全文,每条消息都有全局唯一的id关键部分状态的变更,等等5.1 功能需求日志库大...

2020-03-02 19:07:00 28

原创 Windows桌面任务栏透明化

Windows桌面任务栏透明化TranslucentTB微软商店可以下载

2020-03-02 09:05:51 180

原创 muduo学习笔记 - 第4章 C++多线程系统编程精要

第4章 C++多线程系统编程精要Pthreads只保证统一进程之内,同一时刻的各个线程的id不同,不能保证同一进程先后多个进程具有不同的id,更不要说一台机器上多个进程之间的id唯一性,pthread_t不适合用做程序对线程的标识符。推荐使用**gettid()**的返回值作为线程id返回值类型pid_t,通常是小整数,便于在日志输出可以在/proc文件系统中找到对应项,/pro...

2020-03-01 20:33:42 96

原创 muduo学习笔记 - 第3章 多线程服务器的适合场合与常用编程模型

第3章 多线程服务器的适合场合与常用编程模型3.1 基本概念同步和异步针对程序和内核的交互同步:用户进程触发IO操作,等待或轮询的查看IO是否就绪异步:用户进程触发IO操作,继续做自己的事情,当IO操作完成通知进程阻塞和非阻塞针对进程在访问数据,更具IO的状态采取不同的方式阻塞:数据的读写会一直等待非阻塞:数据的读写会立即返回状态值IO模型同步阻...

2020-03-01 19:42:36 62

原创 muduo学习笔记 - 第2章 线程同步精要

第2章 线程同步精要2.1 互斥器 (mutex)互斥器保护了临界区,任何时刻最多只能有一个线程在mutex划出的临界区内活动推荐使用原则:用RAII手法封装mutex的创建、销毁、加锁、解锁四个操作只是用非递归的mutex (不可重入的mutex)不手动调用lock()和unlock()函数,交给栈上的Guard对象的构造和析构负责使用Guard对象时考虑调用栈上持有的锁,防止加...

2020-03-01 19:41:36 213

原创 muduo学习笔记 - 第1章 C++多线程系统编程

第1章 C++多线程系统编程1.1 智能指针C++中动态内存管理是用new和delete完成。动态内存管理经常出现两种问题:忘记释放内存造成内存泄露还有指针引用的内存的情况下释放内存,造成引用非法内存指针智能指针负责自动释放所指向的对象1.2 构造函数如何判断构造函数的执行结果?构造没有返回值不能通过返回值判断状态量,抛出异常?条件判断,例如构造函数的功能,如果涉及内...

2020-03-01 19:38:47 47

原创 explicit关键字

explicit关键字explicit关键字用于修饰只有一个参数的类构造函数,explicit是显式,对应的implicit是隐式的。默认的类构造函数是隐式的。class A {public: A(int x) { // 默认隐式构造 this->x = x; } int x;};A a = 10; // 正确 /* 等价于: A a(10); A temp...

2020-02-29 10:38:16 41

原创 BZOJ-3473 (广义后缀自动机:拓扑 or 启发式合并)

BZOJ-3473 (广义后缀自动机:拓扑 or 启发式合并)题目链接题意nnn个字符串,询问每个字符串一共有几个子串至少出现在nnn个字符串中的kkk个思路: 拓扑建广义后缀自动机, dp[i]dp[i]dp[i]记录每个节点表示符合条件的数量,按照拓扑序更新dpdpdp,然后跑这nnn个串计算答案思路: 启发式合并set记录每个节点在那几个串中出现过,在parentparentp...

2019-11-01 22:14:21 56

原创 牛客-139 I. Substring(后缀数组 or 后缀自动机)

牛客-139 I. Substring(后缀数组 or 后缀自动机)题目链接题意一个由{a,b,c}\{a, b, c\}{a,b,c}组成的字符串SSS,求S子串的最大的集合,使得集合里的字符串互不同构思路一:后缀数组一共有3种字符,所以一共有6中映射关系,首先将字符串转化为6个同构的字符串.然后求这个字符串一共有多少个不同的字符串非连续的子串"aabaabaab",与他同构的有6...

2019-11-01 18:13:38 66

原创 BZOJ-2780 Sevenk Love Oimaster(广义后缀自动机)

BZOJ-2780 Sevenk Love Oimaster(广义后缀自动机)题目链接题意给出n个字符串,询问m个串一共出现在几个字符串中.题解广义后缀自动机板子题将n个串建在一起,每次插入新的字符串时回到根节点字符串如果出现在另一个字符串中,一定可以在后缀自动机上匹配到,而且在后缀自动机中就是一个前缀的后缀即一个节点的后缀(slink)建完广义后缀自动机之后,把n个串出现的节点标...

2019-10-31 21:46:11 33

原创 CF-1207 F. Remainder Problem(分块)

CF-1207 F. Remainder Problem(分块)题目链接题意一共5e5个数字,两种操作:1 x y , a[x] += y2 x y , $\sum\limits_{i\in{n}}{a_i}, n\in{[1, 5e5]}, n % x = y $思路分块5e5=707\sqrt{5e5} = 7075e5​=707模数大于707的数字暴力求,复杂...

2019-10-31 16:29:22 62

原创 CF-346 D. Robot Control(反向建图spfa)

CF-346 D. Robot Control(反向建图spfa)题目链接题意有向图(有环)中有一个机器人,机器人有三种规则:重复访问同一个点会自我销毁无路可走会自我销毁多岔路口会随机选择为了让机器人安全的从SSS到TTT,可以在多岔路口制定它的方向来避免情况1,2的发生,求最少需要指定方向几次思路有一个转移方程:对于点uuu和它所有的出边vvv,dp[u]dp[u]dp[...

2019-10-24 22:55:50 44

原创 CF-1249 F.Maximum Weight Subset(贪心)

CF-1249 F.Maximum Weight Subset(贪心)题目链接题意在一棵树上选一些点构成一个集合,满足集合内任意两点的距离大于kkk,求集合的最大权值和思路一共200个点,可以从最低层的点uuu开始,默认选择这个点,然后将它距离kkk的点权值减小val[u]val[u]val[u]表示这些点不选.这样向上找的时候如果碰到权值为正的点,表示选择这个点的权值更优,同时不会影...

2019-10-24 15:40:55 137

原创 CF-1209 F. Koala and Notebook(建图BFS)

CF-1209 F. Koala and Notebook(建图BFS)题目链接题意n个城市m个双向边,从点1可以到达任何点,把点1到到其他点所经过的边写成一行可以得到一个大数,你的任务使得这个数字尽可能的小.思路例如第i条边是u->v,把这条边拆成u->i_1->i_2->…->i_n->v然后bfs:对于相同状态的点依次从小数[0-9]扩展,扩展...

2019-10-21 23:20:25 58

原创 CF-557 E. Ann and Half-Palindrome(暴力Trie)

CF-557 E. Ann and Half-Palindrome(暴力Trie)题目链接题意给定一个字符串,求第K个半回文子串.半回文串:对于字符串SSS, $S_i == S_{n-i+1} ,,,i\in[{1, \frac{|s|+1}{2}]}$思路暴力找所有合法的区间,首先枚举长度iii,ok[l][r]=1ok[l][r] = 1ok[l][r]=1表示区间[l,r]...

2019-10-21 00:18:30 49

原创 CF-241 E.Flights(差分约束)

CF-241 E.Flights(差分约束)题目链接题意n个点m条边,每条边可以赋值为1或2,问能否使所有从1到n的路径值相同思路所有路径和相同,也就是到达每个点的路径和相同首先求出所有在1到n路径上的点对于一条边[u,v][u,v][u,v],$ 1\le dis[v] - dis[u] \le 2 $addedge(u, v, 2)addedge(v, u, -1)然后差分...

2019-10-20 17:24:56 64

原创 CF-196 D.The Next Good String(hash)

CF-196 D.The Next Good String(hash)题目链接题意给一个数字ddd和字符串sss,求字符串ttt满足:sss和ttt等长ttt的字典序大于sss且尽可能小ttt中不包含长度≥d\ge d≥d的回文串思路不包括长度≥d\ge d≥d的回文串,只需检查是否包含长度为ddd和d+1d+1d+1的回文串回文串可以用hash来判断首先求出最小的字典序,...

2019-10-19 22:59:29 69

原创 CF-825 G.Tree Queries(DFS)

CF-825 G.Tree Queries(DFS)题目链接题意一棵树nnn个节点(初始为白色),两种操作:1 xxx 把节点xxx设置为黑色2 xxx 求节点xxx到任意一个黑色节点的简单路径上的最小编号的节点输入ttt和zzz,其中ttt表示操作类型,x=(last+z)%n+1x = (last + z) \% n + 1x=(last+z)%n+1,lastlastlast...

2019-10-19 15:53:43 111

原创 CF-1207 G.Indie Album(Trie上跑AC自动机)

CF-1207 G.Indie Album(Trie上跑AC自动机)题目链接题意nnn个串,串的生成方式有两种:单独一个字符在上一个串的基础上加一个字符qqq个询问,问第iii个串中出现串sss的次数思路离线处理询问,把询问的字符串建AC自动机,并得到failfailfail树对于一个字符串sss出现的次数等于failfailfail书上对应的节点和它所有子节点出现次...

2019-10-19 12:52:31 52

原创 CF-778 C.Peterson Polyglot (Trie合并)

CF-778 C.Peterson Polyglot(Trie合并)题目链接题意给一个TrieTrieTrie树,问删除那一层剩下的节点数最少,输出最小数量的节点数和删除的最小层数删除节点之后,子节点相同的点会合并在一起思路枚举删除每个节点,计算它对这一层的贡献删除的实现是通过合并节点来实现的首先新建节点nownownow表示合并之后的节点,此时需要删除节点xxx即merge(n...

2019-10-17 15:58:32 87

原创 CF-85E.Guard Towers(二分+染色)

CF-85E.Guard Towers(二分+染色)题目链接题意nnn个灯塔分成2分,求出最小的曼哈顿距离和其方案树题意二分+染色二分枚举最小值midmidmid,判断能否将nnn个灯塔分为最大曼哈顿值不超过midmidmid的两份方案数=2联通块个数2^{联通块个数}2联通块个数#include <bits/stdc++.h>const int maxn = 5e3...

2019-10-16 20:17:11 41

原创 CF-1023F.Mobile Phone Network(并查集缩点)

CF-1023F.Mobile Phone Network(并查集缩点)题目链接题意你手里有K条边还没有分配权值,已经存在M条边带权值,如何给你手中的边分配权值,使得K条边都在最后的最小生成树中且最后权值和最大.思路首先将K条边权值设为0求一个最小生成树.对于剩下的边,当且仅当加入这条边形成环上的最小权值为这条边的权值时,才能保证K条边不会被替换同时权值尽可能的大.对剩下的边,优先考...

2019-10-13 21:12:54 71

原创 CF-1147D Palindrome XOR (建图划分等价类)

CF-1147D Palindrome XOR (建图划分等价类)题目链接题意给一个长度为n的01串c(可能存在’?’,表示可以为0或是1)问多少个数对(a,b)满足:$ 1\le a < b<2^n$a,b的二进制都为回文串a ^ b = c思路建图划分等价类枚举a的长度[1, n-1]0:表示两个数字相同1:表示两个数字不同回文串对应的位置建0边按照...

2019-10-11 21:40:20 65

原创 CF-1238E. Keyboard Purchase (状压dp)

CF-1238E. Keyboard Purchase (状压dp)题目链接题意长度nnn的字符串为排成一行,这个字符串由mmm个字符组成,你需要确定一种排列方式使得这个字符串的花费最少.花费=∑i=1n∣possi−possi−1∣\sum\limits_{i=1}^{n}|pos_{s_i} - pos_{s_{i-1}}|i=1∑n​∣possi​​−possi−1​​∣思路状压...

2019-10-10 21:02:22 56

原创 CF-527E(Data Center Drama) 欧拉图+构造

CF-527E(Data Center Drama) 欧拉图+构造题目链接题意nnn个电脑mmm个网线(存在环和重边),你可以添加最少数量的网线并规定他们的方向,使每个点的出度都为偶数并且每个计算机相互连接.输出任意一种方案.思路首先将所有的点补成偶度,考虑到欧拉回路,可以保证所有的计算机相互连接.把欧拉回路想象成简单环, 让偶数编号的点指向两边,可以保证出度为偶数#include ...

2019-09-27 21:49:31 64

原创 CF-567F(President and Roads) DAG必经边

CF-567F(President and Roads)题目链接题意S−>ES->ES−>E的DAGDAGDAG中求:DAGDAGDAG中必经边输出"YESYESYES"DAGDAGDAG中非必经边求这条边最少降低多少可以使这条边变成必经边思路判断必经边可以用方案数判断,对于一条边{u,v}\{u,v\}{u,v},如果way[u]∗rway[v]==w...

2019-09-26 23:31:48 78

原创 CF-477C(Dreamoon and Strings) DP

CF-477C(Dreamoon and Strings)题目链接题意两个串S,TS,TS,T,问SSS中删除[1,∣S∣][1,|S|][1,∣S∣]个字符之后,最多有多少个不重叠的T串思路dpdpdpdp[i][j]dp[i][j]dp[i][j]: 位置iii前删除jjj个字符之后的最大值deldeldel: 表示位置iii前至少删除多少个字符出现串TTTdp[i][j]=...

2019-09-26 20:38:20 35

原创 CF-525E(E. Anya and Cubes) Meet-in-the-Middle

CF-525E(E. Anya and Cubes) Meet-in-the-Middle题目链接题意n(n≤25)n(n \le 25)n(n≤25)个数字 kkk次染色机会.选择一个数字并对它染色贡献为ai!a_i!ai​!,不对它染色贡献为aia_iai​;不选择这个数字贡献为0.求一共有多少种方案在染色不超过kkk次的前提下使得总的贡献为S(S≤1016)S(S \le10^{16...

2019-09-26 19:42:55 48

原创 CF - 741(C. Arpa’s overnight party and Mehrdad’s silent entering) 二分图构造

题目链接题意有N对情侣,每个人都吃一种饭,给出情侣的座位编号.有以下两个要求:情侣之间不能吃相同的饭座位号连续的三个人不能吃同一种饭问是否存在满足的解.思路构造二分图对应情侣的座位建边,保证情侣之间不吃一种饭[2i-1, 2i]建边,保证座位号相邻的3个人不全吃一种饭#include <bits/stdc++.h>const int maxn = 2e5 ...

2019-09-21 22:31:09 39

原创 CF-558E(E. A Simple Task)

CF-558E(E. A Simple Task)题目链接题意长度为NNN的串,给qqq次修改每次修改给出一个区间[L,R][L,R][L,R],你需要将区间的字符按照升序或降序排列.输出qqq次修改的串.思路对于每个区间我们可以用计数排序,这样效率高一点.但如果对于每个询问我们都O(n)O(n)O(n)遍历这样效率有点低,所以可以用线段树维护每个字符在每个位置的状态.对于一个询问先...

2019-09-19 23:53:17 48

原创 CF-786B(Legacy) 区间最短路

题意有三种边[u,v], [u, [L,R]], [[L,R], v],求从S出发到其他所有点的最短路思路线段树维护区间建图#include <bits/stdc++.h>const int maxn = 1e5 + 5;const long long inf = 1e18;const int mod = 1e9 + 7;using namespace std;int...

2019-09-19 17:31:36 62

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