数学
kkkkkkc1
每天进步一点点
展开
-
基础博弈
一、巴什博奕(Bash Game): 引入问题:有一堆n个物品,两人轮流从堆中取物品,每次取x个(1≤x≤m)。最后取光者为胜。 结论:当n%(m+1)!=0时,先手必胜。 原理:我们可以构造出n=(m+1)*t+s,(0<=s<m+1) 当s!=0时,先取者拿走s个,后取者拿走k个(1<=k<=m),那么先取者再拿走m+1-k个。结果还剩下(m+1)*(t-1)个。我们只要始终给对手留下(m+1)的倍数,那么先取者必胜。当s==0时,那...转载 2020-12-13 20:17:24 · 107 阅读 · 0 评论 -
leetcode396旋转数组
给定一个长度为 n 的整数数组 A 。假设 Bk 是数组 A 顺时针旋转 k 个位置后的数组,我们定义 A 的“旋转函数” F 为:F(k) = 0 * Bk[0] + 1 * Bk[1] + … + (n-1) * Bk[n-1]。计算F(0), F(1), …, F(n-1)中的最大值。注意:可以认为 n 的值小于 105。示例:A = [4, 3, 2, 6]F(0) = (0 * 4) + (1 * 3) + (2 * 2) + (3 * 6) = 0 + 3 + 4 + 18 =.转载 2020-10-28 18:52:01 · 229 阅读 · 0 评论 -
leetcode453. 最小移动次数使数组元素相等
解法原链接int minMoves(int* nums, int numsSize){ int move=0,min; min=nums[0]; //判断数组元素是否相等,标记数组当前最大数的下标 for(int i=0;i<numsSize;i++) { if(min>=nums[i]) min=nums[i]; } for(int i=0;i<numsSize;i++) move .原创 2020-10-16 17:29:03 · 125 阅读 · 0 评论 -
求1~n范围内的素数
素数:素数又称质数,是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。判断素数的方法:理论可证,用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。#include <stdio.h>#include <stdlib.h>#include <math.h>int prime_number(int x);//求1~x范围内素数int *primes_array = NULL;int main(int a原创 2020-09-23 10:27:03 · 642 阅读 · 0 评论