幻方(UVa 10087 - The Tajmahal of ++Y2k)

题目:幻方构造,给你n*n的方形,在里面填上连续的数字,使得每行、每列和对角线上的数字和是m。 分析:数学、构造。幻方的构造方法已经完全被解决,直接利用公式求解即可。             幻方的幻和为:p =(n*n+1)* n / 2             如果 m = k*n + p 则...

2014-05-12 20:35:43

阅读数:1146

评论数:0

UVa 11752 - The Super Powers

题目 求解64位无符号整数的可以拆解成不同指数的数字。 分析 数论。枚举以2-65535的数字为底数,2-64为指数的所有组合,取合法的存储,排序去重即可。 说明 需要将数字分成两段存储(每个10位),避免溢出。 #include <algorithm&a...

2018-10-16 20:56:15

阅读数:25

评论数:0

UVa 10015 - Joseph's Cousin

题目 约瑟夫环,第i轮使用第i个素数作为淘汰的步长。 分析 数论,公式。打表计算前3501个素数,然后利用公式求解。 说明 关于公式的很详细的帖子:https://blog.csdn.net/tingyun_say/article/details/52343897 ...

2018-03-26 12:59:37

阅读数:127

评论数:0

UVa 10090 - Marbles

题目:有两种箱子,每种箱子有不同的容量和价钱,问将n个物品正好放满两种箱子时的最少花费。 分析:整数规划,扩展的欧几里得。             1.可解性:根据扩展的欧几里得可知 ax + by = c,如果 gcd(a, b) % c = 0 则有解,否则无解;             2....

2017-10-10 09:50:55

阅读数:228

评论数:0

UVa 636 - Squares (III)

题目:有一个数字串(字符0-9),求它的最小的100内的基底,使得这个数字串是一个平方数。 分析:数论,搜索,二分。枚举基底判断数字是否是平方数,找到最小的基底即可。             1.题目中的每个数字代表一个位:509(12)= 5*12^2 + 9 = 729 = 27^2; ...

2017-08-24 12:46:03

阅读数:120

评论数:0

UVa 10213 - How Many Pieces of Land ?

题目:一个椭圆形的平面,在边界上去n个点做出它的内接n变形,联结所有的顶点,问最多把平面分成几块。 分析:数学题、大整数。地推求公式,然后大整数模拟。                          如图,n为1、2、3的情况为上面的小圆,下面的大圆为在n-1的情况下,加入第n个点的状态;   ...

2017-08-21 13:50:34

阅读数:204

评论数:0

UVa 815 - Flooded!

题目:为了验证洪水对房子的影响,需要一个m*n矩阵的模型,其中每个元素代表10*10的区域,             用给定体积的水灌进去,看被淹没的区域,问水的高度和被淹没区域所占的百分比,             边界认为无限高,没有水从边界流走。 分析:排序。将同样高度的合并,依次按阶...

2017-08-14 19:10:52

阅读数:167

评论数:2

UVa 11489 - Integer Game

题目:S和T两个人轮流从一个数字中取出一位扔掉(S先取),谁无法取就结束(包括被对方取完),             已知一个1000位以内的数字,判断谁获胜。 分析:数论。分类讨论。             将数字分成三组:mod3=0,mod3=1,mod3=2;           ...

2017-07-26 17:34:42

阅读数:125

评论数:0

UVa 11313 - Gourmet Games

题目:初始选拔比赛,有n个厨师,每场比赛出席m人,胜利者和余下的人进行下一场比赛;             问最后决赛时的人数是否正好是m个人,一共办多少组比赛。 分析:数论。推公式即可。             设共有k+1场比赛,则每场比赛后剩下的人数为f(i):           ...

2017-07-21 12:32:11

阅读数:254

评论数:0

UVa 12895 - Armstrong Number

题目:判断一个数是否是Armstrong Number,设数字N有n位,则每个数位上的数字的n次方的和为N。 分析:数论。直接按照题意模拟即可。 说明:不需要考虑溢出。 #include #include int armstrong_number(int N) { int S1 =...

