- 博客(26)
- 收藏
- 关注
原创 已知递推式求第N项的O(logN)算法 (递推式转化为矩阵)
若有递推式f(n)=a(1)f(n-1)+a(2)f(n-2)+…+a(m)f(n-m),则可转化为以下矩阵形式:(你可以自己验算一下)随后快速幂即可。(求F(n)就相当于求上方n-m+1幂的矩阵经快速幂计算后的矩阵的第一行乘右边那个初始项矩阵) 例题:POJ 3070 FibonacciPOJ 3420 Quad Tiling
2014-01-26 08:09:47 2317
原创 HDU 4549 M斐波那契数列 (费马小定理降幂&矩阵快速幂)
http://acm.hdu.edu.cn/showproblem.php?pid=4549Problem DescriptionM斐波那契数列F[n]是一种整数数列,它的定义如下:F[0] = aF[1] = bF[n] = F[n-1] * F[n-2] ( n > 1 )现在给出a, b, n,你能求出F[n]的值吗?
2014-01-26 07:42:54 2237
原创 HDU 2973 / UVa 1434 / CERC 2008 YAPTCHA (威尔逊定理及其逆定理)
http://acm.hdu.edu.cn/showproblem.php?pid=2973思路:当n是合数时,((n-1)!+1)/n不为整数,所以在题目的和式中该部分为0;n是质数时就为1了。所以筛一遍素数就出符合3k+7类型的素数即可。额外说一句,当a,b互素时,形如an+b的素数有无穷个。(wiki:Dirichlet's theorem o
2014-01-24 10:27:06 3139
原创 O(NloglogN)素数筛法与O(N)素数筛法的对比测试
#include #include #include using namespace std;const int mx = 1000000 + 1; ///在(1,mx)的范围内寻找素数const int sqrt_mx = (int)sqrt((double)mx);bool vis[mx];int prime[mx / 10]; ///在mx>65000时建议写成 int pr
2014-01-24 09:09:12 2999
原创 POJ 2236 Wireless Network (并查集&用set进行优化)
http://poj.org/problem?id=2236思路:用set保存已修好的电脑(使用set是为了去重),每次修电脑p时就把set中的与p距离完整代码:/*766ms,640KB*/#include#includeusing namespace std;int x[1005], y[1005];int fa[1005], rk[1005];
2014-01-20 10:54:06 1245
原创 POJ 1703 Find them, Catch them (并查集&利用异或的性质优化)
http://poj.org/problem?id=1703思路和食物链那题一样的。完整代码:/*297ms,1156KB*/#include#includeint fa[100005], rk[100005];int find(int x){ if (fa[x]) { int tmp = fa[x]; fa[x] = find(fa[x])
2014-01-20 10:49:22 1551
原创 POJ 1182 / Noi 01 食物链 (并查集&代码优化)
http://poj.org/problem?id=1182/*235ms,776KB*/#includeconst int mx = 50000 + 5;const int mxadd = 3 * 50000;int fa[mx], rk[mx];int find(int x){ if (x != fa[x]) { int tmp = fa[x]; fa
2014-01-19 21:36:49 1549
原创 HDU 2544 最短路 (SSSP & O(V^2)的Dijkstra算法)
http://acm.hdu.edu.cn/showproblem.php?pid=2544模板题。完整代码:/*15ms,276KB*/#include#includeconst int mx = 101;int n, m, dis[mx][mx], disTo[mx];bool vis[mx];void dij(int st){ int i,
2014-01-14 08:58:44 1356
转载 NOI 国家集训队论文集
鉴于大家都在找这些神牛的论文。我就转载了这篇论文合集国家集训队论文分类组合数学计数与统计2001 - 符文杰:《Pólya原理及其应用》2003 - 许智磊:《浅谈补集转化思想在统计问题中的应用》2007 - 周冬:《生成树的计数及其应用》2008 - 陈瑜希《Pólya计数法的应用》数位问题2009 - 高逸涵《数位计数问题解法研究》2009 - 刘聪
2014-01-13 23:43:50 2195
原创 POJ 1032 / Northeastern Europe 1998 Parliament (贪心)
http://poj.org/problem?id=1032题意:把N个人分成若干组且每组人数不同,每天每组派一个人出来开会,并且每天开会的这群人不与前面的日子的开会人群不完全相同。也就是说,求N1+N2+...+Nn=N,使N1,N2,...,Nn都不相等且他们的乘积最大。思路:分的组越多乘积越大(在题意下ab>a+b)则有分法:设有一连续递增序列为2,3
2014-01-13 22:47:12 1413
原创 SWERC 2011 / HDU 4196 Remoteland (数论&想法题)
RemotelandTime Limit: 10000/5000 MS (Java/Others) Memory Limit: 262144/131072 K (Java/Others)http://acm.hdu.edu.cn/showproblem.php?pid=4196思路:显然取n!是最大的,但这不一定是一个完全平方数,需要把多余的部分除
2014-01-13 20:39:50 1333
原创 POJ 1183 / Noi 01 反正切函数的应用 (等式变形 & 能否有比O(a)更快的算法?)
反正切函数的应用http://poj.org/problem?id=1183Time Limit: 1000MSMemory Limit: 10000K由题意得等式(c-a)(b-a)=a2+1(注意xy+Dx+Ey+F=0的等式都可以化为(x+E)(y+D)=DE-F的形式)然后令m=c-a,求出当m|(a2+1)时的b
2014-01-13 10:43:16 1168
原创 并查集(union-find)模板
#includeusing namespace std;const int mx = 100005;int fa[mx], rk[mx];int find(int x) {return fa[x] = (fa[x] == x ? x : find(fa[x]));}void union(int x, int y){ x = find(x), y = find(y); if (
2014-01-13 08:43:49 1156
原创 UVa 10139 Factovisors (阶乘能否整除?)
10139 - FactovisorsTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1080水题。注意在O(log n / log p)时间内求出n!
2014-01-12 10:22:14 1338
原创 UVa 10407 Simple division (一阶差分序列 & gcd)
10407 - Simple divisionTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=1348先求出原序列的一阶差分序列,然后求出所有非零元素的gcd即
2014-01-12 09:43:38 2303
原创 UVa 118 Mutant Flatworld Explorers (模拟机器人移动)
118 - Mutant Flatworld ExplorersTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=54旋转时+1或+3再取模即可。完整
2014-01-12 08:02:46 2414 1
原创 UVa 10034 Freckles (MST & 稠密图的O(V^2)的Prim算法)
10034 - FrecklesTime limit: 3.000 secondshttp://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=116&page=show_problem&problem=975纯模板题。完整代码:/*0.019s*/#inclu
2014-01-11 15:52:48 1266
转载 用两个栈实现一个队列——我作为面试官的小结
(PS:可在《算法(第四版)》的1.3.49看到此题)两年前从网上看到一道面试题:用两个栈(Stack)实现一个队列(Queue)。觉得不错,就经常拿来面试,几年下来,做此题的应该有几十人了。通过对面试者的表现和反应,有一些统计和感受,在此做个小结。 用C++描述,题目大致是这样的: 已知下面Stack类及其3个方法Push、Pop和 Count,请用2个Stack实现
2014-01-11 10:04:40 906
转载 apache和tomcat的区别
经常在用apache和tomcat等这些服务器,可是总感觉还是不清楚他们之间有什么关系,在用tomcat的时候总出现apache,总感到迷惑,到底谁是主谁是次,因此特意在网上查询了一些这方面的资料,总结了一下: 解析一 apache支持静态页,tomcat支持动态的,比如servlet等, 一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由
2014-01-10 19:11:04 820 2
原创 C和C++中十进制转八进制和十六进制
C:#includeint main(void){ unsigned int a = 123; printf("%o\n", a); // 八进制 printf("%x\n", a); // 字母小写的十六进制 printf("%X\n", a); // 字母大写的十六进制 return 0;}C++:#includeusing namespace std;v
2014-01-10 18:41:26 3258
原创 C语言Unicode小记
#include #include #include #include const int SIZE = 10;int main(void){ char str[SIZE]; wchar_t wstr[SIZE]; //wchar_t wstr[] = {0x5b89, 0x5353, 0}; /*本地化,设置语言运行环境*/ setlocale(LC_ALL, "Ch
2014-01-06 16:41:00 1220
原创 Java中的中文字符串和Unicode码的相互转换
public class Main { public static String ChinesetoUnicode(String str) { StringBuffer sb = new StringBuffer(); char[] charArr = str.toCharArray(); for (char ch : charArr) { if (ch > 127) {
2014-01-06 15:04:44 1443
转载 Eclipse 实用配置整理
所有的配置,点击菜单Windows -> Preferences得到1、编码改成UTF-8General -> Workspace -> Text file encoding 改成 UTF-8即可Web -> JSP Files -> Encoding设置成UTF-82、修改Eclipse3.7以上中文字体太小的问题a)用xp sp3兼容模式运行eclipse,
2014-01-03 22:39:57 818
转载 Android xml资源文件中@、@android:type、@*、?、@+的含义和区别
一、@ 代表引用资源用法1. 引用自定义资源。格式:@[package:]type/nameandroid:text="@string/hello"用法2. 引用系统资源。格式:@android:type/name android:textColor="@android:color/opaque_red" 注意:其实@android:type/nam
2014-01-03 19:16:18 973
转载 轻量级框架与重量级框架的区别
轻量级框架和重量级框架解决问题的侧重点是不同的。 轻量级框架侧重于减小开发的复杂度,相应的它的处理能力便有所减弱(如事务功能弱、不具备分布式处理能力),比较适用于开发中小型企业应用。采用轻量框架一方面因为尽可能的采用基于POJOs的方法进行开发,使应用不依赖于任何容器,这可以提高开发调试效率;另一方面轻量级框架多数是开源项目,开源社区提供了良好的设计和许多快速构建工具以及大量现成可供参考
2014-01-02 17:53:26 1189
转载 MySQL数据类型详解
数值类型 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数。许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 MySQL 允许我们指定数值字段中的值是否有正负之分或者用零填补。 表列出了各种数值类型以及它们的允许范围和占用的内存空间。类型大小范围(有符号)范围(无
2014-01-02 15:33:37 895
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人