Scalpel's Blog

Stay hungry, Stay foolish.

Vim操作图解

Vim Graphical Cheat Sheet

偶然在网上发现这个图片,按照键位介绍了Vim的相关操作,实在是太强大了。 右击图片选择在新标签页打开,可查看大图。 详细教程:

Vim 的编译安装与卸载

Compile Vim

一、安装编译所需的工具和库 sudo apt install libncurses5-dev libgnome2-dev libgnomeui-dev libgtk2.0-dev libatk1.0-dev libbonoboui2-dev libcairo2-dev libx11-dev libxpm-dev libxt-dev python-dev python3-dev ruby-de...

51Nod 1274 最长递增路径(动态规划)

Dynamic Programming

题目链接 题意: 一个无向图,可能有自环,有重边,每条边有一个边权。你可以从任何点出发,任何点结束,可以经过同一个点任意次。但是不能经过同一条边2次,并且你走过的路必须满足所有边的权值严格单调递增,求最长能经过多少条边。 思路: 无向边可以拆为两个边权相同方向相反的有向边,先对边按照权重从小到大排序,设dp[i]为以点i为终点的最长路,则加上边(i, j)后,\(dp[j]=max(dp...

51Nod 1202 子序列个数(动态规划)

Dynamic Programming

题目链接 题意: 子序列的定义:对于一个序列\(a=a[1],a[2], \cdots ,a[n]\)。则非空序列\(a'=a[p_1],a[p_2],\cdots,a[p_m]\)为a的一个子序列,其中\(1<=p_1<p_2<\cdots<p_m<=n\)。 例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些...

解决Ubuntu Gnome 16.04中Fcitx不能在一些程序中正常使用的问题

Solve the problem about fcitx can't use in some application in ubuntu gnome 16.04

系统升级到16.04后发现在Wine QQ中无法输入中文,运行fcitx-diagnose,提示环境变量 XMODIFIERS的值被设为了”@im=ibus”而不是”@im=fcitx”等问题,可是在~/.xprofile以及xinitrc文件中添加相关设置都不管用,后来终于被我搜到了一篇解决方案 :是因为ibus-daemon这个文件存在,所以系统才强制设置这两个环境变量为ibus的,只需...

Ubuntu禁止MySQL服务开机自动启动

Stop MySQL service autorun on Ubuntu

之前在网上搜到了好多方法,比如注释掉/etc/init/mysql.conf的start on 或者直接执行sudo echo "manual" >> /etc/init/mysql.override 以及sudo update-rc.d -f mysql remove 都不管用,好像对于15.04之后的版本都失效了。后来终于搜到了一个解决方法: sudo systemctl ...

SDUT2883 Hearthstone II(第二类Stiring数)

2014年山东省第五届ACM省赛

题目链接 题意: 要举行n场比赛,需要m个桌台,每场比赛可以分配任意个桌台,每个桌台至少用一次,求有多少种分配方案 思路:   这里简要介绍一下Stiring数参考资料 一.第二类Stirling数   定理:第二类Stirling数\(S_{p,k}\)计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数。   证明:元素在拿些盒子并不重要,唯一重要的是各个盒子里装的...

Codeforces 670D1&D2(二分)

Binary Search

D1题目链接 D2题目链接 题意: 为了制作一种饼干需要n种原料,每种原料需要\(a_i\)克才能制作一个饼干,现在每种原料有\(b_i\)克,并且还有k克魔法粉,每克可以变成一克任意的一种原料,问最多可以制作多少饼干。 思路: 设二分可以制作的饼干数量mid,如果\(k> \sum_{i=1}^{n}a_i*mid-b_i\ (if\ a_i*mid>b_i)\)则可继...

C++ STL map在记录点对方面的妙用

Codeforces 650A & 660D

题目链接 题意: 给出n个点的坐标(x, y),求出曼哈顿距离 \(\left|x_i-x_j\right|+\left|y_i-y_j\right|\) 和欧几里德距离 \(\sqrt{(x_i-x_j)^2+(y_i-y_j)^2}\) 相等的点对有多少。 思路: 两边都平方并移项化简可得当\(x_i-x_j=0\)或\(y_i-y_j=0\)时,两种距离相等。所以可以统计出有多少个...

A Game(动态规划)

Dynamic Programming

题意: 两个人轮流从数列的两头取数,每个人每次取的数加到他的得分中,求在采取最优策略的情况下各自的得分。 思路: 设\(sum_i\)为数列num的前缀和,即\(num_1\)到\(num_i\)的和,\(ans_{i,j}\)为先手玩家在数列\(num_i\)至\(num_j\)中可以取得的最大值,因为各自采取最优策略,所以其最大值一定是取走最左边的\(num_i\)或最右边的\(num...