Problem FPaths through the
HourglassInput:Standard InputOutput:Standard OutputTime Limit:2 SecondsIn the
hourglass to the right a path is marked. A pa...
分类:
其他好文 时间:
2014-05-16 05:34:47
阅读次数:
307
题目链接:uva 11538 - Chess Queen
题目大意:在一个n?m的棋盘上,放两个皇后,要求两个皇后可以互相攻击,求有多少种放法。
解题思路:因为皇后的攻击范围为竖线、横线和斜线,所以枚举每条上两个皇后放的位置,比如一条斜线有8个,那么放两个皇后的种数就有C(82)种。
行数n,每行m个位置C(m2)?n
列数m,每列n个位置C(n2)?m
斜线,2?(2?∑i=1...
分类:
其他好文 时间:
2014-05-15 14:36:21
阅读次数:
250
题目描述开头一大堆屁话,我还仔细看了半天。。其实就最后2句管用。意思就是给出n本书的页数然后要分成k份,每份的最大值要最小。问你分配方案,如果最小值相同情况下有多种分配方案,输出前面份数小的,就像字典序输出从小到大一样的意思。
这里用到贪心的方法,定义f(x)为真的条件是满足x为最大值使n本书分成k份,那么就是求x的最小值。如何确定这个x就是用的二分法,x一定大于0小于所有值的合,不断的二分再判...
分类:
其他好文 时间:
2014-05-15 05:29:57
阅读次数:
236
题目:brick game是有一些连续编号的木块1~N,再给你一个若干整数构成的集合S;
两个人轮流取出集合S中存在的任意数字个木块,最后取走的人获胜,如果不能取,则对方获胜。
现在,给你一个游戏结果的序列串T,如果木块有k个,可能赢就是T[k] = W,一定输就是T[k] = L。
请你确定一个最小的集合,使得这个序列...
分类:
其他好文 时间:
2014-05-14 15:19:17
阅读次数:
270
1 /** 2 给定一个置换,看能不能存在一个置换A^2 = B 3 思路;
循环节长度为偶数n的置换只能由循环节长度为长度2*n 的置换A*A 而变得。所以只需求出循环节,看循环节长度为偶数的个数是否为偶数个即可。。 4 训练指南 5
**/ 6 #include 7 #include 8 ...
分类:
其他好文 时间:
2014-05-13 22:24:26
阅读次数:
246
题目:幻方构造,给你n*n的方形,在里面填上连续的数字,使得每行、每列和对角线上的数字和是m。
分析:数学、构造。幻方的构造方法已经完全被解决,直接利用公式求解即可。
幻方的幻和为:p =(n*n+1)* n / 2
如果 m = k*n + p 则题目要求幻方可以构造成功,否则无法构造。
幻方的构造可分成三种情况:(...
分类:
其他好文 时间:
2014-05-13 15:29:37
阅读次数:
301
题目链接:1350 - Pinary
题意:二进制数,不能有连续的1,给定第n个数字,输出相应的二进制数
思路:先是递推,求出由n位组成的数字中有几个满足条件
dp[i] = dp[i - 1] + dp[i - 2],考虑最后一位放0和倒1位放0的情况。
然后用一个sum[i]记录满足
接着利用二分找到给定的n > sum[i - 1],i的最大值,这个就是所求的答案的最高位。
因为...
分类:
其他好文 时间:
2014-05-13 14:10:44
阅读次数:
246
用 栈 stack 来处理.
直接根据题目描述写就可以。不要忘记每组数据最后的清空栈堆。
题目大意: 给定52张的扑克牌,现在要求对扑克牌进行整理,对于每一张扑克牌,如果左边的第三张存在那么就去判断这一张是否和第三张满足花色或卡片值相同,如果满足则把这一张移动到左边的第三张,否则去判断左边的第一张是否和这一张满足条件;如果左边的第三张不存在那么只要去判断左边的第一张即可。最后输出剩下的扑克牌的...
分类:
其他好文 时间:
2014-05-13 14:01:26
阅读次数:
265
【题目】
The famous Korean internet company nhn has provided an internet-based photo service which allows The famous Korean internet company users to directly take a photo of an astronomical phenomenon...
分类:
其他好文 时间:
2014-05-13 13:34:50
阅读次数:
453
快速排序原理:
快速排序先把等待排序的集合打乱顺序,把第一个元素作为基准元素,为第二个元素和最后一个元素分配两个指针i和j,如果a[i]小于基准元素则i++,如果a[j]大于基准元素则j--,这样把大于基准元素的a[i]和小于基准元素的a[j]互换,以此类推,最终把基准元素与a[j]相交换,就得到一个a[j]左侧全部小于a[j],右侧全部大于a[j]的一个近似有序数组,然后按照如上步骤重新寻找每个被a[j]分开的数组中的分隔点,最终得到有序数组。
在通用排序中,一般都会选取快速排序来解决问题。...
分类:
其他好文 时间:
2014-05-13 07:40:24
阅读次数:
290