自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

卡尔

划着一叶扁舟,想荡出万顷波

  • 博客(162)
  • 资源 (3)
  • 论坛 (2)
  • 问答 (1)

原创 CentOS7 安装 Mysql 5.7 开发

Cent OS 7 已经不支持直接 yum install 安装mysql了。直接yum install MySQL 安装的 MariaDB。一开始我妥协了安装了MariaDB,但是运行公司的数据库脚本发现报错了,看来MariaDB和MySQL还不是100%兼容的。于是yum remove mysql 。从 MySQL官网 下了rpm文件后 自己安装。 rpm -ivh mysq...

2018-05-25 20:10:47 285

原创 openSSL SSL_read 总读一个字节

最近公司项目需要把服务器端C++实现的 websocket 改成websocket secure(websocket + ssl)。百度了一下有一个广泛使用的ssl库,openssl。花了两天时间一顿操作之后客户端用js终于连接上服务器上的wss。但是诡异的是,每次客户端来消息后,服务器调用SSL_read函数总是会读完一个字节后返回,第二次调用(epoll控制)才会读完剩下的字节。 比...

2018-05-18 12:13:14 5511

原创 C# 异步编程笔记(上)

“多线程异步编程”是疑惑了我很久很久的问题。这个星期查阅了很多资料,运行测试了不少代码,终于对它有了多一点认识。首先,就要纠正一个问题:“多线程异步编程”。这种说法一看就是很新手的说法,因为多线程是多线程,异步是异步。尽管它们之间有着千丝万缕的关系。但是在初学,还是把它们分开来说比较好:“多线程编程和异步编程”。 所以,我们首先要做的就是弄清楚,多线程和异步之间的关系。多线程:多线程是同步完成多项

2017-12-01 12:06:00 405

原创 C# 多线程异步编程笔记

