“无敌”的C++

TCP发送接收过程图

# Hello, SciPy!

“学而时习之，不亦乐乎”，利用放假几天时间，简单复习了一下之前学习的Machine Learning课程，并且用刚上手没两天的SciPy重新完成了大部分Ng的课后作业，SciPy真的非常好用~

SciPy

# OpenStack网络迷宫：Neutron以及LBaaS

“一团糟” – 我对OpenStack网络实现的第一感觉

OpenStack的网络模块相信不会有人否认是整个OpenStack中最复杂的部分，即使是OpenStack社区的成员也常常被网络模块的复杂性搞的焦头烂额。因为研究负载均衡的关系，我不得不对网络模块进行一点粗浅的了解，这里按照个人的理解把这些东西总结起来写下来。

PS：本文中所描述的所有概念和实现均基于OpenStack当前版本（neutron git version : 2921d3c686b5f5cd68d51f906766983f975b1cf2）,在此也强烈建议任何想要了解OpenStack网络的同学一定要实际搭建一个可用的环境来对其中网络的每一个环节进行推敲。

# SRM657 DIV1 Problem Sets

Cat Snuke came up with some problems. He wants to construct as many problem sets as possible using those problems. Each problem set must contain exactly three problems: one for the Easy slot, one for the Medium slot, and one for the Hard slot. Each problem can only be assigned to a single slot in a single problem set. He came up with E + EM + M + MH + H problems in total. The distribution of the problems is as follows:

• E problems can only be used in the Easy slot.
• EM problems can be used either in the Easy slot or the Medium slot.
• M problems can only be used in the Medium slot.
• MH problems can be used either in the Medium slot or the Hard slot.
• H problems can only be used in the Hard slot.

Return the maximal number of problem sets he can construct.

# SRM656 DIV1 Random Pancake Stack

Charlie has N pancakes. He wants to serve some of them for breakfast. We will number the pancakes 0 through N-1. For each i, pancake i has width i+1 and deliciousness d[i].

Charlie chooses the pancakes he is going to serve using the following randomized process: He starts by choosing the first pancake uniformly at random from all the pancakes he has. He places the chosen pancake onto a plate. This pancake now forms the bottom of a future stack of pancakes. Then, Charlie repeats the following procedure:

1. If there are no more pancakes remaining, terminate.
2. Choose a pancake uniformly at random from the pancakes that have not been chosen yet.
3. If the width of this pancake is greater than the width of the pancake on top of the stack, terminate without taking it.
4. Place the chosen pancake on top of the stack and go back to step 1.

You are given the vector d with N elements. The total deliciousness of a serving of pancakes is the sum of the deliciousness of all pancakes used in the serving. Compute and return the expected value of the total deliciousness of the pancakes chosen by Charlie.