洛谷P4925 [1007]Scarlet的字符串不可能这么可爱(计数)
题意
题目链接
Sol
只要知道“回文连续子串”就能做了吧。。
想要满足这个条件,肯定是不能出现\(aa\)或\(aba\)这种情况
如果没有\(S\)的限制,答案为\(K * (K - 1) * \prod_{i = 3}^n (k - 2)\)
如果有\(S\)的限制就除一个\(K\)...[2018/10/9]
洛谷P1011 车站洛谷P1011 车站
题目
一直没有头绪的一道题
明明只有普及-难度
看了看题解用的大多是方程和Fibonacci
于是更加懵逼了。。。
今天立志AC此题
结果用大模拟还真过了
说一下思路
然而并没有思路
按照题意敲代码
不妨设第二站上下车了k人
分别统计每一站a和k的系数
1、2、n站特殊处...[2018/10/9]
c/c++ socket API 调用后的错误判断 perror errno
socket API 调用后的错误判断 perror errno
调用完socket API后,需要判断调用是否成功与失败。如果失败,会自动设置errno(是个整数), 并且用perror可以打印出具体的错误信息。
注意点:
1,如果有多个socket API调用失败,errno存放的是最后一个失败...[2018/10/9]
cf1037D. Valid BFS?(BFS?)cf1037D. Valid BFS?(BFS?)
题意
题目链接
Sol
非常妙的一道题。。
可以这样想,在BFS序中较早出现的一定是先访问的,所以把每个点连出去的边按出现的前后顺序排个序
看一下按顺序遍历出来的序列与给出的是否相同就行了
#include<bit tdc++.h>
using namespace std;
c...[2018/10/8]
C++指定位数小数输出
关键词:头文件<iomanip>,指令setw(x),fixed,setprecision(x)。
setw()这个指令也可以配合setfill('''')用于对齐输出,详情见另一篇博客https: www.cnblogs.com/ljy1227476113/p/9737334.ht...[2018/10/8]
C/C++基础知识总结
写在前面:对于即将离开象牙塔的我们,需要面临的一个首要问题就是如何在社会中占据一席之地。在这里,我想说是:机会总是留给有准备的人的!我不是在这里空喊口号,而是以我过来人的经验来告诫你们,任何的侥幸心理都不要有,只要你努力了、有准备了、足够优秀了,工作的offer自然会飞到你手里。 说明:本篇文章的...[2018/10/8]
BZOJ4245: [ONTAK2015]OR-XOR(前缀和)
题意
题目链接
Sol
又是一道非常interesting的题目
很显然要按位考虑
因为最终答案是xor之后or,所以分开之后之后这样位上1的数量是一定是偶数,否则直接加到答案里面
同时,这里面有些部分是不能切的(分开之后会产生奇数个1),把这些位置记出来
如果能保证每次都有大于\(m\...[2018/10/8]
cf1059D. Nature Reserve(三分)
题意
题目链接
Sol
欲哭无泪啊qwq。。。。昨晚一定是智息了qwq
说一个和标算不一样做法吧。。
显然\(x\)轴是可以三分的,半径是可以二分的。
恭喜你获得了一个TLE的做法。。
然后第二维的二分是没有必要的,直接拿圆的标准方程推一下取个最大值就行了。。。。。昨晚没想到qwq给数学...[2018/10/8]
socket 函数
socket 函数
system Call socket 函数原型:
int socket(int addre family, int type, int protocol);
参数adre family 举例
adre family种类
功能描述
AF_INET
IPV4用so...[2018/10/8]
C++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的BoostC++雾中风景12:聊聊C++中的Mutex,以及拯救生产力的Boost
笔者近期在工作之中编程实现一个Cache结构的封装,需要使用到C++之中的互斥量Mutex,于是花了一些时间进行了调研。(结果对C++标准库很是绝望....)最终还是通过利用了Boost库的shared_mutex解决了问题。借这个机会来聊聊在C++之中的多线程编程的一些“坑”。
1.C++多...[2018/10/8]
音乐旋律提取算法 附可执行demo音乐旋律提取算法 附可执行demo
前面提及过,音频指纹算法的思路。
也梳理开源了两个比较经典的算法。
https: github.com/cpuimage hazam
https: github.com/cpuimage/AudioFingerprinter
后来一段时间,稍微看了下这两个算法,还有不少可以精简优化的空间。...[2018/10/8]
1003 我要通过!| PAT (Basic Level) Practice
1003 我要通过! (20 分)
“答案正确”是自动判题系统给出的最令人欢喜的回复。本题属于 PAT 的“答案正确”大派送 —— 只要读入的字符串满足下列条件,系统就输出“答案正确”,否则输出“答案错误”。
得到“答案正确”的条件是:
字符串中必须仅有P、 A、 T这三种字符,不可以包含其...[2018/10/8]
牛客国庆集训day6 B Board (模拟标记思维或找规律或分块???)
链接:https: www.nowcoder.com/acm/contest/206/B来源:牛客网
题目描述
恬恬有一个nx n的数组。她在用这个数组玩游戏: 开始时,数组中每一个元素都是0。 恬恬会做某些操作。在一次操作中,她可以将某一行的所有元素同时加上一个值,也可以将某...[2018/10/8]
3、ObjectARX开发创建直线、圆、圆弧和修改对象属性
一、本节课程
Arx二次开发创建直线、圆、圆弧和修改对象属性
二、本节要讲解的知识点
1、如何应用C++ ARX二次开发创建直线。
2、如何应用C++ ARX二次开发创建圆。
3、如何应用C++ ARX二次开发创建圆弧。
4、如何修改对象的属性。
5、腾讯课堂云幽学院详细的内容讲解。
...[2018/10/8]
2018-10-06 Gym-101864F丨STL爽题丨想法
题意:
设一个1-n的空间,初始1-k位置占了人,每次操作将x位置的人移动到y位置,保证输入操作合法,求,每次操作后,空间无人的间隔,有多少个(比如01000100100有4个)。
思路:
题目给的N很大,无法用数组去模拟,一开始很蒙,但是感谢队友的想法,我写了很短的代码解了这道题...[2018/10/8]
ubuntu下VS code如何调试C++代码ubuntu下VS code如何调试C++代码
最近开始使用Vs codel,真的方便,可以和git结合。下面总结一下如何调试程序,
我写了一个实例程序(不重要)
#include <iostream>
#include <fstream>
#include <string>
#include <...[2018/10/8]
HDU6315 Naive Operations(线段树 复杂度分析)HDU6315 Naive Operations(线段树 复杂度分析)
题意
题目链接
Sol
这题关键是注意到题目中的\(b\)是个排列
那么最终的答案最多是\(nlogn\)(调和级数)
设\(d_i\)表示\(i\)号节点还需要加\(d_i\)次才能产生\(1\)的贡献
用线段树维护每个节点里\(d_i\)的最小值,每次当\(d_i - 1= 0\)...[2018/10/8]
vs2010(vs2012)好用的扩展插件介绍vs2010(vs2012)好用的扩展插件介绍
一直以来只使用番茄vs助手(https: www.wholetomato.com/download default.asp)辅助写代码,也都忘了是谁介绍的,不过确实好用。
相比原始的vs,它提供了很多改进功能。例如,重命名变量,高亮宏与自定义类型,查找引用,智能代码提示等。
因为一直以...[2018/10/8]
c/c++ 基本线程管理 join detach
基本线程管理 join detach
join:主线程等待被join线程结束后,主线程才结束。
detach:主线程不等待被detach线程。
问题1:子线程什么时点开始执行?
std::thread t(fun);执行后,就开始执行了。
问题2:在哪里调用join或者detach
1,使用de...[2018/10/8]
C++后台知识点总结(一)
C++基础部分:
1.数组和指针的区别
(1)数组本身体现出来的就是一个 指针常量的 “特性”,即不能对数组的首地址进行修改,内存上的地址就已经是确定了的。而指针本身是一个变量,他指向了一个地址,这个是可以变化的,也就说他可以重新赋值指向新的地址;
(2)当调用sizeof函数时,对于数组,得到...[2018/10/8]
4、c++ Arx二次开发创建多段线4、c++ Arx二次开发创建多段线
一、本节课程 c++ Arx二次开发创建多段线二、本节要讲解的知识点 如何应用C++ ARX二次开发创建多段线(AcDbPolyline、AcDb2dPolyLine、AcDb3dPolyline的使用)三、具体内容 1、ARX提供了三种多段线相关的类:AcDb...[2018/10/8]
Luogu P1070 道路游戏
题面
小新正在玩一个简单的电脑游戏。
游戏中有一条环形马路,马路上有 n 个机器人工厂,两个相邻机器人工厂之间由一小段马路连接。小新以某个机器人工厂为起点,按顺时针顺序依次将这 n 个机器人工厂编号为1~n,因为马路是环形的,所以第 n 个机器人工厂和第 1 个机器人工厂是由一段马路连接在一...[2018/9/30]
c/c++ 智能指针 weak_ptr 使用c/c++ 智能指针 weak_ptr 使用
智能指针 weak_ptr 使用
weak_ptr用途:
1,解决空悬指针问题
2,解决循环引用问题
weak_ptr特点:没有*操作和->操作
weak_ptr是不控制所指对象生存周期的智能指针,它指向由一个shared_ptr管理的对象。将一个weak_ptr绑定到一个shared_pt...[2018/9/30]
[vijos]lxhgww的奇思妙想(长链剖分)
题意
题目链接
Sol
长链剖分
又是一个用各种花式技巧优化的暴力
它的主要思想是:对于每个节点,把深度最深的子节点当做重儿子,它们之间的边当做重边
这样就会有一些非常好的轻质
所有链长总和是$O(n)$级别的
任意一个点的$k$级祖先的子树深度$\geqslant k$
首先我...[2018/9/30]
C++雾中风景11:厘清C++类型转换(static_cast,dynamic_cast,reinterpret_cast,const_cast)C++雾中风景11:厘清C++类型转换(static_cast,dynamic_cast,reinterpret_cast,const_cast)
C++是一门弱类型的语言,提供了许多复杂和灵巧类型转换的方式。笔者之前写的Python与Go都是强类型的语言,对这种弱类型的设计实在是接受无力啊~~ ( 生活所迫,工作还得写C++啊~~)C++语言提供了四种类型转换的操作:static_cast,dynamic_cast,reinterpret...[2018/9/30]
cf932E. Team Work(第二类斯特灵数 组合数)
题意
题目链接
Sol
这篇题解写的非常详细
首先要知道第二类斯特灵数的一个性质
$$m^n = \sum_{i = 0}^m C_{n}^i S(n, i) i!$$
证明可以考虑组合意义:$m^n$是把$n$个不同的球放到$m$个不同的盒子里的方案数
然后用这个式子展开$i^k$,把...[2018/9/30]
分享一个C++与Python开发的中小型通用游戏服务端框架(跨平台,开源,适合MMORPG游戏)分享一个C++与Python开发的中小型通用游戏服务端框架(跨平台,开源,适合MMORPG游戏)
在开发一款游戏项目时,在立项时我们往往会考虑或者纠结很多,比如:
1,对于开发来说:服务端和客户端应该选择什么语言?用什么协议通信才更效率?协议后期如何维护?Socket是用长连接还是短连接?TCP还是UDP?客户端资源、配置表、代码如何进行热更新?等等。
2,对于策划来说:配置表使用...[2018/9/30]
dp算法之有代价的最短路径
题目:有代价的最短路径
题目介绍:如下图所示,现在平面上有N个点,此时N=7,每个点可能和其他点相连,相连的线有一定权值,求出从0点到N-1点的消耗权值的最小值。
分析:用动态规划的思路来解决,每一点与其他点的消耗权值的最小值都储存在一个二维数组中,下一个点消耗的最小值可以根据前一个点来得...[2018/9/30]
《c++编程思想》关于虚函数在构造函数行为的理解,理解有误,望告知!《c++编程思想》关于虚函数在构造函数行为的理解,理解有误,望告知!
《c++编程思想》书上有一段话:在任何构造函数中,可能只是部分形成对象——我们只能知道基类已被初始化,但并不知道哪个类是从这个基类继承来的。然而,虚函数在继承层次上是“向前”和“向外”进行调用。它可以调用在派生类中的函数。如果我们在构造函数中也这样做,那么我们所调用的函数可能操作还没有被初始化...[2018/9/30]
第二类斯特灵数学习笔记
简单的介绍一下吧,斯特灵数其实有很多好玩的性质和扩展的。
定义
设$S(n, m)$表示把$n$个不同的球放到$m$个相同的盒子里,且不允许盒子为空的方案数
称$S$为第二类斯特灵数
计算方法
递推:
考虑第$n$个球放到了哪里
第一种情况是自己占一个盒子,方案为$S(n - 1, m -...[2018/9/30]
c/c++ 数组的智能指针 使用c/c++ 数组的智能指针 使用
数组的智能指针 使用
数组的智能指针的限制:
1,unique_ptr的数组智能指针,没有*和->操作,但支持下标操作[]
2,shared_ptr的数组智能指针,有*和->操作,但不支持下标操作[],只能通过get()去访问数组的元素。
3,shared_ptr的数组智能指针,必须要自...[2018/9/30]
c/c++ allocator 使用
allocator 使用
作用:只开辟空间,不调用构造函数
操作一览表
allocator<T> a
定义一个名为a的allocator对象,它可以为类型为T的对象分配内存
a.allocate(n)
分配一段连续的为构造的内,能容纳n个类型为T的对象
a.dealloca...[2018/9/30]
1004 成绩排名 未解决的问题1004 成绩排名 未解决的问题
1004 成绩排名 (20 分)
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。
输入格式:
每个测试输入包含 1 个测试用例,格式为
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3...[2018/9/30]
智能指针之 weak_ptr智能指针之 weak_ptr
1. weak_ptr 介绍
std::weak_ptr 是一种智能指针,它对被 std::shared_ptr 管理的对象存在非拥有性("弱")引用。在访问所引用的对象指针前必须先转换为 std::shared_ptr。 主要用来表示临时所有权,当某个对象存在时才需要被访问。转换为shared...[2018/9/30]
C++指针→指针常见错误
下面的程序会发生崩溃: 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h>
#include <iostream>
using namespace std;
int main(void)
{
...[2018/9/30]
c/c++ 智能指针 shared_ptr 和 new结合使用
智能指针 shared_ptr 和 new结合使用
用make_shared函数初始化shared_ptr是最推荐的,但有的时候还是需要用new关键字来初始化shared_ptr。
一,先来个表格,唠唠new和shared_ptr
操作
功能描述
shared_ptr<T>...[2018/9/28]
RMQ求LCA
题目链接
rmq求LCA,interesting。
一直没有学这玩意儿是因为CTSC的Day1T2,当时我打的树剖LCA 65分,gxb打的rmq LCA 45分。。。
不过rmq理论复杂度还是小一点的,就学一下把。
RMQ求LCA
我们要用到三个数组
$dfn[i]$:第$i$个节点位...[2018/9/28]
LOJ#137. 最小瓶颈路 加强版(Kruskal重构树 rmq求LCA)LOJ#137. 最小瓶颈路 加强版(Kruskal重构树 rmq求LCA)
题意
三倍经验哇咔咔
#137. 最小瓶颈路 加强版
#6021. 「from CommonAnts」寻找 LCR
#136. 最小瓶颈路
Sol
首先可以证明,两点之间边权最大值最小的路径一定是在最小生成树上
考虑到这题是边权的最大值,直接把重构树建出来
然后查LCA处的权值即可
...[2018/9/28]
sublime实现一键代码格式化
效果预览
实现
首先下载插件SublimeAstyleFormatter
方法:ctrl + shift + P后输入install Package。
等待一段时间后输入SublimeAstyleFormatter即可自动下载
使用方法
按下ctrl + Alt + F是默认格式化整个文...[2018/9/28]
agc027D - Modulo Matrix(构造 黑白染色)
题意
题目链接
构造一个$n * n$的矩阵,要求任意相邻的两个数$a,b$,使得$max(a,b) % min(a,b) \not = 0$
Sol
我的思路:
假设$mod = 1$,那么可以在第一行放2 3 4 5 $\dots$,第一列同理也这样放
对于任意位置$i$,一定满足要求...[2018/9/28]
BZOJ2054: 疯狂的馒头(并查集)
题意
题目链接
Sol
直接倒着并查集一波就行了
#include<bit tdc++.h>
#define int long long
using namespace std;
const int MAXN = 1e6 + 10;
inline int read() {
...[2018/9/28]
POJ3233Matrix Power Series(矩阵快速幂)
题意
题目链接
给出$n \times n$的矩阵$A$,求$\sum_{i = 1}^k A^i $,每个元素对$m$取模
Sol
考虑直接分治
当$k$为奇数时
$\sum_{i = 1}^k A^i = \sum_{i = 1}^{k / 2 + 1} A^i + A^{...[2018/9/27]
c++ 函数指针
#include <iostream>
#include <cstring>
using namespace std;
int max(int a,int b){
return a > b ? a: b;
}
int main() {
int...[2018/9/27]
1032 挖掘机技术哪家强
为了用事实说明挖掘机技术到底哪家强,PAT 组织了一场挖掘机技能大赛。现请你根据比赛结果统计出技术最强的那个学校。
输入格式:
输入在第 1 行给出不超过 1 的正整数 N,即参赛人数。随后 N 行,每行给出一位参赛者的信息和成绩,包括其所代表的...[2018/9/27]
基础排序算法
1 #include <iostream>
2 /*****
3 *
4 *实现一些基础的排序算法
5 *
6 *****/
7 void display(int R[], int n)
8 {
9 for (int i ...[2018/9/27]
c/c++ 智能指针 shared_ptr 使用
智能指针 shared_ptr 使用
上一篇智能指针是啥玩意,介绍了什么是智能指针。
这一篇简单说说如何使用智能指针。
一,智能指针分3类:今天只唠唠shared_ptr
shared_ptr
unique_ptr
weak_ptr
二,下表是shared_ptr和unique_ptr都支持的...[2018/9/27]
minGw64编译Qt时遇到too many sections问题
minGw64编译Qt时遇到too many sections问题:
修改\Src\qtbase\mkspecs\win32-g++\qmake.conf中
QMAKE_CFLAGS = -pipe -fno-k...[2018/9/27]
agc015E - Mr.Aoki Incubator(dp)
题意
题目链接
平面上有$n$个点,每个点都有一个位置$x_i$,和向右的速度$v_i$现在要求你对其中的一些点进行染色,当一个点被染色后,在无限距离内与它相遇的点也会被染色问在可能的$2^n$种染色方案中,有多少种染色方案可以使得最后的点全部被染色
Sol
非常好的dp题。 首先考虑...[2018/9/27]
sublime实现背景透明化
预览
老司机们就不要吐槽背景图了
实现方法
首先下载插件,直接打包下载zip即可
地址:https: github.com/vhanla/SublimeTextTrans
下载完成后解压到packages目录
然后就搞定了!
可以按Sh...[2018/9/27]
cf314E. Sereja and Squares(dp)
题意
题目链接
给你一个擦去了部分左括号和全部右括号的括号序列,括号有25种,用除x之外的小写字母a~z表示。求有多少种合法的括号序列。答案对4294967296取模。合法序列不能相交,如()[],([])是合法序列,而([)]是不合法的。
Sol
这个题告诉我们什么叫:暴力艹标算,n...[2018/9/27]