
基于数学型
文章平均质量分 54
JingleLiA
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
整数拆分
题目链接:整数拆分题目描述:给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。示例 1:输入: 2输出: 1解释: 2 = 1 + 1, 1 × 1 = 1。示例 2:输入: 10输出: 36解释: 10 = 3 + 3 + 4, 3 × 3 × 4 = 36。说明: 你可以假设 n 不小于 2 且不大于 58。题目分析:拆分存在很多种组合,又求最大值,用Dp做。每个数组合时分为拆与不拆两个状态。代码:class Soluti原创 2020-07-30 11:00:36 · 546 阅读 · 0 评论 -
位运算
位运算在很多时候可以提高效率,小小的一行也能成为程序的亮点,今天简单介绍一下位运算以及一些小技巧,希望以后我可以想着用一下一、逻辑运算1.逻辑&,就是将两个数的二进制按位进行&(同1则1),如果有负数,则按照补码进行运算应用:(1) 清零 清零:将其全部的二进制位全部置为0。例如整型数a=321对其全部数据清零的操作为a=a&0x00。 321=0000 0001 0100原创 2017-10-05 17:20:30 · 364 阅读 · 0 评论 -
博弈算法
序:博弈是信息学和数学试题中常会出现的一种类型,算法灵活多变是其最大特点,而其中有一类试题更是完全无法用常见的博弈树来进行解答。 寻找必败态即为针对此类试题给出一种解题思路。此类问题一般有如下特点:1、博弈模型为两人轮流决策的非合作博弈。即两人轮流进行决策,并且两人都使用最优策略来获取胜利。2、博弈是有限的。即无论两人怎样决策,都会在有限步后决出胜负。转载 2017-07-30 10:26:50 · 666 阅读 · 0 评论 -
素数筛选法
素数筛法是这样的: 1.开一个大的bool型数组prime[],大小就是n+1就可以了.先把所有的下标为奇数的标为true,下标为偶数的标为false. 2.然后: for( i=3; i { if(prime) for( j=i+i; j } 3.最后输出bool数组中的值为true的单元的下标,就转载 2017-07-30 10:25:39 · 409 阅读 · 0 评论 -
Secret Origins
This is the tale of Zephyr, the greatest time traveler the world will never know. Even those who are aware of Zephyr's existence know very little about her. For example, no one has any clue as to whic转载 2017-10-05 16:35:11 · 367 阅读 · 0 评论 -
硬币游戏
有一个简单但是很有趣的游戏。在这个游戏中有一个硬币还有一张桌子,这张桌子上有很多平行线(如下图所示)。两条相邻平行线之间的距离是1,硬币的半径是R,然后我们来抛硬币到桌子上,抛下之后硬币有时候会和一些直线相交(相切的情况也算是相交),有时候不会。请你来计算一下抛一次硬币之后,该硬币和直线相交数目的期望。Input 第一行给出一个整数T,表示有T组数据(1第2行到T+1,每行原创 2018-02-02 13:02:19 · 478 阅读 · 0 评论 -
E - 小球移动问题(定积分)
There are n balls on a smooth horizontal straight track. The track can be considered to be a number line. The balls can be considered to be particles with the same mass.At the beginning, ball i原创 2017-09-14 16:35:33 · 308 阅读 · 0 评论 -
H-火车进站问题(卡特兰数列)
As we all know the Train Problem I, the boss of the Ignatius Train Station want to know if all the trains come in strict-increasing order, how many orders that all the trains can get out of the railwa...原创 2017-09-08 10:33:43 · 961 阅读 · 0 评论 -
J涂色问题
人称“AC女之杀手”的超级偶像LELE最近忽然玩起了深沉,这可急坏了众多“Cole”(LELE的粉丝,即"可乐"),经过多方打探,某资深Cole终于知道了原因,原来,LELE最近研究起了著名的RPG难题:有排成一行的n个方格,用红(Red)、粉(Pink)、绿(Green)三色涂每个格子,每格涂一色,要求任何相邻的方格不能同色,且首尾两格也不同色.求全部的满足要求的涂法.以原创 2017-09-08 17:18:51 · 1007 阅读 · 0 评论 -
2 3 5 7的倍数 --容斥原理
给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数。 例如N = 10,只有1不是2 3 5 7的倍数。 Input输入1个数N(1 Output输出不是2 3 5 7的倍数的数共有多少。Sample Input10Sample Output1分析:看到这个题第一反应就应该是容斥原理,因为数据范围很大,预处理会超内存,直接遍历会超时,那么就需要技巧了,原创 2018-02-02 17:54:03 · 1067 阅读 · 0 评论 -
手链样式--蓝桥杯
小明有3颗红珊瑚,4颗白珊瑚,5颗黄玛瑙。他想用它们串成一圈作为手链,送给女朋友。现在小明想知道:如果考虑手链可以随意转动或翻转,一共可以有多少不同的组合样式呢?分析:这个题首先一定要理解题意,转动和翻转是个什么意思,转动就是我们所得到的的排列是个环,即起点不固定,具体点说即使1234和2341是一种方式(3421也一样)。翻转就是,这个排列是个立体的,可以上下左右翻转,具体点说即 1 ...原创 2018-02-21 22:41:34 · 2958 阅读 · 1 评论 -
全排列和去重
对于c++而言,有一个可以直接调用的方法,就是对序列进行全排列并且去重,就是next_permtation();这个就不多说了,那么这里我用直接用java自己手写一个呢,全排列表示把集合中元素的所有按照一定的顺序排列起来,使用P(n, n) = n!表示n个元素全排列的个数(假设集合中没有重复元素)。例如:{1, 2, 3}的全排列为:123;132;213;231;...原创 2018-02-21 21:38:56 · 1562 阅读 · 0 评论 -
求解集合的子集
描述:求解集合{0,1,2,........,n-1}的子集;思路:利用二进制思想,如果在集合中某位数存在,那么对应的二进制的相应位数即为1。比如,集合{1,4,5,7}对应的二进制表示为:10110010(从右往左数),因此如果我们确定了一个二进制序列,对应的也就确定了一个集合。此外,集合的运算可以利用&,|,^,运算符,依次等价于集合的交集,并集和对称差集。实质:将子集的每一种排列对应...原创 2018-06-10 19:06:37 · 524 阅读 · 0 评论 -
February 29 --容斥原理
It is 2012, and it's a leap year. So there is a "February 29" in this year, which is called leap day. Interesting thing is the infant who will born in this February 29, will get his/her birthday again原创 2017-10-06 12:20:20 · 471 阅读 · 0 评论 -
超级楼梯 --斐波那契数列
有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法?Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1Output对于每个测试实例,请输出不同走法的数量Sample Input223Sample Output12import java.util.*;public class原创 2017-10-17 09:21:52 · 707 阅读 · 0 评论 -
矩阵快速幂
建议在看这篇博文之前,先去了解一下矩阵以及矩阵运算的一些基础知识。矩阵快速幂就是在利用快速幂的基础上进行矩阵的幂运算。所以我们要先写出矩阵快速幂运算的一个模板,以便根据题目构造。快速幂大家应该不陌生,就是将求幂运算的复杂度降低到了log2(N),比如 B^9 = (B^2)^2^2*B ,将原来的9次变成4即可,每次判断幂的奇偶性即可,偶数就累乘,奇数就乘底数,看代码吧const int N...原创 2018-02-21 23:57:16 · 399 阅读 · 0 评论 -
快速幂
原理:(a*b)%c = (a%c)*(b%c)%c; 将原来O(N)的复杂度降低为O(LogN)import java.util.*;public class Main { static Scanner in = new Scanner(System.in); static int mod = 500010; static int q_pow(int a...原创 2018-03-11 19:19:13 · 208 阅读 · 0 评论 -
泊松分酒--广搜or数学分析
泊松是法国数学家、物理学家和力学家。他一生致力科学事业,成果颇多。有许多著名的公式定理以他的名字命名,比如概率论中著名的泊松分布。有一次闲暇时,他提出过一个有趣的问题,后称为:“泊松分酒”。在我国古代也提出过类似问题,遗憾的是没有进行彻底探索,其中流传较多是:“韩信走马分油”问题。有3个容器,容量分别为12升,8升,5升。其中12升中装满油,另外两个空着。...原创 2018-03-14 12:57:15 · 782 阅读 · 0 评论 -
欧拉函数模板
欧拉函数:求解小于某个数的且与之互质的正整数公式:enlur(x) = x(1-1/p1)(1-1/p2)......(1/pn) P为x的约数,其具体代码如下所示#include <iostream>#include<algorithm>using namespace std;const int maxn = 100+5;int ma[maxn][ma...原创 2018-09-15 15:28:10 · 270 阅读 · 0 评论 -
Good Numbers
if we sum up every digit of a number and the result can be exactly divided by 10, we say this number is a good number.You are required to count the number of good numbers in the range from A to B,原创 2017-10-06 23:38:10 · 705 阅读 · 0 评论 -
画大X-蓝桥杯-找规律
打印大X小明希望用星号拼凑,打印出一个大X,他要求能够控制笔画的宽度和整个字的高度。为了便于比对空格,所有的空白位置都以句点符来代替。要求输入两个整数m n,表示笔的宽度,X的高度。用空格分开(0<m<n, 3<n<1000, 保证n是奇数)要求输出一个大X例如,用户输入:3 9程序应该输出:***.....***.***...***...***.***.....*****...原创 2018-02-14 20:19:31 · 298 阅读 · 1 评论