自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

超越自我就是成功

有梦为马,随处可栖。

  • 博客(218)
  • 收藏
  • 关注

转载 分布式算法(一致性Hash算法)

一、分布式算法    在做服务器负载均衡时候可供选择的负载均衡的算法有很多,包括: 轮循算法(Round Robin)、哈希算法(HASH)、最少连接算法(Least Connection)、响应速度算法(Response Time)、加权法(Weighted )等。其中哈希算法是最为常用的算法.  典型的应用场景是: 有N台服务器提供缓存服务,需要对服务器进行负载均衡,将请求平均分发到每...

2018-08-08 15:47:13 600

转载 负载均衡

1.什么是负载均衡?        当一台服务器的性能达到极限时,我们可以使用服务器集群来提高网站的整体性能。那么,在服务器集群中,需要有一台服务器充当调度者的角色,用户的所有请求都会首先由它接收,调度者再根据每台服务器的负载情况将请求分配给某一台后端服务器去处理。那么在这个过程中,调度者如何合理分配任务,保证所有后端服务器都将性能充分发挥,从而保持服务器集群的整体性能最优,这就是负载均衡...

2018-08-08 11:05:25 285

转载 如何定义与实现一个类的成员函数的回调函数 .

如果试图直接使用C++的成员函数作为回调函数将发生错误,甚至编译就不能通过。通过查询资料发现,其错误是普通的C++成员函数都隐含了一个传递函数作为参数,亦即“this”指针,C++通过传递一个指向自身的指针给其成员函数从而实现程序函数可以访问C++的数据成员。这也可以理解为什么C++类的多个实例可以共享成员函数但是确有不同的数据成员。由于this指针的作用,使得将一个CALLBACK型的成员函数作...

2018-08-01 17:55:19 764

原创 Linux下通过hiredis操作KV数据库redis

#include <iostream> #include <string.h> #include <string> #include <stdio.h>#include <cmath>#include <list>#include <algorithm>#include <vec

2018-07-19 19:54:11 311

原创 Bazel模型 -------10秒构建超大工程

在构建大工程的时候,编译效率低下往往令人非常烦恼。Google显然意识到了这一点,其内部开发并使用了Bazel(目前已经开源),Bazel使得原本用Maven需要10多分钟才能构建完成的项目在秒级的时间就完成。为什么Bazel速度这么快?通过我们组对源码的研究,得到了以下结论:一、Bazel采用特殊的增量模型,只编译必须要编译的文件。在介绍其增量模型前,首先需要了解几个必要的概念。   数据...

2018-05-24 13:03:24 1386

原创 Bazel增量模型剖析

SkyFrameBazel的并行评估和增量模型:   数据模型有以下项目:1.    SkyValue:节点。包含输入文件,输出文件,源文件和Build。2.    SkyKey:路径目录。3.    SkyFunction: 根据Key和依赖节点来构建节点。4.    Skyframe:源码中关于增量模型代码的名字。 SkyFunction是以SkyKey为参数的递归函数。SkyKey通过哈希M...

2018-05-21 14:00:00 711

翻译 Bazel FAQ

Google软件构建工具Bazel FAQGoogle软件构建工具Bazel FAQ本文是我的翻译,原文在这里。欢迎转载,转载请注名本文作者和原始链接注:如果想了解Bazel的原理,可以看看我之前翻译的Google Blaze原理及使用方法介绍系列Bazel是什么?Bazel是一个构建工具,即一个可以运行编译和测试来组装软件的工具,跟Make、Ant、Gradle、Buck、Pants和Maven...

2018-05-18 15:10:39 741

转载 关于c++内存的一点总结

对C/C++内存的管理一直是比较敏感的知识点,这方面的知识涉及到和底层硬件直接打交道,我关键又学那么长一段时间硬件,对这块知识点理解的又不是那么全面,借这段时间空暇时间多,稍微的做个总结,以后如果有更加深刻的理解的在做补充,如果有理解偏差,也请大家指正1:初步的了解c++对内存的分布            内存的空间,c++一共将这块空间分成了5个部分,就好比一个公司为了好管理,将公司分为5个部门...

2018-05-15 16:38:26 392

原创 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛 H-程序员的好印象

题目链接: 点击打开链接树形的dp搞一搞dp[i][0]表示前i个还没出现1的最大值dp[i][1]表示前i个已经出现1的最大值这题数据范围100....emmmm让我觉得n^2的最长上升子序列不是就可以么...#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++...

2018-05-05 16:16:57 424

原创 2018年北京信息科技大学第十届程序设计竞赛暨ACM选拔赛 A-PUBG

题目链接:https://www.nowcoder.com/acm/contest/118/A本来想用记忆化搜索的,搞了半天弄不出来,干脆跑dijkstra搞搞吧。#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;...

2018-05-05 16:13:57 279

原创 Codeforces Round #478 (Div. 2) C. Valhalla Siege

题目链接 : 点击打开链接维护一个前缀数组,然后每次先判断一下会不会重生,如果会就输出n,不会的话拿之前的怪物+这一波的怪物在前缀数组上做二分。#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;ll a[20000...

