悼念512汶川大地震遇难同胞——珍惜现在,感恩生活Time Limit: 1000 MS Memory Limit: 32768 KB64-bit integer IO format: %I64d , %I64u Java class name: Main[Submit] [Status] [Dis...
分类:
其他好文 时间:
2015-04-07 01:56:15
阅读次数:
199
八皇后问题,是一个古老而著名的问题,是回溯算法的典型例题。该问题是十九世纪著名的数学家高斯1850年提出:
在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上
(斜率为1),问有多少种摆法。高斯认为有76种方案。
1854年在柏林的象棋杂志上不同的作者发表了40种不同的解,后来有人用图论的方法解出92种结果。
计算机发明后,有多种方法可...
分类:
编程语言 时间:
2015-04-06 14:15:43
阅读次数:
144
1.题目描述:点击打开链接
2.解题思路:本题利用回溯法解决。首先生成2*n范围内的所有素数,便于后续的判断。接下来试着填写每一位,如果数字i满足没有用过且它与前一项之和是素数,那么就可以用它,同时标记它已使用,递归寻找cur+1,退出时清除使用标记。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#inc...
分类:
其他好文 时间:
2015-04-06 08:56:55
阅读次数:
123
1.题目描述:点击打开链接
2.解题思路:本题利用回溯法解决。根据题意描述,易知在枚举第cur位时,只用检查它添加后该串是否合法,而不必去检查cur之间的串是否合法,因为这一步检查在枚举cur之前早已经做过了。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-04-06 08:55:51
阅读次数:
122
1.题目描述:点击打开链接
2.解题思路:本题利用暴力搜索解决。直接从1234开始枚举除数,由于乘积不能超过100000,所以上限是100000/n。然后判断得到的乘积和除数中的所有数是否都各不相同即可。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
#...
分类:
其他好文 时间:
2015-04-05 17:34:41
阅读次数:
133
1.题目描述:点击打开链接
2.解题思路:本题利用暴力搜索解决,由于n,S的范围都比较小,直接利用三重循环枚举。又最大可能乘积不会超过10^18,因此结果用long long保存。注意枚举的时候起点和终点可以重合。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#incl...
分类:
其他好文 时间:
2015-04-05 17:33:09
阅读次数:
136
1.题目描述:点击打开链接
2.解题思路:根据题目描述,可以解出来y的范围是1≤y≤2k。进而可以求出x=ky/(y-n)。注意x要大于0且是整数。
3.代码:
#define _CRT_SECURE_NO_WARNINGS
#include
#include
#include
#include
#include
#include
#include
#include
#include
#i...
分类:
其他好文 时间:
2015-04-05 17:31:19
阅读次数:
203
欧拉函数 玛雅,我应该先看看JZP的论文的……贾志鹏《线性筛法与积性函数》例题一 这题的做法……仔细想下可以得到:$ans=2*\sum_{a=1}^n\sum_{b=1}^m gcd(a,b)-n*m$ 那么重点就在于算$\sum_{a=1}^n\sum_{b=1}^m gcd(a,b)$这...
分类:
其他好文 时间:
2015-04-03 18:54:56
阅读次数:
201
问题来源:刘汝佳《算法竞赛入门经典--训练指南》 P67 例题28:问题描述:有一个长度为n的整数序列,两个游戏者A和B轮流取数,A先取,每次可以从左端或者右端取一个或多个数,但不能两端都取,所有数都被取完时游戏结束,然后统计每个人取走的所有数字之和作为得分,两人的策略都是使自己的得分尽可能高,并且...
分类:
其他好文 时间:
2015-04-02 20:31:16
阅读次数:
229
好好的利用异或可以产生神奇的效果。
异或运算的性质:
任何一个数字异或它自己都等于0。也就是说,如果我们从头到尾依次异或数组中的每一个数字,那么最终的结果刚好是那个只出现一次的数字,因为那些出现两次的数字全部在异或中抵消掉了。
例题:
给定大小是N的数组,数组里的元素互相不重复,元素的大小范围是1~(N+1),目标是找出第一个miss的数。要求时间复杂度O(N),空间是O(1)....
分类:
编程语言 时间:
2015-04-02 16:29:18
阅读次数:
200