- 2024-11-17寻找最优解的算法-模拟退火算法(Simulated Annealing)
模拟退火算法(SimulatedAnnealing,简称SA)是一种基于物理退火过程的优化算法。它灵感来源于金属退火过程中的分子运动——在高温下,金属分子的自由度很高,随着温度的逐渐降低,分子排列逐渐有序,最终达到最低能量状态。退火算法通过模拟这一过程,解决复杂的优化问题。在现实生活中
- 2024-11-17CF603E Pastoral Oddities 题解
Description给定一张\(n\)个点的无向图,初始没有边。依次加入\(m\)条带权的边,每次加入后询问是否存在一个边集,满足每个点的度数均为奇数。若存在,则还需要最小化边集中的最大边权。\(n\le10^5\),\(m\le3\times10^5\)。Solution考虑给定一个图,怎么判断这个图存在一个
- 2024-11-0220241029每日一题洛谷P1024
普及-每日一题洛谷P1024有形如:\(ax^3+bx^2+cx+d=0\)这样的一个一元三次方程。给出该方程中各项的系数(\(a,b,c,d\)均为实数),并约定该方程存在三个不同实根(根的范围在\(-100\)至\(100\)之间),且根与根之差的绝对值\(\ge1\)。要求由小到大依次在同一行输出这三个实
- 2024-10-27(七)阶段性成果-simulink实现小车倒立摆,使用LQR控制,摆杆初始角度在平衡位置附近。
效果如下图所示:共有两个.m文件第一个:start.m%%参数设置globalMmlgkM=2;m=0.5;l=0.3;g=9.81;wheel_damping=1e-5;joint_damping=1e-5;x_0=0;y_0=0.125;q_0=10;%系统矩阵A和BA=[0010;0001;0(m*g)/M00;0(M+m)*g
- 2024-10-21C语言学习4
函数的调用在C语言中,函数是执行特定任务的代码块,它允许代码重用和模块化。函数调用是程序执行过程中的一个重要环节,它涉及到将控制权从一个函数转移到另一个函数。函数的调用时参数的传递方式分为两种1.传值调用:实参的值会被复制给形参。在函数内部对形参的修改不会影响到
- 2024-10-13UE5 猎户座漂浮小岛 03 视觉效果 粒子
UE5猎户座漂浮小岛03视觉效果粒子1.视觉效果1.1指数级高度雾fog指数高度雾组件0.1、1.4内颜-淡蓝体雾1.2体积光太阳directionallight-强度光强-3颜色-淡蓝光束-遮遮暗-0.018范-100001.3天光天空照亮,泛光,照大地skylight强范1.4后期处理体积1.4.1光
- 2024-10-122024 停课做题总结
[ABC372D]Buildings思路正着做不方便,倒着用单调栈做一遍就行了。代码#include<iostream>usingnamespacestd;inlineintread(){registerintx=0,f=1;registercharc=getchar();while(c<'0'||c>'9'){if(c=='-')f=-1;c=
- 2024-10-10D. Connect the Dots
https://codeforces.com/problemset/problem/2020/D题面:思路:并查集加合并区间,然后发现一个大佬的并查集板子很好#include<bits/stdc++.h>usingnamespacestd;structDSU{std::vector<int>fa,siz;DSU(intn):fa(n+1),siz(n+1,1){std::iota
- 2024-10-072024.10.05 刷题记录
2024.10.05刷题记录P7597「EZEC-8」猜树加强版不难发现\(u\)的儿子的条件是在\(u\)的子树内且深度比\(u\)恰好大\(1\)。每次询问子树内的所有节点深度或许可以解决此题,但询问次数达到了\(n^2\)。在\(u\)的子树内,如果知道所属其他儿子的子树的节点,知道属于\(u\)
- 2024-10-01CF2019
CF2019A.MaxPlusSize难度:红弱智题。奇数偶数分别判一遍。#include<bits/stdc++.h>#definelllonglongusingnamespacestd;llT,n,a[110],dp[110][110][2],ans1,ans2;intmain(){ios::sync_with_stdio(0);cin.tie(0),cout.tie(0);cin>>T;while(
- 2024-09-28.Net8使用Cli命令创建基础项目
第一步:创建项目结构#创建解决方案dotnetnewsln-nFxcdFx#创建WebAPI层dotnetnewwebapi-nFx.WebApi#创建Application层dotnetnewclasslib-nFx.Application#创建Domain层dotnetnewclasslib-nFx.Domain#创建Infrastructure层dotnetne
- 2024-09-23简单搜索(BFS,DFS,剪枝)一网打尽
深搜DFS含义深搜是一种遍历或搜索图和树的算法。实现方式(不撞南墙不回头)根据题目选择一个适合的源节点,从源节点开始选择一条路一直走,直到无法前进(不满足题目条件)时,返回到上一个节点重新尝试,直到当前的节点的所有子节点都已经被访问过,再次返回到当前节点的上一节点,继续重复
- 2024-09-232024.8.18 模拟赛 22
模拟赛T1先崩,然后电脑又崩。题面都在这里了T12-Coloring原题3100,张口放T1(这是原话)看起来像dp,推了两个小时大力分讨,最后式子比我命还长。刚推出来就发现假了正解差不多人类智慧吧,也可能只是小trick。对于整张图,考虑最终染色的“形状”。(下面这个样子)图片来自题解C
- 2024-09-18关于一类偏序问题
对于一类依赖偏序关系计算答案的问题,由于我们只关注元素之间的大小关系,从而可以通过特殊的枚举方式来避免多种情况分类讨论。常见方法有:\(\mathrm{<,>}\):通过从小到大的方式依次考虑元素。\(\mathrm{abs,max,min}\):通过拆成\(<\)或\(>\)的形式后,再从小到大考虑。
- 2024-09-10搜索
DFS与BFSDFS定义:深度优先搜索(DFS)是一种以深入探索图的分支为目标,直到到达指定的“深度”,无法继续前进为止,然后通过回溯探索其他分支。用途:通过枚举的方式来遍历当前的所有状态搜索图或者树例如:解决迷宫问题,路径查找、检查图中是否存在环、排序问题等。优点空间复杂
- 2024-09-09[AGC002D] Stamp Rally
题意给定一张无向图,\(q\)次询问从\(x,y\)出发,经过\(z\)个点,可以重复经过每个点只算一次,求经过的边最大编号最小是多少。\(n,q\le10^5\)。Sol先建出瓶颈生成树,问题变成树上瓶颈连通块?似乎除了可持久化并查集没有其他做法。首先根号做法显然,维护\(\sqrtn\)个并
- 2024-09-09牛客小白月赛100
A-ACM中的A题#include<bits/stdc++.h>usingnamespacestd;usingi32=int32_t;usingi64=longlong;#defineinti64usingvi=vector<int>;constintN=10;chars[N];i32main(){inta,b,c;cin>>a>>b>>
- 2024-08-25龙格-库塔法(Matlab实现)
四阶龙格-库塔法介绍在各种龙格-库塔法当中有一个方法十分常用,以至于经常被称为“RK4”或者就是“龙格-库塔法”。该方法主要是在已知方程导数和初始值时,利用计算机的仿真应用,省去求解微分方程的复杂过程。令初值问题表述如下:则,对于该问题的RK4由如下方程给出:其中:这样,下
- 2024-08-232024.8.23 模拟赛总结
A.distStatement:给定一棵\(n(n\le10^6)\)个节点带边权的树,定义\(\mathrm{Min}(x,y)\)是\((x,y)\)路径上的边权最小值。求\(\max_{r=1}^n{\sum_{v\nei}\mathrm{Min}(r,v)}\)。Solution:经典套路题。首先注意到一条路径上的只有最小值才会产生贡献,于是对于
- 2024-08-17树链剖分
具体见OI-wiki,下面是一些补充重链要求是极大的每个点都在某一个重链中,如果一个点是重子节点,那么其在与其父亲所连的边的重链中,否则在与其重子节点所连的边的重链中这一段的原因:我们走重链是不用关心的,因为同一重链的dfs序是连续的,我们可以用其他数据结构维护,我们只用关心这条
- 2024-08-14如何在Ubuntu上使用HMCL游玩Minecraft
想要训练一个基于计算机视觉技术的Minecraft的AI,需要在Ubuntu系统上启动Minecraft游戏本体。前置条件假设你已经在Ubuntu安装了OpenJDK或其他的JDK。你需要运行的是Minecraft的Java版。必要的下载开源的Minecraft启动器HMCL:HMCL启动器的下载链接HMCL
- 2024-08-14并查集
并查集(递归写法)#include<bits/stdc++.h>usingnamespacestd;constintX=10010;intf[X];intn,m; //初始化voidinit(){ for(inti=0;i<X;i++){ f[i]=i; }}//查找上级是谁intfind(intx){ if(x!=f[x]){ returnf[x]=find(f[x]);//路径
- 2024-08-13CF650D Zip-line
CF650DZip-line大概题面:给定一个长度为\(n\)的序列以及\(m\)个操作,每个操作形如“\(a_i,b_i\)”,表示将序列中第\(a_i\)个数改为\(b_i\).对于每个操作,求出序列的最长严格上升子序列长度。注意:每个操作之间彼此独立。(即每次操作未进行时的序列是输入时的原序列,而不是上
- 2024-08-12CF650D Zip-line
每次操作会修改一个数,每次要求LIS暴力做法每次都做修改,重新求一次LIS,复杂度\(O(n^2logn)\)考虑每次修改会对答案造成什么影响。设\(f_i\)为以\(i\)结尾的LIS,设\(g_i\)为以\(i\)开头的LIS那么修改前的LIS是\(ans1=max(f_i+g_i-1)\)在预处理出修改后的左右两边的\(f_
- 2024-08-06并查集
并查集在每个集合中选择一个元素,作为整个集合的代表。使用一个树形结构存储每个集合,树上的每个节点都是一个元素,树根是集合的代表元素。存储时,记录每个节点\(x\)的父亲\(fa[x]\)。查询\(x\)和\(y\)是否在同一集合时,分别从两个点出发,寻找它们的树根。若树根相同,则说明\(