2018-05-04 20:03:36 159

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)J Most Powerful

题目链接 : 点击打开链接枚举出不同状态(1<<n)种下引爆不同炸弹的最大收益。全排列枚举爆炸顺序,找到最大值。#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;int Map[14][14];int...

2018-05-03 19:44:06 270

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛) F 猴子排序的期望

题目链接 点击打开链接总共排序有n!种,每种相同的字母的排序是k!(k为相同字母的个数),100!爆了LL 用Java搞定.import java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { BigInteger b[]=n...

2018-05-03 19:40:20 283

原创 Google Code Jam 2017 Qualification Round Problem B. Tidy Numbers

ProblemTatiana likes to keep things tidy. Her toys are sorted from smallest to largest, her pencils are sorted from shortest to longest and her computers from oldest to newest. One day, when practicin...

2018-05-03 18:06:51 316

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)C-勤奋的杨老师

    题目链接:点击打开链接    正向求最长上升子序列并且将记录,反向求最长上升子序列并且维护答案。    #include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;int dp1[500005];int dp2[5...

2018-05-02 20:36:42 257

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)B-杨老师的游戏

题目链接: 点击打开链接先全排列,枚举乘号和减号的位置#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;int a[11];int n;int work(){ long long tmp1,tmp2,...

2018-05-02 20:33:40 268

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)A-Red Rover

题目传送门: 点击打开链接枚举子串,然后字符串匹配,数据范围比较小。#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll;int ok[105];int n ;int ans;int work(int len1...

2018-05-02 20:31:02 207

原创 新疆大学ACM-ICPC程序设计竞赛五月月赛(同步赛)G-chess

    题目传送门:点击打开链接    题目可以转换为威佐夫博弈,向左,向下为在一堆石头中取任意数目的石子,向左下可以理解为从两堆石头中取相同数目的石子。直接利用威佐夫博弈结论解题。    #include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef lo...

2018-05-02 20:25:48 173

原创 Codeforces Round #478 (Div. 2) D题

   题目链接:点击打开链接    因为两个ghost的相对速度方向和直接平行的时候才可能相遇,推公式得到a*vx-vy相等,并且他们相对速度不为0的ghost才能相遇,因此用map维护相对速度为0的 节点的对数和a*vx-vy的对数就可以得到答案。    #include<bits/stdc++.h>using namespace std;#define rep(i,j,k) f...

2018-05-02 20:13:10 149

原创 Codeforces Educational Codeforces Round 43 E题

题目传送门:点击打开链接将hp加倍叠加在同一个人身上永远是最优秀的解法。因此可以枚举叠加在谁身上,最后取一个最大值。需要注意的是b=0的情况,被hack了一波emmmm.#include<bits/stdc++.h>using namespace std;#define rep(i,j,k) for(int i=j;i<=k;i++)typedef long long ll...

2018-05-02 20:08:56 225

原创 ZOJ 4028 LIS

题目传送门:    点击打开链接    第15届浙江省程序设计竞赛 (算是一个金牌界线题,不算很难,赛场上没怎么研究这道题,赛后晚上再被窝里一想,卧槽简单题)    这题先根据大小关系建图,然后用拓扑排序维护一下O(n)的效率,如何建图?    假设当前序列的第i个数值是2,则他一定比前面最小的那为1(第q个)的来的大,比前面最小的那个2(第k个)来的小,那么拿i向q连边,k向i连边,最多2*n条...

2018-05-02 20:04:17 260

原创 第十五届浙江省ACM程序设计竞赛小记

    因为前段时间一直在找实习的缘故,比赛前几乎没怎么练习,所以对这场比赛本不抱太大希望。    早上7.30在学校门口集合,坐着大巴去浙江大学紫金港校区比赛,这是第二年到浙江大学参加ACM竞赛,心情依旧是很欢悦。    下午12点开始正赛,我开场读了A题,队友一个登账号,打头文件,另外一个读B题。1分钟后,我发现A题是道水题,这个时候学弟正好打完头文件,我马上上去敲A题,因为一个小细节的错误,...

2018-05-02 19:51:33 1038

原创 先定一个小目标

    看了学长的博客,学长定下一个小目标,每天AC一道题目。    这位学长考上了浙大研究生后,放弃了读研深造,转而加入了一个创业团队,目前取得很好的成绩,是我的偶像。    他的成功让我看到了坚持的重要,每天AC一道题看似是一件很简单的事情,但是很多人却没办法做到,这其中的原因在于很多人心血来潮的时候总想着做些什么,但是时间一长就会懈怠,所以最后坚持的人取得了成功。    我定下一个小目标,每...

2018-05-02 19:33:27 720

原创 重拾博客

    从去年七月份开始,博客就很少更新。一来是因为创建了自己的个人网站,将一部分更新转移到了个人网站上,二来是因为有所懈怠。即将开启我的实习生涯了,打算重拾自己的博客。至于个人网站,不再更新。...

2018-05-02 19:27:01 139

