上一页 1 2 3 4 5 6 ··· 12 下一页
摘要: 【转】http://www.cnblogs.com/Knuth/archive/2009/09/04/1559949.html约定:x%y为x取模y,即x除以y所得的余数,当x1) {//一直计算,直到指数小于或等于1 if((p%2)!=0) {// 如果指数p是奇数,则说明计算后会剩一个多余的数,那么在这里把它乘到结果中 odd*=main; //把“剩下的”乘起来 } main*=main; //主体乘方 p/=2; //指数除以2 } return main*odd; //最后把主体和“剩下的”乘起来作为结果}够完美了吗?不,还不够!看出来了吗?main是没有必要的,并且我们可... 阅读全文
posted @ 2013-08-03 10:24 Griselda. 阅读(657) 评论(0) 推荐(0) 编辑
摘要: 【转】http://www.cnblogs.com/Knuth/archive/2009/09/04/1559951.html#2576160[定理1] 标准Fibonacci序列(即第0项为0,第1项为1的序列)当N大于1时,一定有f(N)和f(N-1)互质其实,结合“互质”的定义,和一个很经典的算法就可以轻松证明对,就是辗转相除法互质的定义就是最大公约数为1数学归纳法是很有用的证明方法,我们接下来这个定理用数学归纳法就很好证明:[定理2]若i为奇数, f(i)*f(i)=f(i-1)*f(i+1)+1,否则f(i)*f(i)=f(i-1)*f(i+1)-1对,这个定理用数学归纳法可以轻松证 阅读全文
posted @ 2013-08-03 10:23 Griselda. 阅读(276) 评论(0) 推荐(0) 编辑
摘要: 这里指的java速成,只限于java语法,包括输入输出,运算处理,字符串和高精度的处理,进制之间的转换等,能解决OJ上的一些高精度题目。1. 输入:格式为:Scanner cin = new Scanner (new BufferedInputStream(System.in));例程:import java.io.*;import java.math.*;import java.util.*;import java.text.*;public class Main{ public static void main(String[] args) { Scanner cin = new Sca. 阅读全文
posted @ 2013-08-03 09:32 Griselda. 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 上海交大 戴文渊 大牛写的东西,建议大家看看 yiyiyi4321 2007-07-10 13:49:30.0http://dwyak.spaces.live.com/?_c11_BlogPart_BlogPart=blogview&_c=BlogPart&partqs=cat%3d%25e7%25ab%259e%25e8%25b5%259bup yiyiyi4321 2007-08-27 18:46:01.0TEAM对我意味着什么 ceshi 2008-04-16 22:25:16.0这个世界是假的,而TEAM是真的。什么是“假”?活在这个世界上,要说很多违心的话,做很多违心 阅读全文
posted @ 2013-08-01 22:28 Griselda. 阅读(286) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个数组,问你对于第i个数,从最后一个比它大的数到它之间比它小的数中最大的那个数的下标,以及它右边到第一个比它大的数中比它小的数中最大的那一个数的下标。 eg:5 2 4 3 1 l 0 0 2 0 0 对5来说左边比它小的数没有,所以是0。对2来说左边比它小的数没有,所以是0。对4来说左边比它小的数是2,所以下标是2。 r 3 0 4 5 0 对5来说右边比它小的数中最大的是4,是第3个,所以答案是3。对2来说右边比它小的数是1,但是4比2大,所以无法到达1,所以答案是0。对于4,右边比它小的数中最大一个3的下标是4,所以答案是4。思路: 单调队列... 阅读全文
posted @ 2013-07-26 14:58 Griselda. 阅读(671) 评论(0) 推荐(0) 编辑
摘要: 题意: 一个炮兵可以攻打和他之间曼哈顿距离为2的士兵,给出你一块n*m的战场,告诉你哪些地方可以站人哪些地方不可以,问你最多可以安放多少个士兵? n 2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 8 int n, m; 9 int G[110], bir[1>2)&i) || ((i>1)&bir[j][0])) continue;48 dp[0][j][i] = bir[i][1]+bir[j][1];49 ans = max(ans, ... 阅读全文
posted @ 2013-07-19 17:43 Griselda. 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出4*4的棋盘,只有黑棋和白棋,问你最少几步可以使棋子的颜色一样。 游戏规则是:如果翻动一个棋子,则该棋子上下左右的棋子也会翻一面,棋子正反面颜色相反。思路: 都是暴搜枚举。 第一种方法:暴力dfs枚举 棋子只有最多翻一次,因为翻两次后结果和不翻是一样的,所以整个棋盘最多翻16次。 用step代表翻转的次数,当翻转了step次时,就看一下整个棋盘是否是清一色的。 当棋盘是清一色的时候就直接输出step,得到的就是最少翻转次数使棋盘清一色。 第二种方法:利用位运算来优化 因为棋子不是白就是黑,所以可以用0和1来表示。 然后为每一个棋子... 阅读全文
posted @ 2013-07-16 10:57 Griselda. 阅读(994) 评论(0) 推荐(0) 编辑
摘要: 题意: 安排计划,有4种约束方式,给出你这些时间的n个约束.. 如果计划是可行的,求出每一件事发生的最早时间..否则输出“impossible”.. ①. FAF a b a要在b完成后完成.. ②. FAS a b a要在b开始前完成.. ③. SAS a b a要在b开始前开始.. ④. SAF a b a要在b结束前开始..思路: 简述 差分约束系统.. 差分约束系统就是给出一个不等式组..每个不等式形如 xj-xi <= bk bk是一些已知的常量.. 求出所有未知量xi.. ***---要注意是小于等于---*** 其实差分约束系统就像是最短路中的松弛条... 阅读全文
posted @ 2013-06-06 21:31 Griselda. 阅读(581) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出一个n*m的矩阵, 0 表示不可走 1 表示可走 2 表示起点 3 表示终点 4 表示可走且走到这一步可以满血 某人一开始有6滴血,走一步少一滴..到0就死了.. 可以走到4的位置满血再走.. 求出最少走几步可以从起点到终点.. 思路: 广搜,用一个cnt表示现在走了几步,一个cur表示现在的血量.. 普通的广搜过程中如果已经走过就不可以再走了..但是第三个样例可以看出走过还可以再走.. 因为普通广搜走过不能再走只是代表这个状态已经访问过了..不需要再次访问,防止死循环.. 但是现在再次访问的时候因为血量已经不一样了.所以可以再走.. 剩下就是正常... 阅读全文
posted @ 2013-06-06 21:05 Griselda. 阅读(176) 评论(0) 推荐(0) 编辑
摘要: 题意: 给出多个串,如果没有一个串是别的串的前缀,则这些串是符合要求的,输出“Set * is immediately decodable”; 否则输出 "Set * is not immediately decodable"; 输入中多个串以9表示输入结束思路: 裸的字典树,先根据多个串建树,然后遍历每一个串看是否在字典树中.. Tips: 要注意找的时候应该判断是否为叶子结点,而不是仅仅判断是否在字典树中,因为建树的时候肯定存在该串.. Code: 1 #include <stdio.h> 2 #include <cstring> 3 #incl 阅读全文
posted @ 2013-06-06 20:38 Griselda. 阅读(218) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 12 下一页