摘要: 题意:m是长为n的数组,值均为非负数,前k个数按以下方式产生:(1)m[0]=a;(2)m[i] = (b * m[i - 1] + c) % r其中1≤k≤100000,1≤n, a, b, c, r≤1000000000对k≤ j≤ n - 1,m[j]是它前面k个数中没出现的最小非负数,形式地,m[j]=min{x|x ≥ 0 && x != m[j - 1]&& x != m[j - 2] ...&& x != m[j - k]}求m[n - 1]输入格式为:T(测试案例数,每个测试案例2行)n ka b c rn ka b c r... 阅读全文
posted @ 2013-01-31 09:57 ttang 阅读(1273) 评论(0) 推荐(0)
摘要: Windows自带计算器不适合计算很长的式子,而且没有历史命令功能,这个对于重复性地计算多个相似的式子很有用。Matlab启动太慢,一般的python要想用个log什么的挺麻烦R很好,因为本身就和Matlab很像,也是一门做计算的语言,启动很快唯一不好的是,要区分R和Matlab的语法差异,这又是个额外的负担……想起来有段时间我觉得自己都有点分不清C++和Java语法的区别了,尤其是new的用法所以,准备一个R quick reference会好一点其实还可以准备其他的quick reference,比如C++/C/STL/Matlab/gdb等等凡是感兴趣的,都可以准备一份,这些网上都有貌似 阅读全文
posted @ 2013-01-24 23:53 ttang 阅读(897) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1830 某些开关的动作可能影响另一些开关的状态,因此以开关为节点,如果存在这种关系就加入一条有向边(开始我想成对称的了,浪费了很多时间- -),这样就构成了一个图,可以用邻接矩阵表示(但是要转置一下,后面细说)。当某个开关按下时,其自身状态改变,受其影响的开关的状态也改变。 用两个N维向量表示初始状态和结束状态,两者逐个元素异或,就得到了开关状态的变化。 以第一个样例输入为例分析,3个开关,两两相连,初始状态000,最终状态111,开关对应的邻接矩阵为将对角线的0全部换成1,得矩阵A=将矩阵每一列想象为一个开关按下后产生的效果(1表示状态翻 阅读全文
posted @ 2013-01-24 09:37 ttang 阅读(1509) 评论(2) 推荐(2)
摘要: 同济大学线性代数A网上教案(很好)http://web.tongji.edu.cn/~math/xxds/kcja/kcja_a/kcja_a.htm向(矢)量空间(from wiki):给定域F,一个矢量空间是个集合V并规定两个运算:矢量加法:V×V→V,把V中的两个元素v和w变为V中另一个元素,记作v+w;标量乘法:F×V→V,把F中的一个元素a和V中的一个元素v变为V中的另一个元素,记作av。这两个运算符合下列公理(对F中的任意元素a、b以及V中的任意元素u、v、w):矢量加法结合律:u+(v + w) = (u + v)+w,矢量加法交换律:v + w=w + v, 阅读全文
posted @ 2013-01-23 16:21 ttang 阅读(1578) 评论(0) 推荐(0)
摘要: 定义13.1矩阵的行向量组的秩称为的行秩,据政的列向量组的秩称为的列秩.定理13.1设的充分必要条件是中有一个,并且所有含(如果存在的话).(子式定义:在矩阵中,任取行列的元素,按原排列组成的阶行列式,称之为的阶子式。)推论13.2设,则(1)的列秩的列秩;(2)的列秩的行秩.定义13.2矩阵的行秩和列秩通称为的秩,记为.显然,矩阵的秩是唯一确定的,并且,,,零矩阵的秩等于0.秩的一个等价定义:若矩阵中有一个阶子式,并且所有的阶子式全为零,则称为的最高阶非零子式,称为的秩,记。推论13.3若矩阵中有一个阶子式不为0,则;若矩阵中所有阶子式全为0,则.推论:当阶方阵的行列式,则;反之,当阶方阵的 阅读全文
posted @ 2013-01-23 11:49 ttang 阅读(2383) 评论(0) 推荐(0)
摘要: 1、我们说矩阵的逆,是针对方阵(见下面wiki的定义)给定一个n阶方阵,若存在一n阶方阵,使得,其中为n阶单位矩阵,则称是可逆的,且是的逆矩阵,记作。若方阵的逆阵存在,则称为非奇异方阵或可逆方阵(http://zh.wikipedia.org/wiki/%E9%80%86%E7%9F%A9%E9%98%B5)性质:(1)矩阵的逆是唯一的(2)如果A可逆,数λ≠0,那么(A)-1=A-1;(3)如果A可逆,那么,AT也可逆,而且( AT)-1=( A-1)T;(4)如果A,B皆可逆,那么AB也可逆,且(AB)-1=B-1A-1矩阵的初等变换定义下面三种变换称为矩阵的初等行变换:1.互换两行(记) 阅读全文
posted @ 2013-01-23 11:27 ttang 阅读(3110) 评论(0) 推荐(0)
摘要: 平台:Windows7,python31、关于是直接用python for Windows还是activePython(还有ipython什么的,就不知了):(1)貌似是说activePython集成了Windows的API(但我基本不会用到);(2)activePython可能功能更全面一点(从安装包大小就可以大概猜到),但是更新没有python for Windows快,比如我现在用的activePython中python版本是3.1,而python for Windows中python版本是3.3。(3)从二者的交互式窗口来比较,我觉得不自己配置的话activePython的Python 阅读全文
posted @ 2013-01-22 11:54 ttang 阅读(400) 评论(0) 推荐(0)
摘要: 最近开始学python,参考书是《head first python》,里面有一个例子教初学者如何发布共享代码到pypi,然后最后一步遇到这个问题:You are not allowed to store 'nester' package information找到原因是:nester这个名字已经被用过了,要改个名字,比如XXX_nester参考:http://forums.oreilly.com/topic/52526-ch-2-pg-48/ 阅读全文
posted @ 2013-01-22 11:37 ttang 阅读(748) 评论(0) 推荐(0)
摘要: 题:用0,1,2三个字符组成n长的字符串,连续出现两个0或两个1的字符串有多少种?符号说明:f(n)表示符合要求的n长字符串数,f0(n),f1(n),f2(n)分别表示以0,1,2结尾的符合要求的n长字符串数用递归,考察n长字符串最后一个元素:(1)若为2,则前n-1个元素恰对应一个符合要求(即连续出现两个0或两个1)的字符串,有f(n-1)个(2)若为0,则考察倒数第二个元素,(1)若为0,则前n-2个元素任意取,有3n-2个符合要求的字符串;(2)若为1,则前n-1个字符是以1结尾的符合要求的长为n-1的字符串,有f1(n-1)个;(3)若为2,则前n-1个字符是以2结尾的符合要求的长为 阅读全文
posted @ 2013-01-21 23:56 ttang 阅读(1756) 评论(0) 推荐(0)
摘要: 题:(1)5个0,4个1组成的字符串中,出现01或10的次数为4的不同字符串个数(2)一般地,n个0,m个1组成的字符串中,出现01或10的次数为k的不同字符串个数例如,10100011是一个满足要求的字符串(这里10和01是可以重用的,例如,010算是出现1次01,出现1次10)(这是刚刚考过的组合数学期末试题,表示没能当场做出,选错方法了- -我用了递推法,写出了递归式但是不会解,因为有n、m、k三个参数——这也许不是正确的方法)----------------------符号说明:1)N01和N10分别表示字符串中01的个数和10的个数2)N=N01+N10,表示字符串中01和10的总出 阅读全文
posted @ 2013-01-21 23:28 ttang 阅读(6567) 评论(9) 推荐(0)
摘要: 参考了http://chojemmy.com/2012/02/05/youdao-shortcut-key/第一次接触按键精灵,不是很顺利,记录一下遇到的问题,以及最后的解决方案1、下载安装,http://www.anjian.com/2、打开按键精灵——新建3、截图,可以用程序自带的“抓抓”,点上边栏的“抓抓”——左边栏的“图像”——“截屏”,这个时候整个屏幕就被截到下面方框里(当然,截屏之前要先把要截的图调到屏幕上),然后拖动滚动条到需要的位置,按住鼠标左键拖动即可截图,弹出“位图另存为”,保存即可。最后得到这样一个小图片:(就是要在屏幕上找到这样一个图片,将鼠标移过去,单击一下)4、点一 阅读全文
posted @ 2013-01-08 23:24 ttang 阅读(2872) 评论(0) 推荐(0)
摘要: 如题,这个主要是对于大整数(比如200位的十进制数),而且能够以很高的概率得到正确的判断比如下面这个程序判断10000以内的素数,正确率达到98.95%因为素性测试目前貌似没有有效的确定性算法(所谓有效,应该是指判断n是否为素数,花费时间T是n的位数的多项式),所以这个概率算法很有用用概率算法是不是始终不放心?虽然错误概率很小,毕竟还是存在啊。实际上,当算法的错误概率小于机器的硬件出错的概率时,这就不是问题了(是的,硬件也会出错的,而且你的程序运行时间越长,出错概率越大)关于这个算法,算法导论上也有讲,可以到那里了解算法的原理(偷个懒- -)//MillerRabin素性测试,概率算法//n 阅读全文
posted @ 2013-01-07 17:53 ttang 阅读(2173) 评论(0) 推荐(0)
摘要: #define min(a,b) ((a) < (b) ? (a) : (b))#define max(a,b) ((a) > (b) ? (a) : (b)) 我常常会用这两个宏,一般来说,宏比函数更高效,但是如果里面元素是函数的话,就不是这样。因为宏只是在编译预处理阶段执行简单替换,如果你有两个函数f和g,代码中写了min(f(a),g(a)),那么就会被展开为((f(a)) < (g(a)) ? (f(a)) : (g(a))),这是4次调用,而不是想象中的先算f(a),再算g(a),然后传给min——那是函数的行为,不是宏! 如果f和g是递归函数的话,结果更糟糕 实际 阅读全文
posted @ 2013-01-07 14:54 ttang 阅读(6917) 评论(0) 推荐(1)
摘要: 我发现之前有这么一篇,竟然又写了一遍……不过,这个比较简单,没用class,姑且命名为2经常看到有人写动态规划程序就用dp命名数组,发觉挺好,因为想一个合适的名字太费劲了,而且便于重用(与问题无关)最优二叉查找树的思想:(建议还是看书吧,算法导论上有,大多数算法书上应该都有,挑一个容易读懂的看,有些算法算法导论上讲得很复杂(也很严密)https://class.coursera.org/algo2-2012-001/lecture/index,这里也有一个系列的视频专门讲最优二叉查找树的(英文))具备最优子结构性质:如果T是一个由n个节点构造的最优二叉查找树,根为r,那么左子树也是一个最优二叉 阅读全文
posted @ 2013-01-06 21:46 ttang 阅读(974) 评论(0) 推荐(0)
摘要: 有些命令不太常用,每次用到都要上网查,写这篇博客是准备每次查过一个命令就记下来,所以这篇博客会持续更新1、录制宏有个文件每一行的前两个字符都是空格,要删除这些空格命令模式下移动光标到第一行开头,输入:qaxxjq50@a第一个q表示宏录制的开始,最后一个q表示宏录制的结束a表示这个宏的名字,调用a就是执行这个宏x表示删除一个字符,j表示下移一行(也可以用下方向键代替)50表示执行50次,@a表示调用宏a--ps:这个任务也可以在notepad++里完成,同样采用录制宏的方式,那个是图形化,更好办2、Ctrl+P——补全在插入模式下Ctrl+P具有补全的功能,对长的函数名或者变量名应该有用 阅读全文
posted @ 2013-01-05 17:50 ttang 阅读(214) 评论(0) 推荐(0)
摘要: 这个证明让我花了好大力气(可能是我太笨了,貌似同学都做出来了,也没人说这个难),开始想证明,似乎不会,就想偷懒上网找答案,找不到,又回来想……我觉得关键在于把规律看出来,写个程序,打印几个例子看一看,我就是把16个元素的打印出来,找到规律,虽然说找到规律要证明也要一点工夫,但是,找到规律就是找到了努力的方向,成功就不远了--位反转:把一个数的二进制表示倒过来(最低位换到最高位,次低位换到次高位……),比如6的二进制表示为110,反转后是011,即6对应的位反转数为3。对位反转应该要限制二进制表示的位数,因为如果把6表示成4位二进制0110,反转后是6,而不是3.(这里位反转数是为了称呼方便自造 阅读全文
posted @ 2013-01-04 23:10 ttang 阅读(708) 评论(0) 推荐(0)
摘要: http://poj.org/problem?id=1458#include <stdio.h>#include <iostream>#include <string>#define max(a,b) ((a) > (b) ? (a) : (b))using namespace std;#define MAX 1000int dp[MAX][MAX];//dp[i][j]表示s1前i个字符组成的substring与s2前j个字符组成的substring的最长公共子序列长度int main(int argc, const char *argv[]){ s 阅读全文
posted @ 2013-01-02 23:09 ttang 阅读(198) 评论(0) 推荐(0)
摘要: 请看这里http://blog.sina.com.cn/s/blog_6a616313010183iz.html 阅读全文
posted @ 2012-12-30 13:48 ttang 阅读(329) 评论(0) 推荐(0)
摘要: Java么有C++的参数默认值的机制,要用重载,请看下面的对比//C++参数默认值机制#include <iostream>using namespace std;class testDefaultParam {public: testDefaultParam (int a, int b = 2){ cout << a * b << endl; } void test(int a = 1234){ cout << a << endl; } virtual ~testDefaultParam (){}private: /* data.. 阅读全文
posted @ 2012-12-27 12:02 ttang 阅读(11093) 评论(0) 推荐(0)
摘要: max spacing k-clustering问题:给N个点,给出点对之间距离的定义(比如欧几里德距离),spacing定义为任意两个属于不同类的点s和t距离的最小值,要求聚成k个类,使得spacing最大算法:类似kruskal算法,将所有边从小到大排序,开始每个点属于1个cluster,然后将距离最小的两个点合并,继续下去,直到只剩下k个cluster--调试这个程序花了不知多少时间……各种错误,数组忘记初始化(而且竟然每次运行结果都一样……),边界<=写成<,而且最重要的是,把并查集的实现写错了-_-下面是并查集的实现class UFS{public: UFS(int no 阅读全文
posted @ 2012-12-27 00:34 ttang 阅读(1134) 评论(0) 推荐(0)
摘要: http://blog.csdn.net/www_123du_com/article/details/1221988挺有用,比如要转到可执行程序所在目录,源程序目录…… 阅读全文
posted @ 2012-12-24 13:45 ttang 阅读(979) 评论(0) 推荐(0)
摘要: 读了一篇博客:《写给毕业生》http://www.cnblogs.com/JimmyZhang/archive/2012/12/20/2826913.html其中提到,读书不要读完就扔,写一点笔记我觉得很对,我有很多东西读过了,然后现在忘掉了(悲观地说就是白读了,也可以乐观地说,它已经潜移默化地改变了我-_-)我觉得不仅读书可以做笔记,学习也可以做笔记,学一种技术也可以做笔记,解决一个问题的过程也可以记下来(尤其是那种很难网上直接搜索到解决方案的)免得以后重新走那些走过的路——那是很令人沮丧的——明明做过,却不得不重做一遍,就像之前没做过那样这也是这个博客存在的一部分理由 阅读全文
posted @ 2012-12-23 17:33 ttang 阅读(190) 评论(0) 推荐(0)
摘要: 不想看英文的题目?翻译在后面Problem Statement Manao is traversing a valley inhabited by monsters. During his journey, he will encounter several monsters one by one. The scariness of each monster is a positive integer. Some monsters may be scarier than others. The i-th (0-based index) monster Manao will meet has s 阅读全文
posted @ 2012-12-23 15:23 ttang 阅读(1140) 评论(2) 推荐(0)
摘要: 虽然第二题竟然最后没通过system test,用递归的方法超时了还好challenge 3个,以微弱优势胜过第二名happy!继续努力 阅读全文
posted @ 2012-12-21 02:00 ttang 阅读(232) 评论(0) 推荐(0)
摘要: 如题继续努力! 阅读全文
posted @ 2012-12-12 22:37 ttang 阅读(239) 评论(0) 推荐(0)
摘要: 结果就是被覆盖了!TAB补全惹的祸然后试着用photorec恢复,没找着,虽然这个小工具确实能找到很多东西不知道有没有工具能阻止这种覆盖……如果你知道,欢迎告诉我 阅读全文
posted @ 2012-12-08 20:54 ttang 阅读(336) 评论(0) 推荐(0)
摘要: 假设某一数据文件包含一系列的8位字符,且所有256个字符频度都差不多:最大字符频度小于最小字符频度的2倍。证明:这种情况下,赫夫曼编码的效率与普通定长编码就差不多了(原文是:Prove that Huffman coding in this case is no more efficient than using anordinary 8-bit fixed-length code,这个翻译的……都不像证明题了)构造一个最小优先队列,将各个字符作为一个只有根结点的子树,加入到队列中,设这个时候各个子树最大频度为MAX,最小的两个频度为MIN1, MIN2(MIN1 <= MIN2),由已 阅读全文
posted @ 2012-12-08 16:08 ttang 阅读(1278) 评论(0) 推荐(0)
摘要: 题目:假设有一个字母表C={0,1,2,3,4,...,n-1}上的最优前缀编码,我们想用尽可能少的位来传输。证明:C上的任意一个最优前缀编码都可由 2n-1+n*ceil(log(n)) 个位的序列来表示。(提示:用2n-1位说明树的结构,通过树的遍历来发现)解答:http://stackoverflow.com/questions/759707/efficient-way-of-storing-huffman-tree?answertab=votes#tab-top翻译一下:对字母表n个字符用定长二进制编码,每个字符用N=ceil(log(n))个位(bit),C对应的huffman树有n 阅读全文
posted @ 2012-12-08 13:30 ttang 阅读(1179) 评论(0) 推荐(0)
摘要: ArbitrageTime Limit:1000MSMemory Limit:65536KTotal Submissions:11589Accepted:4866DescriptionArbitrage is the use of discrepancies in currency exchange rates to transform one unit of a currency into more than one unit of the same currency. For example, suppose that 1 US Dollar buys 0.5 British pound, 阅读全文
posted @ 2012-12-08 00:37 ttang 阅读(333) 评论(0) 推荐(0)
摘要: 有个插件叫code_complete,也很不错,本来我基本上打算用它了,可是有个小问题折腾很久也没搞定:给main加一个return 0;后来我看到有个经验丰富的资深VIM用户说他最早接触的是code_complete,然后又换了一个什么插件,最后遇到snipmate,说有相见恨晚的感觉,因为那个时候他已经为了customize前两个插件写了上千行代码,他说他再也不必找其他类似功能的插件了——可见,这是个杀手级插件!然后我就试了一下snipmate,果然超赞,它默认的风格就是我喜欢的那种(我之前还调整了code_complete的风格),而且main默认的就是包含return 0;就是如此的合 阅读全文
posted @ 2012-12-05 21:07 ttang 阅读(13704) 评论(0) 推荐(2)