1004 Counting Leaves (30 分)(树的遍历)1004 Counting Leaves (30 分)(树的遍历)
给出一棵树,问每一层各有多少叶子节点
dfs遍历树
#include<bit tdc++.h>
using namespace std;
vector<int>p[150];
int n,m;
int node ,k;
int vis[150];
i...[2018/12/10]
1086 Tree Traversals Again (25 分)(二叉树的遍历)
用栈来模拟一棵二叉树的先序遍历和中序遍历过程,求这棵二叉树的后序遍历
由题棵知道:push是先序遍历
pop是中序遍历
#include...[2018/12/10]
C++ CEF 浏览器中显示 Tooltip(标签中的 title 属性)
在 Windows 中将 CEF 集成到 C++ 客户端以后,默认是无法显示 tooltip 的,比如图片标签中的 title 属性。
实现的方式其实很简单,按下面的步骤操作就可以:
创建一个文本文件,文件名为 app.manifest,内容如下,将这个文件放到源代码文件夹
<?xml ...[2018/12/10]
STL源码分析之第二级配置器
前言
第一级是直接调用malloc分配空间, 调用free释放空间, 第二级三就是建立一个内存池, 小于128字节的申请都直接在内存池申请, 不直接调用malloc和free. 本节分析第二级空间配置器, STL将第二级配置器设置为默认的配置器, 所以只要一次申请的空间不超过128字节就默认在内存...[2018/12/10]
数据结构与算法(3)- C++ STL与java se中的vector数据结构与算法(3)- C++ STL与java se中的vector
声明:虽然本系列博客与具体的编程语言无关。但是本文作者对c++相对比较熟悉,其次是java,所以难免会有视角上的偏差。举例也大多是和这两门语言相关。
上一篇博客概念性的介绍了vector,我们有了大致的印象:vector不过就是看上去可以自增长的数组么。这篇博客将稍微介绍下STL与se中的v...[2018/12/10]
c/c++编程排坑(1)-- 数据类型的“安静”转换c/c++编程排坑(1)-- 数据类型的“安静”转换
这里主要介绍ANSI C的特性:当执行算术运算时,操作数的类型如果不同,就会发生转换。数据类型一般朝着精度更高、长度更长的方向转换,整型数如果转换为signed不会丢失信息,就转换为signed,否则转换为unsigned。
一、算术转换(K&R C)
首先:
任何类型为char或...[2018/12/10]
[C++] 化学方程式的格式化算法[C++] 化学方程式的格式化算法
网上普遍使用的化学方程式的格式普遍如下
例: KMnO4+FeSO4+H2SO4=Fe2(SO4)3+MnSO4+K2SO4+H2O
要把化学方程式格式化,单单一个正则表达式是非常反人类的,故可选用 C++ 实现化学方程式的格式化。
首先,写一个 for 循环,传入字符数组 input[] ...[2018/12/10]
[Splay][学习笔记]
胡扯
因为先学习的treap,而splay与treap中有许多共性,所以会有很多地方不会讲的很细致。关于treap和平衡树可以参考这篇博客
关于splay
splay,又叫伸展树,是一种二叉排序树,它能在O(log n)内完成插入、查找和删除操作。它由Daniel Sleator和Robert Ta...[2018/12/10]
zip相关知识梳理(一)
zip相关知识梳理(一)
经过对zip文件的长时间研究,对zip文件进行相关知识进行梳理,虽然网上很多牛人对其做了相关基础解析,但是对于特殊情况没有进行说明,比如超过4G的zip文件该以什么格式进行编译,现本人对其进行详细讲解。如有不足,欢迎各位大神指点!
一、zip文件格式
zip文件格式:
...[2018/12/10]
(杭电 1097)A hard puzzle - cafu-chino
A hard puzzle
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ion(s): 51690 Accepted Submi ion(s): 18916
...[2018/12/7]
cf1088D. Ehab and another another xor problem(思维)
题意
题目链接
系统中有两个数\((a, b)\),请使用\(62\)以内次询问来确定出\((a, b)\)
每次可以询问两个数\((c, d)\)
若\(a \oplus c > b \oplus d\)返回\(1\)
若\(a \oplus c = b \oplus d\)返回\...[2018/12/7]
cfE. Ehab and a component choosing problem(贪心)
题意
题目链接
给出一棵树,每个节点有权值,选出\(k\)个联通块,最大化
\[\frac{\sum_{i \in S} a_i}{k}\]
Sol
结论:选出的\(k\)个联通块的大小是一样的且都等于最大联通块的大小
证明:因为我们是在保证分数最大的情况下才去最大化\(k\),一个很经典...[2018/12/7]
BZOJ4602: [Sdoi2016]齿轮(并查集 启发式合并)
题意
题目链接
Sol
和cc的一道题很像啊
对于初始的\(N\)个点,每加一条限制实际上就是合并了两个联通块。
那么我们预处理出\(val[i]\)表示的是\(i\)节点所在的联通块根节点转了\(1\)圈,该节点会转多少圈
并查集维护联通性以及联通块大小,直接启发式合并就可以了
跑的好...[2018/12/7]
BZOJ4513: [Sdoi2016]储能表(数位dp)
题意
题目链接
Sol
一点思路都没有,只会暴力,没想到标算是数位dp??Orz
首先答案可以分成两部分来统计
设
\[
f_{i,j}=
\begin{aligned}
i\oplus j &\left( i\oplus j >k\right) \\
0 ...[2018/12/7]
BZOJ4650: [Noi2016]优秀的拆分(hash 调和级数)
题意
题目链接
Sol
NOI的题都这么良心么。。
先交个\(n^4\)暴力 => 75
hash优化一下 => 90
然后\(90\)到\(100\)分之间至少差了\(10\)难度台阶= =
\(90\)分的暴力hash就比较trival了。
考虑怎么优化。 显然我们只要...[2018/12/7]
BZOJ4598: [Sdoi2016]模式字符串(点分治 hash)
题意
题目链接
Sol
直接考虑点分治+hash匹配
设\(up[i]\)表示\(dep \% M = i\)的从下往上恰好与前\(i\)位匹配的个数
\(down\)表示\(dep \% M = i\)的从上往下恰好与后\(i\)位匹配的个数
暴力转移即可
复杂度:\(O(nlog^2...[2018/12/7]
设置PNG图片DPI 信息,保存为PDF(使用Magick),与OpenCV转换
目录
任务描述
解决方案
Magick++
Talk is cheap, show me the code.
与 Opencv 配合
相关链接
任务描述
我有这样一个需求,读取一张格式为PNG 或者 Jpeg 的图片, 保存为可以可以直接打印的大小,要求编为一个小程序。因为通常情况下图像大...[2018/12/7]
BZOJ5462: [APIO2018] 新家(K-D Tree)
题意
题目链接
Sol
下面是错误做法,正解请看这里
考虑直接用K-D tree模拟。。
刚开始想的是维护矩形最大最小值,以及子树中最大圆的位置,然后。。。
实际上最大圆的位置是不用维护的,直接把原序列排一遍序就可以了
再努力卡卡常就过了
如果还过不了的话可以尝试把所有点都转一个角...[2018/12/7]
【C++并发实战】(二)线程管理
本篇主要讲述线程的管理,主要包括创建和使用线程
启动线程
线程出现是为了执行任务,线程创建时会给一个入口函数,当这个函数返回时,该线程就会退出,最常见的main()函数就是主线程的入口函数,在main()函数返回时主线程就结束了。 如何启动一个线程呢?就如上所述,需要给线程对象一个入口函数。
...[2018/12/7]
异常处理异常处理
异常处理字面的意思就是:当程序出现了不符合预期的情况(不一定是错误),采取一定的后续措施进行处理。
异常处理机制
我们以一个简单但不是很严谨的例子作为开始,来介绍异常处理机制。
假设我们有一个图书销售系统。系统里面有某个自定义类型cla BookISBN;,表示某本书的ISBN编号。
主程...[2018/12/7]
BZOJ1812: [Ioi2005]riv(树形dp)BZOJ1812: [Ioi2005]riv(树形dp)
题意
题目链接
Sol
首先一个很显然的思路是直接用\(f[i][j] / g[i][j]\)表示\(i\)的子树中选了\(j\)个节点,该节点是否选的最小权值。但是直接这样然后按照树形背包的套路转移的话会有一种情况无法处理,就是说该节点不选,儿子节点也不选,这样我们就不清楚儿子节点的子节点的贡...[2018/12/7]
BZOJ1925: [Sdoi2010]地精部落(dp)
题意
题目链接
Sol
不会做Orzzzz
想到了和题解一样的方程,但是根本不会转移
具体题解看这里吧
大致思路就是先推一波性质,然后对于最后一个位置上的数\(i\),分两种情况讨论一下:与\(i - 1\)相邻 / 不相邻,
#include<bit tdc++.h>
#d...[2018/12/7]
BZOJ1927: [Sdoi2010]星际竞速(最小费用最大流 最小路径覆盖)
题意
题目链接
Sol
看完题不难想到最小路径覆盖,但是带权的咋做啊?qwqqq
首先冷静思考一下:最小路径覆盖 = \(n - \text{二分图最大匹配数}\)
为什么呢?首先最坏情况下是用\(n\)条路径去覆盖(就是\(n\)个点),根据二分图的性质,每个点只能有一个和他配对,这样就保...[2018/12/7]
cf1060E. Sergey and Subway(思维 枚举)
题意
题目链接
Sol
好好读题 => 送分题
不好好读题 => 送命题
开始想了\(30\)min数据结构发现根本不会做,重新读了一遍题发现是个傻逼题。。。
\(C_{i, j} = a[i] * b[j]\)
根据乘法分配律,题目就变成了在数组\(a, b\)中分别选一段...[2018/12/7]
浅析libuv源码-获取精确时间
在Timer模块中有提到,libuv控制着延迟事件的触发,那么必须想办法精确控制时间。
如果是JS,获取当前时间可以直接通过Date.now()得到一个时间戳,然后将两段时间戳相减得到时间差。一般情况下当然没有问题,但是这个方法并不保险,因为本地计算机时间可以修改。
libuv显然...[2018/12/7]
洛谷P5057 [CQOI2006]简单题(线段树)洛谷P5057 [CQOI2006]简单题(线段树)
题意
题目链接
Sol
紫色的线段树板子题??。。。
#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
const int MAXN = 1e6 + 10;
in...[2018/12/7]
BZOJ2655: calc(dp 拉格朗日插值)BZOJ2655: calc(dp 拉格朗日插值)
题意
题目链接
Sol
首先不难想到一个dp
设\(f[i][j]\)表示选了\(i\)个严格递增的数最大的数为\(j\)的方案数
转移的时候判断一下最后一个位置是否是\(j\)
\[f[i][j] = f[i][j - 1] + f[i - 1][j - 1] * j\]
for(in...[2018/12/5]
拉格朗日插值学习小结
简介
在数值分析中,拉格朗日插值法是以法国18世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法。如果对实践中的某个物理量进行观测,在若干个不同的地方得到相应的观测值,拉格朗日插值法可以找到一个多项式,其恰好在各个观测的点取到观测到的值。上面这样的多项式就称为拉格朗日(插值)多项式。
拉格朗日...[2018/12/5]
c/c++ 拷贝控制 构造函数的问题
拷贝控制 构造函数的问题
问题1:下面①处的代码注释掉后,就编译不过,为什么???
问题2:但是把②处的也注释掉后,编译就过了,为什么???
编译错误:
001.cpp: In copy constructor ‘test::test(const test&)’:
001.cpp:21:...[2018/12/5]
2018.12.4数据结构上机考试
【实验内容及要求】
对于左儿子—右兄弟链接存储的树,任给树中两个节点,判断二者 之间的关系属于祖孙、父子、兄弟、其他关系中的哪种关系。注意,一 个节点是另外一个节点的儿子节点的儿子节点则称这两个节点之间为 祖孙关系。设计的程序应完成如下的功能:
1....[2018/12/5]
开源C++版本CGI库CGICC入门 -
原发布在ChinaUnix,但未自动搬迁过来:http: blog.chinaunix.net/uid-20682147-id-4895772.html
PDF版本:https: files-cdn.cnblogs.com/file aquester/%E5%BC%80%E6%BA%90C%E5...[2018/12/5]
cf1056B. Divide Candies(数论 剩余系)
题意
题目链接
求满足\(i^2 + j^2 \% M = 0\)的数对\((i, j)\)的个数,\(1 \leqslant i, j \leqslant 10^9, M \leqslant 1000\)
Sol
发这篇博客的目的就是为了证明一下我到底有多菜。
mdzz小学组水题我想了40...[2018/12/3]
c/c++ 拷贝控制 右值与const引用
拷贝控制 右值与const引用
背景:当一个函数的返回值是自定义类型时,调用侧用什么类型接收??
1,如果自定义类型的拷贝构造函数的参数用const修饰了:可以用下面的方式接收。
Test t2 = fun(t1);
2,如果自定义类型的拷贝构造函数的参数没有用const修饰了:必须用下面的方式接...[2018/12/3]
POJ1862 Stripies 贪心 B
POJ 1862 Stripies
https: vjudge.net/problem/POJ-1862
题目:
Our chemical biologists have invented a new very useful form of life call...[2018/12/3]
BZOJ3453: tyvj 1858 XLkxc(拉格朗日插值)
题意
题目链接
Sol
把式子拆开,就是求这个东西
\[\sum_{i = 0} ^n \sum_{j = 1}^{a + id} \sum_{x =1}^j x^k \pmod P\]
那么设\(f(x) = \sum_{i = 1}^n i^k\),这是个经典的\(k + 1\)多项式,...[2018/12/3]
基于GDAL库,读取海洋风场数据(.nc格式)c++版
经过这一段时间的对海洋数据的处理,接触了大量的与海洋相关的数据,例如海洋地形、海洋表面温度、盐度、湿度、云场、风场等数据,除了地形数据是grd格式外,其他的都是nc格式的数据。本文将以海洋风场数据为例,进行nc格式文件的读取。
...[2018/12/3]
BZOJ4568: [Scoi2016]幸运数字(线性基 倍增)
题意
题目链接
Sol
线性基是可以合并的
倍增维护一下
然后就做完了??
喵喵喵?
luogu-judger-enable-o2
#include<bit tdc++.h>
#define LL long long
using namespace std;
const...[2018/12/3]
洛谷P4165 [SCOI2007]组队(排序 堆)
题意
题目链接
Sol
跟我一起大喊:n方过百万,暴力踩标算!
一个很显然的思路是枚举\(H, S\)的最小值算,复杂度\(O(n^3)\)
我们可以把式子整理一下,变成
\[A H_i + B S_i \leqslant C + AminH + BminS\]
首先按\(H\)排序
...[2018/12/3]
codechef Many Lists(树状数组 set)codechef Many Lists(树状数组 set)
题意
题目链接
Sol
直接做肯定不好搞(反正我不会。。)
直接开\(n\)个Pair类型的set,维护每个数的出现位置
每次在set中二分后暴力合并即可
然后就是树状数组的基本操作了
时间复杂度:\(O(nlog^2n)\)
#include<bit tdc++.h>...[2018/12/3]
BZOJ5068: 友好的生物(状压 贪心)
题意
题目链接
Sol
又是一道神仙题??。。
把绝对值拆开之后状压前面的符号?。。
下界显然,但是上界为啥是对的呀qwq。。
#include<bit tdc++.h>
using namespace std;
const int MAXN = 1e6 + 10;
inlin...[2018/12/3]
洛谷P1107 & BZOJ1270 [BJWC2008]雷涛的小猫
一道DP。
给你一个矩阵里面有很多数,你需要从上往下找到一种跳跃方法使得经过的点的价值之和最大。
具体题面见链接
洛谷P1107
BZOJ1270
很明显是一个二维的DP。
#include<bit tdc++.h>
usi...[2018/12/3]
BZOJ2476: 战场的数目(矩阵快速幂)BZOJ2476: 战场的数目(矩阵快速幂)
题意
题目链接
Sol
神仙题Orzzz
考虑两边是否有\(1\)
设\(f[i]\)表示周长为\(2i\)的方案数
第一种情况:左侧或右侧有一个1,那么把这个1删去,对应的方案数为\(f[i - 1]\)
第二种情况:左侧和右侧都有一个1,把这两个1删去,对应的方案数为\(f[i - ...[2018/12/3]
【解题报告】洛谷 P2571 [SCOI2010]传送带
【解题报告】洛谷 P2571 [SCOI2010]传送带 今天无聊,很久没有做过题目了,但是又不想做什么太难的题目,所以就用洛谷随机跳题,跳到了一道题目,感觉好像不是太难。
[CSDN链接](https: blog.csdn.net/Liang_Si_FFF/article/detail 845...[2018/12/3]
[luogu2286][宠物收养所]
题目链接
思路
比较裸的一道平衡树的题。用一个变量S来表示当前树的情况,当S为负数时树内为宠物,当S为正数时树内为人。然后每次分情况讨论一下。如果树为空或者是与来的东西(人或宠物)与树内存的相同。那么就无法领养,直接将这个东西扔到树里。否则就从树里面找一个与当前值最接近的数字,然后统计进答案。
一开...[2018/12/3]
函数的重载(1)
“重载”在自然语言中的含义 同一个标识符在不同上下文有不同的意义C++中函数的重载用同一个函数名定义不同的函数当函数名和不同的参数搭配时函数的意义不同 int func(int a) { return a; &nb...[2018/12/3]
2018NOIP普及T4---对称二叉树2018NOIP普及T4---对称二叉树
题目 对称二叉树
题目描述
思路
检查是否符合对称条件
条件很简单——结构对称&&点权对称
要做到点权对称其实也就顺便结构对称了
于是条件可以简化为点权对称
可以考虑并行搜索
...[2018/12/3]
【LeetCode】Reverse Nodes in k-Group(k个一组翻转链表)
这是LeetCode里的第25道题。
题目要求:
给出一个链表,每 k 个节点一组进行翻转,并返回翻转后的链表。
k 是一个正整数,它的值小于或等于链表的长度。如果节点总数不是 k 的整数倍,那么将最后剩余节点保持原有顺序。
示例 :
给定...[2018/12/3]
洛谷P4781 【模板】拉格朗日插值(拉格朗日插值)
题意
题目链接
Sol
记得NJU有个特别强的ACM队叫拉格朗,总感觉少了什么。。
不说了直接扔公式
\[f(x) = \sum_{i = 1}^n y_i \prod_{j \not = i} \frac{k - x[j]}{x[i] - x[j]}\]
复杂度\(O(n^2)\)
如...[2018/12/3]
BZOJ4559: [JLoi2016]成绩比较(dp 拉格朗日插值)
题意
题目链接
Sol
想不到想不到。。
首先在不考虑每个人的真是成绩的情况下,设\(f[i][j]\)表示考虑了前\(i\)个人,有\(j\)个人被碾压的方案数
转移方程:\[f[i][j] = \sum_{k = j}^n f[i -1][k] C_{k}^{k - j} C_{N - ...[2018/12/3]
[luogu1486][郁闷的出纳员]
题目链接
思路
这个题其实就是对于treap中的删除操作进行一些修改。自己yy了一种做法。就是在删除的时候,如果要删除的数比这棵子树的根大,那么就把根变成根的右孩子,这样就相当于删除了整棵左子树和根节点。然后重新维护一下siz,并且维护一下平衡性就行了。
竟然把rotate函数写错了。调了30min...[2018/12/3]