线程最直接的目的就是异步……不要一个一个来异步最直接的目的就是并发……多个操作同时向前推进并发最直接的效果当然是提高效率所以,异步的几种方式:1. ThreadThread thread = new Thread ( new ThreadStart(callback));Thread thread = new Thread ( new ParameterizedThread

2017-11-27 18:29:59 2104

原创 C++ 代码统计工具 & 判断一行代码是否为注释行

这两天接手了一个项目,项目定义了一种自己语法,所以有了判断注释的需求。做这个语法解析的同时反复说代码注释花了很大力气,也不太好辩驳。这里自己简单实习了一个,代码非常短,只要是C++编译器能够通过的代码都能准确判断。C++ 允许两种注释 // 和 /* */判断一行代码是不是注释其实很简单,只要你发现了一个看似废话但是非常重要的规律:一行开始注释的代码,一定是以

2017-11-12 17:09:29 1723

原创 Qt Charts 动态实时折线图绘制

在Qt Charts发布之前, Qt比较著名两个画图插件是 qwt和Qcustom, 其中Qcustom较轻量,只需要在project 中包含qcustomplot.h 和 qcustomplot.cpp 几乎就可以使用。相比Qcustom,qwt功能更为强大,但是它的安装十分麻烦,阻挡了很多人(包括我)的使用。但是qwt只是对静态图表的表示非常不错,动态曲线性能并不突出。如果只是

2017-10-17 14:28:49 31629 2

原创 退役

时光荏苒,转眼间已从大一的小鲜肉变为了大三快结束的老油条。从当初跟在学长后面的小虫子到现在身后也有一帮学弟学妹。回想当时,也不知道今天原来是如此。(允许我小小的感慨一下)今天难得完整地上满了七节课,也没有心情再去图书馆看书,打开直播OB海鲜团各自在单排,速度与激情8上映,dota2的人也起飞不了,突然有点不知所措,想起我参加的第一个比赛CCPC中南地区邀请赛已经开始报名了,前两天把教练帐号给了

2017-04-14 23:08:54 604 2

原创 Ubuntu16.04 apache2.4 修改默认根目录

Ubuntu16.04 默认 apt-get install apache2 安装的apache2.4apache2.4配置根目录文件在 /etc/apache2/sites-available/000-default.conf默认是 /var/www/html默认主页的配置在/etc/apache2/mods-available/dir.conf可以为

2017-01-14 02:13:35 9427

原创 Linux多线程编程 —— 线程调用函数时传入参数

当 调用pthread_create  第三个和第四个参数不为空时,要注意第四个参数的传递方法一段流行的代码:#include #include using namespace std;#define NUM_THREADS 10void* say_hello(void* args){ int i = *((int*)args);//对传入的参数进行强制类型转换,由

2017-01-08 11:44:52 8600

原创 《并行与分布式计算》实验六——Java RMI编程

这篇博文一个多月前就发表过,但因当时在课程上该实验还未结束提交而删除了;对老师教学造成的不便深感歉意;写这些不是为了什么,也知道自己写的不好,只是记录自己的学习心历路程,同时也当作一个笔记,将来翻看的时候,也能有所收获。一、实验目的与要求实验目的:理解JavaRMI的体系结构,熟悉Java RMI程序的编写。实验要求:请独立完成本实验。二、实验内

2016-12-22 12:46:15 1538

原创 《并行与分布式计算》实验五——Java socket 编程

一、实验目的与要求实验目的:熟悉面向连接的JavaSocket程序的编写。实验要求:以小组为单位完成,一个小组由两个人组成。以小组为单位提交,请在完成的实验报告中列出小组成员。二、实验内容1. 编写Java Socket程序,编写一个基于Client/Server的问答程序,其中服务器端负责发布消息,客户端接收消息。每个客户端在连接上之后,服务器端给它发送一条欢迎消息:欢迎

2016-11-22 16:17:02 1281

原创 Java RMI 中 “注册表”理解

初学 Java RMI,很多地方都不理解,看到API 上对 Naming.list(registryURL) 的解释是 返回在注册表中绑定的名称所组成的数组。以为 在注册表中一个名字可以对应多个对象。实际上,在RMI注册表中,一个名字只能是对应一个对象,但是一个对象可以有多个名字。如果试图将注册表中的对象绑定到已具有相关绑定的名称上,则抛出 Alread

2016-11-22 13:44:39 1821

原创 HDU 5952 Counting Cliques(我对暴力的理解还是不狗)

听说是暴力,然而完全没想到是用dfs去暴力……后来想想这题确实简单,但这样暴力也可以也没什么意思。注意题目中给出边的顺序就是 u 具体是从每个点出发 能形成多少个团,因为建图的时候 u【代码】/* ***********************************************Author :angon*******************

2016-11-01 11:30:38 529

原创 HDU 5950 Recursive sequence(矩阵快速幂)

题意:f[i] = f[i-1] + 2 * f[i - 2] + i^4  (i f[1] = af[2] = b直接递推肯定是超时,经典的矩阵快速幂题。主要是要想办法构造一下 i^4 怎么放到矩阵里去,其实也很简单, 构造 向量A =  ( 1, i, i^2, i^3, i^4, f[i-1], f[i] )然后再构造一个矩阵 B ,使得 A * B = (1 ,

2016-11-01 11:25:14 524

原创 HDU 5938 Four Operations

同样是贪心,a + b - c * d / e。想办法 把  c * d / e 构造的尽可能小,a + b 构造的尽可能大。先确定/号的位置,分析一下不难发现e要么是1位要么是2位,所以都枚举一下,c和d都只可能是1位,这样的话 * 和 -的位置也确定了,+ 要使得最大,肯定是让a 1位 或者b 1位,剩余的全部给另外一个。把这几种情况都讨论一下,然后比较一下哪个值最大。【代码】

2016-10-29 23:51:23 348

原创 HDU 5935 Car(贪心、精度爆炸)

这题应该不难想,从后往前推一下,保证速度是非递增的就可以了。但是因为速度是实数,所以精度要求肯定是要的,一开始用double各种wa,后来直接 把速度用分数 y / x 这样表示才AC 。【代码】/* ***********************************************Author :angon*********************

2016-10-29 23:44:34 369

原创 HDU 5934 Bomb(强连通分量缩点)

解题思路: 1)两遍for循环,如果 i 能引爆 j,则连一条i指向j的边。2)求强连通分量3)把属于同一连通分量的缩成一个点,构成新的有向无环图(DAG)4)在DAG里,对于入度为0的点,在它原来的点中找到代价最小的点。题目要求的用最少的代价引爆所有的炸弹,转换一下就是在DAG图里最少通过哪些点可以到达其它所有的点,在DAG图里,入度不为0的点一定可以由某个入度为0的点到达(

2016-10-29 23:37:02 1363

原创 HDU 5933 ArcSoft's Office Rearrangement

贪心:考虑第一个数字,如果它比平均数少,那么只能由它右边相邻的那个提供,如果它比平均数多,也只能通过右边的分出去。所以只要从左到右贪心一遍即可【代码】#include #include #include #include #include #include #include #include #include #include #include #incl

2016-10-29 23:23:45 604

原创 2016CCPC合肥总结

孤独不是独自在某个角落点上一根烟,而是点的这根烟也快结束了。有时候的确是迷茫的,已经大三了,还是去打了块铁。大一快结束的时候接触ACM以后,就有借口了,逃课、抄作业、不管是不是专业课都是能混就混,因为我要刷题,因为我可以对别人说除了算法我什么都不想学。到现在,结果呢,算法其实也没学好,大三还是铁牌选手;操作系统、计算机网络、数据库也没学好。拖欠的太多了。一方面自己的天赋确实不够,但是还是那

2016-10-18 13:45:42 1115

原创 HDU 5929 Basic Data Structure (模拟)

参考博客根据nand的运算法则,发现 任何 nand 0 都等于1,题目是要从top nand 到 bottom,所以如果没有reverse的话就是要记录第一个出现的0的位置,然后看在这个0之前有多少个1,就可以直接推出答案;假设在查询之前reverse一下了,就是记录最后一个0出现的位置,然后看在这个0之后还有多少个1。所以可以设一个类似双端队列的东西,直接开40W的数组,设两个指针,h

2016-10-11 18:46:29 554

原创 HDU 5922 && 5924

太水了……5922 要lcm最小,每次拿1去连就是,答案就是 (2+n)*(n-1)/2。5924 我真的惊呆了,我在推公式推啊推的,感觉是一个圆锥曲线然后两条直线夹一下然后求这个范围内有多少个点的时候,就看见一大片大片的过了……wtf?感觉不可能那么难,猜想一发,其实答案只有 (A,B) (B,A) 两组……啪啪啪,submit,过了,额头黑线!!!/* ********

2016-10-06 17:44:04 503

原创 HDU 5926 Mr. Frog’s Game (水)

水!判断一下中间部分是否有相邻的,行列边界是否有一样的【代码】/* ***********************************************Author :angon************************************************ */#include #include #include #include

2016-10-06 17:37:00 772

原创 HDU 5927 Auxiliary Set (树形DP+思维)

题意:给一棵有根树,和m个“不重要”的点,但如果一个点是两个重要的点的最近公共祖先,它会变成重要的点。思考:关键就是要知道每个不重要的点是否是某两个重要的点的lca;这个判断可以通过两次树dp来实现,第一次dp出每个节点有多少棵子树。不难发现,只要节点node的某棵子树中含有一个重要的点,则这棵子树中一定含有一个点可以作为形成node为lca的其中一个点。(自己随便画一下很容易证明)所

2016-10-06 17:30:06 728

原创 POJ 1141Brackets Sequence (区间dp记录路径)

先用dp[i][j] 表示出区间[i , j] 之间最少还需要多少括号平衡。dp[i][j] = dp[i+1][j]  + 1;即先假设所有的括号都是没有匹配的、然后在通过k来枚举是否s[ i ]后面是否直接有s[ k ] 与其匹配设一个path[i][j] 数组,令:如果 path[i][j] = -1 , 则表示 dp[i][j] 是从dp[i+1][j] 转移来的,说明i位

2016-10-05 18:07:43 474

原创 HDU 2476 String painter(区间DP)

这题分为两步dp;第一步 dp出由一个空串 刷成str2 的每个区间[i ,j ]最少需要多少次第二步再得出答案,具体,如果str1[i] == str2[i] 则说明i这个地方不用刷,ans[i] = ans[i-1],否则在[0,i ]之间找一个位置使得,ans[j] + dp[j+1][i] 最小。ans[n]即是答案。这题也是看题解做出来的,看的几个题解在第一步求dp[

2016-10-05 15:58:35 342

原创 POJ 2955 Brackets (区间DP,括号匹配)

经典的括号匹配问题注意 ([)]这种类型不是平衡的,所以不能简单的贪心求解n不大只有100,考虑枚举每个起点i(i属于[1 , n))开始的,每个长度为 len 的区间,有多少个平衡的括号,dp[1][n]作为答案;if(i,j匹配) dp[i][j] = dp[i+1][j-1] + 2;仅仅这样做明显会有一个缺陷,因为在考虑i,j为边界的时候,i+1,j-1之间的信息并不能

2016-10-05 13:14:00 380

原创 HDU 5920 Ugly Problem(模拟)

这题思路比较简单,但是实现起来真的很烦……比如一个数123456,先把它变成123321,剩下124,再变成121 和 3。如果是654321,就先变成 653356 剩下的再递归。特判一下10000000000这种情况,直接输出1和99999999999这大概是我写过代码最长的模拟,撸了200多行……注意字符串手动剪切的话最后加个‘\0’;【代码】/* *****

2016-10-04 20:20:43 542

原创 HDU 5918 Sequence I

kmp 变形,主串里 i+=p; 并且一旦没有匹配到就return 0【代码】/* ***********************************************Author :angon************************************************ */#include #include #include #inc

2016-10-04 20:13:34 519

原创 HDU 5916 Harmonic Value Description

问第k下的排列是什么,第一小的肯定是 gcd(pi,pi+1)= 1的;第二小的就是 有一个是2,其它都是1;第k小的就是有一个是k,其他都是1;注意题目给的数据是 2*k所以把看k 和 2*k 提出来,其它按顺序输出即可;注意k是奇数的情况,把1插到k-1和k+1之间,保证gcd=1;【代码】/* *********************************

2016-10-04 20:11:27 449

原创 HDU 5914 Triangle

n只有20,强行手推,wa了两发……【代码】/* ***********************************************Author :angon************************************************ */#include #include #include #include #include

2016-10-04 20:08:11 306

原创 HDU 5912 Fraction

水题,队友还用递归写的……个人感觉迭代随便做【代码】#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include

2016-10-04 20:06:46 496

原创 HDU 2732 Leapin' Lizards (最大流,拆点)

题意: n*m的矩阵(格子),每个格子上可能有一根柱子,长度0-3(0表示没有),每根柱子上可能会有一只蜥蜴,每只蜥蜴最多跳距离d远;每跳一下柱子的高度就会减1。问最少几只蜥蜴跳不出去。这题难在建图,想象一下,柱子高度减1用什么办法表示的好。发现也正是符合网络流的特质的,柱子高度即容量,如果柱子高度为 3,则最多能容纳的流量也就是3,最多允许有3只蜥蜴从这个柱子上经过。所以可以考虑这样

2016-10-02 01:35:59 287

原创 POJ 1273 && 3469 【最大流】

1273 裸最大流【史上最优模版】/* ***********************************************Author :angon************************************************ */#include #include #include #include #include #i

2016-10-01 11:58:23 302

原创 POJ 3233 Matrix Power Series (矩阵快速幂 + 二分思想)

题目连接题意:求 A + A2 + A3 + … + Ak. 数据范围:(n (n ≤ 30), k (k ≤ 109) and m (mod4)根据矩阵的分配结合率可以把上式如下处理:假设k=6,A^1+A^2+A^3+A^4+A^5+A^6 =  A^1+A^2+A^3 + A^3*(A^1+A^2+A^3) = (E + A^3)*(A^1+A^2+A^3);而,A^

2016-09-29 19:54:39 252

原创 HDU 5297 Y sequence (容斥原理 +迭代)

题意:自然数集去除能开b (2次方的数。如果能知道 1~ x 之间有多少个符合要求的数,问题就有解法的办法了,即迭代扩大x的范围,如果里面的数的个数正好等于n,x即是答案。所以想办法求出1 ~ x 之间有多少符合要求的数。自然数集 去掉 能开1,2,3,4,5……次方的数,可以依次先去掉能开1次的,2次的,3次,4次……在2e18范围内只要的数并不多。但是显然,这样有些数被重复

2016-09-28 16:21:44 345

原创 ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 I

这题应该说没什么算法,最多就是一些技巧在里面;关键是题意真是复杂,给的变量就很多。然后根据已知的变量,我们可以求出每个导弹第一次攻击到A的时间st和最后一次攻击到的时候ed(假设A会弹回去的最后一次);防御时间必须 包含[st,ed],这个防御才能成功 问题就转化为 求一个固定长度的区间,使得这个区间覆盖的可防御伤害最大。怎么求这个区间的位置呢?只要把每个导弹的st和ed两个点放到

2016-09-25 00:44:20 874

原创 ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 C (map模拟)

一开始想多了以为是AC自动机或者Tire之类的,后来发现直接用map,int>模拟即可。就是想办法处理掉那些多余的空格和逗号句号,其实还是比较啰嗦,慢慢写就好【代码】/* ***********************************************Author :angon**********************************

2016-09-25 00:19:43 777

原创 ACM-ICPC国际大学生程序设计竞赛北京赛区(2016)网络赛 A

字典树 + dfs题解:题意: 有nn本书, 每本书的格式为CATEGORY 1/CATEGORY 2/..../CATEGORY n/BOOKNAME, 现在要重新格式化这些书的格式. 第nn个category前面需要有4(n-1)4(n−1)个空格, 如果这本书在第nn个category上, 那么它前面要有4n4n个空格. 同一category里面, categor

2016-09-25 00:15:04 1286

原创 AC自动机(多模式串“KMP")模版

参考博客:kuangbin AC自动机小结,AC自动机算法  海量数据处理之Tire树(字典树)AC自动机,Aho-Corasick automation 是建立在字典树(Tire)上的多模式串快速匹配算法;一个典型的例子就是:给出N个单词,和一篇文章,判断文章中出现了多种(个)之前的单词。要想理解AC自动机必须先学Tire。Tire是一棵k叉树,除根节点之外,每个节点

2016-09-22 22:31:47 550

原创 欧拉路径/欧拉回路

欧拉环:图中经过每条边一次且仅一次的环;欧拉路径:图中经过每条边一次且仅一次的路径;欧拉图:有至少一个欧拉环的图;半欧拉图:没有欧拉环,但有至少一条欧拉路径的图。欧拉路径和欧拉图的具体判断可 参考此处 要特别注意的是,不要把欧拉路径和哈密顿路径搞混淆了,欧拉路径是每条边只经过一次的路径(而一个点可以经过多次),哈密顿路径是每个点只能经过一次的路径。哈密顿路径问题

2016-09-22 00:06:34 1767

C++代码统计工具 源码

用C++自己写的没有界面的代码统计工具,判断注释的核心算法等可以参考。 类似 C++的注释语法都可以用。 没有考虑双引号,如果需要可以自己研究加上

2017-11-12

Visual.Assist.X.v10.9.2118 破解版

下载安装后,把VA_X.dll复制到...\Visual Assist X\目录下。将原来VA_X.dll替换掉即可永久使用。 VS各版本都可以,只要找到Visual Assist X安装相应路径即可。 压缩包中有VS2010和VS2012的具体路径

2017-11-12

vs2010 + MFC + UDP socket 聊天程序。

自己写的 vs2010 + MFC + UDP socket 聊天程序。界面简洁,运行后只会产生一个exe,在局域网内输入对方ip即可发送信息。在同一台主机上也可以同时开两个instance。

2017-10-26

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