自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Matlab模拟光粒攻击前后的三体运动

数模国赛将至,但是我的matlab水平依旧很烂,三体倒是全都看完了。我于是想到:对三体中感兴趣的情节(光粒攻击前后的三体运动)建模,然后用matlab实现出来,我不就既可以练习建模,又可以满足我贪玩的心嘛!于是说干就干!!模型的原理很简单:牛顿定理和万有引力公式,然后使用二阶差分的数学建模方法进行数值求解。模拟光粒攻击:相当于将被攻击对象的质量减为0。对外部无作用力。需要特判的情况是:当两个球体相距很近时,需要将两个球体合二为一。代码如下:% 按A键清理红色星% 按G键清理绿色星%

2021-08-23 19:29:34 300

原创 模拟硬件计算二进制除法

java代码:import java.util.Scanner;public class Divide { final static int size=32;//size位二进制数除法 static long upper=(long) Math.pow(2, size-1)-1; static long lower=(long) Math.pow(2, size-1)*(-1); static long fullone=(long) Math.pow(2, 2*size)-1; publi

2021-04-20 17:55:06 192

原创 汉诺塔递归、非递归实现——递归与栈模拟递归的理解

大一学习递归总是想要弄明白递归程序具体的运行步骤,但无奈一次次“迷失”在递归的迷宫中。。。递归的精妙之处不在于它能用少量的代码来实现十分复杂的功能,而在于它能表达出“分形”结构。在数学上的分形我就不展开说了,在编程上的分形简单来说,就是想像一个任务由许许多多工人完成,他们只会机械的做事,自己就是其中的一个最普通的工人,将自己要做的事用代码表达出来。就汉诺塔来说,自己负责搬运第n块:先让其他人将自己上面的n-1块从start柱,搬到mid柱,经过end柱。自己将第n块从start柱,搬到end柱,

2021-04-07 12:06:08 317

原创 滑动窗口——单调队列

滑动窗口给定一个大小为 n≤106的数组。有一个大小为 k的滑动窗口,它从数组的最左边移动到最右边。你只能在窗口中看到 k个数字。每次滑动窗口向右移动一个位置。以下是一个例子:该数组为 [1 3 -1 -3 5 3 6 7],k为 3。窗口位置 最小值 最大值[1 3 -1] -3 5 3 6 7 -1 31 [3 -1 -3] 5 3 6 7 -3 31 3 [-1 -3 5] 3 6 7 -3 51 3 -1 [-3 5 3] 6 7 -3

2021-03-31 11:22:16 274

原创 最长上升子序列

dp: O(n^2)状态:f[i]:i之前的序列中(包含i)以i结尾的最长上升子序列的长度。状态转移:当前状态从前面所有状态中继承一个最优的合法状态。合法状态:当前状态的数值大于所选状态的数值。最优:长度最长。状态转移方程:f[i]=max(f[j]) (0<j<i && a[j]<a[i])贪心+二分如何进一步优化呢?如何使当前最长的上升子序列变长呢?变长有两种办法:1> 在原本最长序列的末尾添加一个。2> 不断更新,原序列中的..

2021-03-29 10:17:13 85

原创 KMP初体验

上课时听老师讲云里雾里,然后又被自己的思考被绕晕,最后按照算法设定画图(一定要将图画大,图太小容易画乱)才逐渐体会到KMP的精妙之处。将一些理解记录到了笔记本上:理解:KMP本质上是DP问题,通过将之前计算的结果记录下来,为之后的计算借鉴,从而减少时间复杂度。之后借鉴之前的过程可以用转移方程来表示。难点同精妙的点在于记录什么(next数组),如何借鉴(转移方程)。i指向字符串s,j指向模式串p。next[j]=k+1 的含义:当p[j]与s[i]的字符不相同时,j应该指向p的哪个位置(也就是n

2021-03-28 22:17:14 84

原创 线性动态规划

方格取数 题目 提交记录 讨论 题解 视频讲解设有 N×N 的方格图,我们在其中的某些方格中填入正整数,而其它的方格中则放入数字0。如下图所示:2.gif某人从图中的左上角 A 出发,可以向下行走,也可以向右行走,直到到达右下角的 B 点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。此人从 A 点到 B 点共走了两次,试找出两条这样的路径,使得取得的数字和为最大。输入格式第一行为一个整数N,表示 N×N 的方格图。接下来的每行有三个整数,第一个.

2021-03-10 21:48:17 90

原创 打印学生选课清单——c语言实现

3 打印学生选课清单 (40 分)假设全校有最多40000名学生和最多2500门课程。现给出每门课的选课学生名单,要求输出每个前来查询的学生的选课清单。输入格式:输入的第一行是两个正整数:N(≤40000),为前来查询课表的学生总数;K(≤2500),为总课程数。此后顺序给出课程1到K的选课学生名单。格式为:对每一门课,首先在一行中输出课程编号(简单起见,课程从1到K编号)和选课学生总数(之间用空格分隔),之后在第二行给出学生名单,相邻两个学生名字用1个空格分隔。学生姓名由3个大写英文字母+1位数字组

2021-03-05 17:51:06 1629

原创 (AcWing)1532. 找硬币 (哈希/双指针)

(AcWing)1532. 找硬币1>用unordered_set实现哈希//mathod 1:哈希表 O(n)#include<iostream>#include<algorithm>#include<unordered_set>using namespace std;const int INF=10000;int main(){ unordered_set<int> hash; int n,m; cin>>n

2021-01-23 12:35:29 67

原创 6-8 是否二叉搜索树 (25分)

//这样是错误的,因为可能存在以下的情况/* 3 / 2 / \ 1 4*/// bool IsBST ( BinTree T )// {// if(T)// {// if(T->Left&&T->Left->Data>=T->Data)// return false;// .

2020-12-27 16:14:54 117 1

原创 素数线性筛

沉心找各量的关联,把原理和过程弄明白,不然代码也是白写。原理:每个数被它的最小质因子筛掉,则每个数只被筛掉一次,时间复杂度为O(n)实现:数被质因子筛掉:数A=最小质因子B*数C再进一步,保证被最小质因子筛掉:数C的最小质因子>=B若随着B的增大,C中有小于B的因子,则不能保证B为最小质因子借此剪枝代码:#include<iostream>#include<vector>#include<algorithm>using namespace

2020-11-13 20:35:44 55

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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