v2ray 配置

主要参考了https://toutyrater.github.io/

啊话说不知道写这个会不会被查水表

首先是服务端的安装
先校对时间

root@itemqqSS:~# date -R
Sat, 09 Feb 2019 13:03:45 +0000

下载脚本

root@itemqqSS:~# wget https://install.direct/go.sh
--2019-02-09 13:04:54--  https://install.direct/go.sh
Resolving install.direct (install.direct)... 2606:4700:30::681b:ae47, 2606:4700:30::681b:af47, 104.27.174.71, ...
Connecting to install.direct (install.direct)|2606:4700:30::681b:ae47|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/plain]
Saving to: ‘go.sh’

go.sh                   [ <=>                ]  13.59K  --.-KB/s    in 0s

2019-02-09 13:04:54 (101 MB/s) - ‘go.sh’ saved [13915]

执行脚本安装 V2Ray 继续阅读“v2ray 配置”

[线性结构DP][经典] UVA10271 Chopsticks

https://cn.vjudge.net/problem/UVA-10271

确实是经典。。。这种一开始没有什么头绪的dp,可以自己写出来几组样例,从中发掘最优解的性质,从而找到入手点。经过这样的一个xjb试探之后发现了:最优解的每组筷子中的短的那两根必定是在有序序列中相邻的。这样的话就可以确定一个转移的方法了,类似于背包里对于每个物品选还是不选,在这里对于每根筷子确定选还是不选,如果选,根据上面的性质他必须和之前的那根筷子组成一副。由此可以确定一个最基本的转移方程形式dp[i][j]=min(dp[i-1][j],dp[i-2][j-1]+(len[i]-len[i-1])^2),dp[i][j]表示对于前i个筷子分给j个人的最优解。这里还有一个问题是必须要给每个人再分一根最长的筷子,其实可以发现这个条件更好处理,只要满足i>=3*j就可以了:因为这个最长的筷子其实只要比另外俩长就可以,所以在最优解中的这根筷子有些人之间甚至可以换着用,顺序也无所谓,满足这个条件一定能分配好的。

对于这个状态转移方程,可以确定一个边界条件是dp[i][0]=0(从转移方程的第二部分可以得出来)

继续阅读“[线性结构DP][经典] UVA10271 Chopsticks”