c/c++ 多线程 std::once
多线程 std::once
转自:https: blog.csdn.net/hengyunabc/article/detail 33031465
std::once的特点:即使有多个线程要访问同一个函数,只有一个线程会成功。
std::once的用途:当某个数据只有在初始化的时候需要线程安全的时候...[2018/11/6]
cf449D. Jzzhu and Numbers(容斥原理 高维前缀和)
题意
题目链接
给出\(n\)个数,问任意选几个数,它们\(\&\)起来等于\(0\)的方案数
Sol
正解居然是容斥原理Orz,然而本蒟蒻完全想不到。。
考虑每一种方案
答案=任意一种方案 - 至少有\(1\)位为\(1\)的方案 + 至少有两位为\(1\)的方案 - 至少有三位...[2018/11/6]
[学习笔记]SiftGPU入门
当有读者看到我这篇SiftGPU入门的学习笔记时,相信你已经读过了高博那篇《SLAM拾萃:SiftGPU》,那篇文章写于16年,已经过去两年的时间。在我尝试配置SiftGPU的环境时,遇到了几个问题,在网络上也少有较为系统的关于SiftGPU的介绍,因此觉得有必要记录下来,以便同样对此感兴趣的同学...[2018/11/6]
GNU编译器学习 --> 如何链接外部库【Linking with external libraries】
库也就是我们常说的library,一个库是若干个已经编译过的目标文件(.obj)的集合,它可以被链接到程序里。那么我们最常见的使用就是,我们在编程时会调用一些函数,这些函数别人已经写好了,它就放在库里面。比如C的数学库里的sqrt开根号函数,这个函数在libm.a里。
库通常存放在专门的档文件里...[2018/11/6]
[Algorithm] 2. Trailing Zeros
Description
Write an algorithm which computes the number of trailing zeros in n factorial.
Example
11! = 39916800, so the out should be 2
C...[2018/11/6]
调用当前年月日
直接显示当前时间:
1 #include <iostream>
2 #include <ctime>
3 using namespace std;
4 int main()
5 {
6 time_t now = time(0);
7 char *dt =...[2018/11/6]
【志银】NYOJ《题目490》翻译
1.题目:翻译
1.1.题目链接:http: acm.nyist.edu.cn/JudgeOnline/problem.php?pid=490
1.2.题目内容
2.解题分析
题目输入输出格式描述不清晰。
2.1.分析(1)
所有数据都完成输入,然后再输出(解法1,内存可...[2018/11/6]
珂朵莉树(Chtholly Tree)学习笔记
珂朵莉树(Chtholly Tree)学习笔记
珂朵莉树原理
其原理在于运用一颗树(set,treap,splay......)其中要求所有元素有序,并且支持基本的操作(删除,添加,查找......)来实现区间压缩。
那么区间压缩的意义在于区间推平这是珂朵莉树的核心(如果没有这个操作实际上不一...[2018/11/6]
从题解中学算法
原发表自:https: blog.csdn.net/ESAzl/article/detail 82951696(已停更,转入博客园更新)
对于蒟蒻来讲,每道题都看不懂就只能看题解,但是题解也看不懂怎么办呢……
这篇主要记录我遇上(感觉遇上有丶违和)的非常棒的题解,比如跳石头的介绍二分答案的题解...[2018/11/6]
SPOJTLE - Time Limit Exceeded(高位前缀和)SPOJTLE - Time Limit Exceeded(高位前缀和)
题意
题目链接
题目的意思是给一个数组C,长度为n,每个数字的范围是2^m,然后要求构造一个数组a,满足
1、a[i] % C[i] !=0 ;
2、a[i] < 2^m ;
3、a[i] & a[i+1] = 0;
Sol
直接dp的话就是先枚举补集的子集...[2018/11/6]
解析·NOIP·冷门 CLZ最小环
赐予我力量,去改变我所能改变的;赐予我勇气,去接受我不能改变的;并赐予我智慧,去分辨这两者。
-----安东尼达斯
NOIP的图论题中有一部分是跟图上的环有关的。蒟蒻的我在USACO上刷题时发现了一种(或许)还没有普及的快速最小环算法,拥有极高的效率,可以在求最短路的时间复杂度内求出经过任意...[2018/11/6]
c/c++ 多线程 层级锁
多线程 层级锁
当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个。同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...)
但是,有的时候,并不能同时得到所有要锁定的锁,必须是先锁定某个后,再锁定其他的,这种情况就不能使用std::lock函数了...[2018/11/6]
c/c++ 多线程 unique_lock的使用c/c++ 多线程 unique_lock的使用
多线程 unique_lock的使用
unique_lock的特点:
1,灵活。可以在创建unique_lock的实例时,不锁,然后手动调用lock_a.lock()函数,或者std::lock(lock_a, …),来上锁。当unique_lock的实例被析构时,会自动调用unlock函数,释放锁...[2018/11/6]
C++ Primer 3rd Edition 中文版
本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。本版对前一版进行了彻底的修订,内容经过了重新组织,更加入了C++ 先驱Barba...[2018/11/5]
c++模板参数——数值类型推断
模板类中,或模板函数中,若限定模板参数为数值类型,可以使用如下方式进行判断.
1 template<typename T>
2 Fmt::Fmt(const char *fmt, T val)
3 {
4 static_a ert(std::is_arithmetic<...[2018/11/5]
cf1037E. Trips(图论 set)cf1037E. Trips(图论 set)
题意
题目链接
Sol
倒着考虑!倒着考虑!倒着考虑!
显然,一个能成为答案的子图一定满足,其中任意节点的度数\(>= k\)
那么倒着维护就只用考虑删除操作,如果一个点不合法的话就把它删掉,然后考虑与他相邻的点
如果不合法就继续删
#include<bit tdc++.h&...[2018/11/5]
洛谷11月月赛题解(A-C)
心路历程
辣鸡T3卡我1.5h题意,要不是最后nlh跟我解释了一下大样例估计这次是真凉透了。。
A P4994 终于结束的起点
打出暴力来发现跑的过最大数据??
保险起见还是去oeis了一波,然后被告知第一个满足条件的位置不会超过\(2n +2\)
赢了
#include<bit t...[2018/11/5]
C++操作MYSQL遇到的一些问题
首先 我使用的是 vcpkg<不知道的可以进行百度 可以剧透一下,这个对Visual Studio使用一些C++的轮子太方便了,
上面是我装的一些库《大大安利vcpkg 一定要使用poweshell进行编译
装上vcpkg后装ligmariadb这个库,这个对Mysql操...[2018/11/5]
师徒恋大法好师徒恋大法好
有了STL,不必再从头写大多的标准数据结构和算法,并且可获得非常高的性能。(如果没有氧气,最好不要用vector,deque,set,multiset,map,string)。
废话不多说,让我们一起看看STL到底有多好用。
1.vector
可变长度的数组。(可节省空间)
常用操作:
#...[2018/11/5]
OpenCV操作像素
在了解了图像的基础知识和OpenCV的基础知识和操作以后,接下来我们要做的就对像素进行操作,我们知道了图像的本质就是一个矩阵,那么一个矩阵中存储了那么多的像素,我们如何来操作呢?下面通过几个例子来看看像素的操作。
这个是原图,接下来的例子都是对这个图片进行操作的。
访问像素出现雪花效果
我...[2018/11/5]
CCF-NOIP-2018 提高组(复赛) 模拟试题(七)
T1 Adjoin
【问题描述】
定义一种合法的\(0-1\)串:串中任何一个数字都与\(1\)相邻。例如长度为$ 3 的 0-1 $串中,\(101\)是非法的,因为两边的\(1\)没有相邻的\(1,011\)是合法的,因为三个数都有\(1\)相邻。现在问,长度为\(N\)的\(0-1\)中有多...[2018/11/3]
洛谷P3960 列队(动态开节点线段树)
题意
题目链接
Sol
看不懂splay。。,看不懂树状数组。。。
只会暴力动态开节点线段树
观察之后不难发现,我们对于行和列需要支持的操作都是相同的:找到第\(k\)大的元素并删除,在末尾插入一个元素
这样我们可以维护\(n+1\)棵线段树(对列单独建一棵)
每次操作的时候,如果\(y...[2018/11/3]
字符与数字的转换:sprintf和sscanf
目录
字符与数字的转换:sprintf和 canf
简单介绍
实例
运行结果
字符与数字的转换:sprintf和 canf
简单介绍
sprintf和 canf都是stdio.h头文件中的函数,请大家放心使用~
其中,sprintf可以将任意数字包括小数点(.)和负号(-)转换成字符串...[2018/11/3]
[Algorithm] 1. A+B Problem
Description
Write a function that add two numbers A and B.
Clarification
Are a and b both 32-bit integers?
Yes.
Can I use bit ...[2018/11/3]
Accelerated C++中文版
《Accelerated C++ 中文版通过示例进行编程实践》系统介绍C++程序设计,是美国斯坦福大学的经典教材。从使用C++标准库中的高级抽象开始,使读者很快掌握编程方法。每一章都有很经典独特的例子以及非常到位的讲解,覆盖了C++更多领域的内容,从标准库容器、泛型算法的使用,到类的设计、泛型算法...[2018/11/3]
muduo-ThreadLocal实现细节——阻止销毁未定义对象muduo-ThreadLocal实现细节——阻止销毁未定义对象
muduo利用pthread_key_t实现ThreadLocal模板类.
具体代码如下所示:
1 template<typename T>
2 cla ThreadLocal : noncopyable
3 {
4 public:
5...[2018/11/2]
C++雾中风景番外篇2:Gtest 与 Gmock,聊聊C++的单元测试C++雾中风景番外篇2:Gtest 与 Gmock,聊聊C++的单元测试
正式工作之后,公司对于单元测试要求比较严格。(笔者之前比较懒,一般很少写完整的单测~~)。作为一个合格的开发工程师,需要为所编写代码编写适量的单元测试是十分必要的,在实际进行的开发工作之中,TDD(Test drivern development) 是一种经过实践可行的开发方式。编写单元测试可以...[2018/11/2]
11.1NOIP模拟赛解题报告
心路历程
预计得分:\(100 + 100 + 50\)
实际得分:\(100 + 100 + 50\)
感觉老师找的题有点水呀。
上来看T1,woc?裸的等比数列求和?然而我不会公式呀。。感觉要凉
T2应该比较简单,T3 dp能拿很多部分分。
但是T1只打暴力感觉好丢人啊。。想了10m...[2018/11/2]
CCF-NOIP-2018 提高组(复赛) 模拟试题(五)
T1 相遇
【问题描述】
在一场奇怪的梦里,小 Y 来到了一个神奇的国度。这个国度可以用一根数轴表示,小 Y 在 N 处,而小 Y 想吃的美食在 K 处。小 Y 有两种方式移动, 一种叫做步行, 一种叫做瞬移。 对于每次步行操作,小 Y 可以从$ x $移动到 \(x + 1\) 或者 \(x –...[2018/11/2]
c/c++ 多线程 thread_local 类型
多线程 thread_local 类型
thread_local变量是C++ 11新引入的一种存储类型。
thread_local关键字修饰的变量具有线程周期(thread duration),
这些变量(或者说对象)在线程开始的时候被生成(allocated),
在线程结束的时候被销毁(deal...[2018/11/2]
while(n--)
while(n--)的意思:先判断n是否等于0,如果等于0,就不循环。如果不等于0,就进入循环,同时n的值减1.一直等到n=0才退出while循环。
C语言、C++[2018/11/1]
洛谷P3953 逛公园(dp 拓扑排序)
题意
题目链接
Sol
去年考NOIP的时候我好像连最短路计数都不会啊qwq。。
首先不难想到一个思路,\(f[i][j]\)表示到第\(i\)个节点,与最短路之差长度为\(j\)的路径的方案数
首先把每个节点的最短路求出来
转移的时候按拓扑序(也就是按距离从小到大排序)转移一下
然而有...[2018/11/1]
CCF-NOIP-2018 提高组(复赛) 模拟试题(四)CCF-NOIP-2018 提高组(复赛) 模拟试题(四)
T1 贪吃蛇
【问题描述】
贪吃蛇是一个好玩的游戏。在本题中,你需要对这个游戏进行模拟。
这个游戏在一个 \(n\) 行 \(m\) 列的二维棋盘上进行。 我们用 \((x, y)\) 来表示第 \(x\) 行第 \(y\) 列的格子,那么左上角为 \((1, 1)\),右下角为 \((n, m...[2018/11/1]
C++中的初始化列表C++中的初始化列表
C++11扩大了列表初始化的适用范围,使其可以用于所有内置类型和用户定义的类型(即类对象)。
1、当列表初始化用于内置类型的变量时,这种初始化形式有一个重要的特点:如果我们使用列表初始化且初始化值存在丢失信息的风险,则编译器将报错。也就是说在使用列表初始化时编译器将禁止将变量类型进行缩窄转换,即...[2018/11/1]
C++基础学习一(基础之基础)
开篇:做了这么多年的软件,第一次使用博客的方式记录学习过程,之前都是笔记本(都有一摞了),因为之前一直从事的都是.NET的开发工作,对C++知之甚少,但一直想了解C++这门鼻祖级的语言,现在终于下定决心、腾出时间,系统的学习一下,因为有了丰富的编程经验,所以不再记录安装编程环境之类的事项直接进行编...[2018/11/1]
c/c++ 多线程 std::lock
多线程 std::lock
当要同时操作2个对象时,就需要同时锁定这2个对象,而不是先锁定一个,然后再锁定另一个。同时锁定多个对象的方法:std::lock(对象1.锁,对象2.锁...)
额外说明:lock_guard<mutex> lock_a(d1.m, std::adopt_l...[2018/11/1]
c/c++ 多线程 绕过mutex的保护
多线程 绕过mutex的保护
mutex,能够解决线程安全的问题,但它不是万能的。下面的例子虽然使用了mutex,但是恶意注入了一个外部函数,导致把被mutex保护的双向链表,让一个外部的指针指向了,结果就可以通过这个外部的指针操作被保护的双向链表,也就绕过了metex的保护。
例子:
#inc...[2018/10/31]
dp算法之平安果路径问题c++
前文:https: www.cnblogs.com/ljy1227476113/p/9563101.html
在此基础上更新了可以看到行走路径的代码。
代码:
1 #include <iostream>
2 using namespace std;
3 int ivec[...[2018/10/31]
CCF-NOIP-2018 提高组(复赛) 模拟试题(三)
T1 取球游戏
问题描述
现有\(N\)个小球,依次编号为\(1\)到\(N\),这些小球除了编号以外没有任何区别。从这\(N\)个小球中取出\(M\)个,请问有多少种取球方案使得在取出的\(M\)个小球中,编号最小的小球的编号为\(K\)。
考虑到方案数可能很大,请输出方案数对\(1e9+7\)...[2018/10/31]
解析·优化 ZKW线段树
德鲁伊!大自然已经听命于我了!
死亡之翼长子奈法利安
ZKW天下第一!
摘自某群聊天记录
ZKW线段树,即非递归形式的线段树,出自终极大犇ZKW的论文《统计的力量》。与普通的线段树相比,ZKW线段树由于是非递归形式,效率极高,代码也极短,成为了OI比赛中极为实用的优化算法之一。虽然ZK...[2018/10/31]
基于OpenSSL的HTTPS通信C++实现基于OpenSSL的HTTPS通信C++实现
??HTTPS是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。Nebula是一个为开发者提供一个快速开发高并发网络服务程序或搭建高并发分布式服务集群的高性能事件驱动网络框架。Nebula作为通用网络框架...[2018/10/31]
洛谷P3952 时间复杂度(模拟)
题意
题目链接
Sol
咕了一年的题解。。就是个模拟吧
考场上写的递归也是醉了。。。
感觉一年自己进步了不少啊。。面向数据编程的能力提高了不少
#include<bit tdc++.h>
#define fi first
#define se second
#define M...[2018/10/31]
c/c++ 多线程 mutex的理解
多线程 mutex的理解
mutex,我的理解是每个mutex对象都是一个带锁头的门,这个门有两个状态,门开着和门关着,感觉像是废话。。。
当想查看门的里东西,或者把东西放进门里,或者从门里拿出东西前,都需要看看,门是否是打开的。
如果门是打开的,就要进去后赶紧把门关上。关上后,就可以查看屋子里的...[2018/10/31]
MFC桌面电子时钟的设计与实现MFC桌面电子时钟的设计与实现
目录
核心技术
需求分析
程序设计
程序展示
(一)核心技术
MFC(Micosoft Foundation Cla Libay,微基础类库)是微基于Windows平台下的C++类库集合,MFC包含了所有与系统相关的类,其中封装了大多数的API(Application Poga...[2018/10/30]
【PAT】A1002 A+B for Polynomials
简单的模拟问题,按照题意一步一步写就好
只要stl用的熟练,这道题非常简单,实在不建议用纯C,这道题就是一个好例子。
#include<stdio.h>
#include<iostream>
#include<set>
using namespace std...[2018/10/30]
cf1043C. Smallest Word(贪心)
题意
题目链接
Sol
这题打cf的时候真的是脑残,自己造了个abcdad的数据开心的玩了半天一脸懵逼。。。最后还好ycr大佬给了个思路不然就凉透了。。。
首先不难看出我们最后一定可以把字符串弄成\(aaaabbb\)的形式,若当前位和下一位不一样就直接转就行了
注意特判一下最后一个位置
...[2018/10/30]
cf1043D. Mysterious Crime(二分 前缀和)
题意
题目链接
Sol
考场上做完前四题的时候大概还剩半个小时吧,那时候已经困的不行了。
看了看E发现好像很可做??
又仔细看了几眼发现这不是sb题么。。。
先考虑两个人,假设贡献分别为\((x, y) (a, b)\)
有两种组合方式,一种是\(x + b\),另一种是\(y + a\...[2018/10/30]
cf1043F. Make It One(dp 容斥原理)
题意
题目链接
给出\(n\)个数,问最少选几个数,使他们的\(gcd = 1\)
Sol
好神仙啊qwq。
首先,如果答案存在,那么最多为\(7\)(因为前\(7\)个质数乘起来\(>= 3e5\))
考虑dp,设\(f[i][j]\)表示选了\(i\)个数,他们\(gcd = j...[2018/10/30]
洛谷P2831 愤怒的小鸟(状压dp)洛谷P2831 愤怒的小鸟(状压dp)
题意
题目链接
Sol
这题。。。。我样例没过就A了??。。算了,就当是样例卡精度吧。。
直接状压dp一下,\(f[sta]\)表示干掉\(sta\)这个集合里面的鸟的最小操作数
转移的时候判断一下一次能干掉多少鸟。。
#include<bit tdc++.h>
#defin...[2018/10/29]
洛谷P1072 Hankson 的趣味题(数学)洛谷P1072 Hankson 的趣味题(数学)
题意
题目链接
Sol
充满套路的数学题。。
如果你学过莫比乌斯反演的话不难得到两个等式
\[gcd(\frac{x}{a_1}, \frac{a_0}{a_1}) = 1\]
\[gcd(\frac{b_1}{b_0}, \frac{b_1}{x}) = 1\]
然后枚举\(b_1\)...[2018/10/29]