原创 设计模式小节-2

    有两种组合策略的模式,分别为装饰器模式和策略模式。两种模式实现不同,但是都是将一些组合问题分解为局部,最后一并计算,但是装饰器模式在装饰类过多的时候会显得比较复杂。    装饰器模式的步骤:    1.创造一个接口。    2.创造一些实现该接口的实体类(多个)    3.创建实现接口的抽象装饰类。    4.创建拓展抽象装饰类的实体装饰类(多个)    5.应用,可以用实体装饰类来装饰接...

2018-04-07 11:23:34 259

原创 PAT甲级 1050. String Subtraction (20)

Given two strings S1 and S2, S = S1 - S2 is defined to be the remaining string after taking all the characters in S2 from S1. Your task is simply to calculate S1 - S2 for any given strings. However, i...

2018-04-07 11:18:17 182

原创 PAT甲级 1049. Counting Ones (30)

The task is simple: given any positive integer N, you are supposed to count the total number of 1's in the decimal form of the integers from 1 to N. For example, given N being 12, there are five 1's i...

2018-04-06 20:41:25 182

原创 PAT甲级 1048. Find Coins (25)

Eva loves to collect coins from all over the universe, including some other planets like Mars. One day she visited a universal shopping mall which could accept all kinds of coins as payments. However,...

2018-04-06 20:39:51 133

原创 PAT甲级 1047. Student List for Course (25)

Zhejiang University has 40000 students and provides 2500 courses. Now given the registered course list of each student, you are supposed to output the student name lists of all the courses.Input Speci...

2018-04-06 20:38:59 164

原创 PAT甲级 1046. Shortest Distance (20)

The task is really simple: given N exits on a highway which forms a simple cycle, you are supposed to tell the shortest distance between any pair of exits.Input Specification:Each input file contains ...

2018-04-06 20:37:55 160

原创 PAT甲级 1035. Password (20)

To prepare for PAT, the judge sometimes has to generate random passwords for the users. The problem is that there are always some confusing passwords since it is hard to distinguish 1 (one) from l (L ...

2018-04-06 20:36:15 159

原创 PAT甲级 1032. Sharing (25)

To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the same suffix. For example,...

2018-04-06 20:34:45 155

原创 PAT甲级 1031. Hello World for U (20)

1031. Hello World for U (20)Given any string of N (>=5) characters, you are asked to form the characters into the shape of U. For example, "helloworld" can be printed as:h de ll rlowoThat is...

2018-04-06 20:32:36 128

原创 PAT甲级 1014. Waiting in Line (30)

1014. Waiting in Line (30)Suppose a bank has N windows open for service. There is a yellow line in front of the windows which devides the waiting area into two parts. The rules for the customers to wa...

2018-04-06 20:29:19 120

原创 PAT甲级 1012. The Best Rank (25)

1012. The Best Rank (25)To evaluate the performance of our first year CS majored students, we consider their grades of three courses only: C - C Programming Language, M - Mathematics (Calculus or Line...

2018-04-06 20:14:20 129

原创 设计模式学习小结

六大原则1、开闭原则(Open Close Principle)开闭原则的意思是:对扩展开放,对修改关闭。在程序需要进行拓展的时候,不能去修改原有的代码,实现一个热插拔的效果。简言之,是为了使程序的扩展性好,易于维护和升级。想要达到这样的效果,我们需要使用接口和抽象类,后面的具体设计中我们会提到这点。2、里氏代换原则(Liskov Substitution Principle)里氏代换原则是面向对...

2018-04-06 16:35:17 227

原创 动态树学习笔记

动态树:一种用于维护有根树森林,支持对树的分割和合并操作的数据结构。 通常支持如下操作:查询一个点的父亲查询一个点所在的树的根修改某个节点的权向从某个节点到它所在的树的根的路径上的所有的节点的权增加一个数查询从某个节点到它所在的树的根的路径上的所有的节点的权的最小值把一棵树从某个节点和它的父亲处断开,使其成为两棵树让一棵树的根成为另一棵树的某个节点的儿子,从而合并这

2017-07-13 10:36:40 528

原创 关于双端队列优化多重背包问题的学习笔记

Problem:有n种物品,它们的重量和价值分别是wi和vi。现在要从中选出一些物品使得总重量不超过W,并且价值的和最大。第i种物品最多取mi个。暴力算法分析:三重循环枚举物品,背包容量,物品个数。效率为O(nW∑mi)如果用1,2.....2^k的组合来表示0到0~2^(k+1)-1的所有整数的话。可以在O(nW∑ log2(mi))的效率内解决问题。双端

2017-07-12 11:06:01 621

原创 POJ 2409 Let it Bead (Polya计数)

Let it BeadTime Limit: 1000MS Memory Limit: 65536KTotal Submissions: 5973 Accepted: 4000Description"Let it Bead" company is located upstairs at 700 Cannery Row in

2017-07-06 09:38:44 332

原创 POJ 1286 A - Necklace of Beads(Polya计数)

Necklace of BeadsTime Limit: 1000MS Memory Limit: 10000KTotal Submissions: 8401 Accepted: 3502DescriptionBeads of red, blue or green colors are connected together

2017-07-06 09:29:05 395

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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