2017-07-20 11:59:35

阅读数:159

评论数:0

UVa 11581 - Grid Successors

题目:有一个3x3的矩阵g,定义函数f(g)为每个元素相邻四个方向的1的个数%2             (奇数为1、偶数为2),定义递归函数f_k(g) = f(f_k-1(g)),计算循环节。 分析:数论,循环节。计算上界为2^9一定有重复的状态,存储中间结果判断即可。 说明:(⊙v⊙)...

2017-07-04 22:29:09

阅读数:129

评论数:0

UVa 10680 - LCM

题目:求解前n个数的LCM的最后的非零位。 分析:数论。将前n个数的LCM因式分解,然后依次相乘取尾数。             将前n个数的LCM = 2^k1 * 3^k2 * ...*pn^kn,其中pn位第n个素数,且pn^kn ≤ n;             首先打表计算素数,然...

2017-06-13 16:08:53

阅读数:262

评论数:0

UVa 11728 - Alternate Task

题目:求一个数字使得它的因数的和为S,如果有多个找到最大的。 分析:数论。数据范围较小直接将1000内的所有数字对应的S求出,枚举即可。 说明:如果数据较大可使用筛法,注意输出最大的。 #include #include int f[1001]; int main() { // 打...

2017-03-13 15:12:31

阅读数:548

评论数:0

UVa 574 - Sum It Up

題目:已知n個數字構成的非遞增序列,求能從中取出的和為t 的不同組合。 分析:組合數學。組合數生成,這裡利用dfs求解。             生成的過程可全排列相同,每次判斷生成的組合是否之前找到過即可;             這裡只需要保留上次計算的結果,因為新的結果序列上一定小於之...

2017-02-15 13:59:32

阅读数:600

评论数:0

UVa 700 - Date Bugs

題目:有一些電腦有千年蟲問題(數據溢出),問最小的可能實際時間。 分析:搜索。枚舉其中一個電腦的可能時間和其他電腦匹配找到最小的合法值。             yi,ai,bi分別代表當前顯示時間、溢出時重新計時時間、溢出上屆;             實際時間為yi + k*(bi - ...

2016-12-12 21:03:47

阅读数:245

评论数:0

UVa 11526 - H(n)

題目:計算Σn/i,其中i取1到n(對應的除法為整數除法)。 分析:數學,公式,找規律。如果直接計算顯然會超時,所以找規律。             我們首先將數據分成不同的區間,n/i為n,n/i為n/2,...,n/i為1;             可以看出,有n/2的數據使得n/i值為...

2016-11-21 22:02:56

阅读数:614

评论数:0

UVa 619 - Numerically Speaking

題目:已知十進制和二十六進制的串,將他們相互轉化,輸出數字每三位一個分隔。 分析:數學,進制轉換。兩個方向的轉化是相同的,除了基數。 說明:注意輸出格式和數據長度。 #include #include #include #include #include #include ch...

2016-08-12 14:53:40

阅读数:453

评论数:0

UVa 941 - Permutations

題目:已知一個字母的有序集合,求出排第n的串。 分析:組合數學、字符串。康拓展開。 說明:注意對字符排序,UVa終於進前300名了╮(╯▽╰)╭。 #include #include #include #include #include using namespace std; ...

2016-05-17 18:33:50

阅读数:475

评论数:0

UVa 188 - Perfect Hash

題目:有n個單詞,按照32進制轉化為數字w[0..n-1],需要求一個計算hash函數的數字C,             hash函數為h[i] = C/w[i]%n,計算C的規則已知,將w遞增排序,取h[0] = w[0]),             如果每個h[i]均不相同,則h[0]即为...

2016-05-17 13:53:39

阅读数:514

评论数:0

hdu 2035 - 人见人爱A^B

題目:計算A^B的后三位。 分析:數論,分治。利用mod的性質和分治快速模冪算法求解。 說明:╮(╯▽╰)╭。 #include #include using namespace std; int fpow(int a, int n, int mod) { if (n == 1) { ...

2016-04-28 09:34:24

阅读数:268

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