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)后,,注意边权相同的边,可以开个...

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

Dynamic Programming

题目链接 题意: 子序列的定义:对于一个序列。则非空序列为a的一个子序列,其中。 例如4,14,2,3和14,1,2,3都为4,13,14,1,2,3的子序列。对于给出序列a,有些子序列可能是相同的,这里只算做1个,请输出a的不同子序列的数量。由于答案比较大,输出的结果即可。 思路:   参考资料   假设子序列的前k个数的子序列个数为,那么前k-1个子序列的个数就为个子序列,从k-1到...

解决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数计数的是把p元素集合划分到k个不可区分的盒子里且没有空盒子的划分个数。   证明:元素在拿些盒子并不重要,唯一重要的是各个盒子里装的是什么,而不管哪个盒子...

Codeforces 670D1&D2(二分)

Binary Search

D1题目链接 D2题目链接 题意: 为了制作一种饼干需要n种原料,每种原料需要克才能制作一个饼干,现在每种原料有克,并且还有k克魔法粉,每克可以变成一克任意的一种原料,问最多可以制作多少饼干。 思路: 设二分可以制作的饼干数量mid,如果则可继续增加数量,否则减少。 #include <iostream> #include <cstdio> using na...

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

Codeforces 650A & 660D

题目链接 题意: 给出n个点的坐标(x, y),求出曼哈顿距离 和欧几里德距离 相等的点对有多少。 思路: 两边都平方并移项化简可得当或时,两种距离相等。所以可以统计出有多少个点对它们的横坐标或者纵坐标相等,利用map可以非常方便地统计出来,注意去重。 #include <iostream> #include <map> #include <utili...

A Game(动态规划)

Dynamic Programming

题意: 两个人轮流从数列的两头取数,每个人每次取的数加到他的得分中,求在采取最优策略的情况下各自的得分。 思路: 设为数列num的前缀和,即到的和,为先手玩家在数列至中可以取得的最大值,因为各自采取最优策略,所以其最大值一定是取走最左边的或最右边的后,剩下的数列中,使后手玩家可以取的或最小,要逆推,i从n递减。 #include <iostream> #include <...