回文 算法noip 1999

NOIP 2023 三值逻辑

problem 我们定义 \(\text{T}\) 对应 \(n + 1\),\(\text{U}\) 对应 \(n + 2\),\(\text{F}\) 就是 \(-\text{T}\)。 现在我们知道了每一个数代表着什么值,用 \(val\) 数组来表示。 然后我们构想两个数组 \(pT\) 和 ......
逻辑 NOIP 2023

代码随想录算法训练营第5天 | lc242、lc349、lc202、lc1

(本合集全部为Go语言实现) 相关文章链接:242题解 349 202题解 1题解 相关视频链接: Leetcode242 状态:秒了 实现过程中的难点:对于元素固定是小写字母或类似的情况,可以使用数组,因为元素最大数量是固定的 个人写法 func isAnagram(s string, t str ......
随想录 训练营 lc 随想 算法

基于oneAPI的并行算法实践

本文介绍了利用oneAPI,使用sycl编程实现并行算法,完成了矩阵乘法、归并排序、图像卷积三个任务的过程。 矩阵乘法 在此任务中,我们使用sycl编写并行计算的内核。为了提高局部计算效率,我们使用共享内存存储部分矩阵数据。 std::vector<std::vector<float>> matri ......
算法 oneAPI

P1004 [NOIP2000 提高组] 方格取数 题解

题意: 思路: 考虑四维 $ dp $ : 设 $ dp[i][j][k][l] $ 表示两条路径分别走到 $ (i,j) $ 和 $ (k,l) $ 时所能获取的最大和,显然会超时。 考虑三维 $ dp $ : 设 $ dp[i][j][k] $ 表示两条路径走了 $ i $ 步分别走到第 $ j ......
题解 方格 P1004 1004 NOIP

代码随想录算法训练营第4天 | leetcode24、leetcode19、leetcode面试题02

(本合集全部为Go语言实现) 相关文章链接:24题解 19题解 02.07题解 142题解 相关视频链接: Leetcode24 状态:秒了 实现过程中的难点:对组内两个节点的指针指向流转需要倒腾明白。临时头结点真的很有用 个人写法 func swapPairs(head *ListNode) *L ......
leetcode 随想录 训练营 随想 算法

栈和队列算法总结

知识概览 在数据结构中,栈和队列都属于线性表。栈是先进后出(FILO)的,队列是先进先出(FIFO)的。 代码模板 #include <iostream> using namespace std; const int N = 100010; // ********************** 栈 i ......
队列 算法

NOIP

NOIP 好朋友们都走了,只剩下我一个人在这里“苟延残喘”了呜呜呜。吃饭也没人陪我了。话说我的文化课还没补完啊啊啊啊啊。 还有几天学考啊啊啊啊啊。 话说9号去北京干啥啊啊啊。 破防了哥 ......
NOIP

链表算法总结

知识概览 链表包括单链表和双链表,这里讨论算法题中的链表。为了考虑算法题中对于时间效率的要求,链表通常是用数组模拟成静态链表的形式,速度快。 单链表可以用来写邻接表(包括n个链表),邻接表可以存储树和图,最短路问题、最小生成树问题、最大流问题都可以用邻接表来存储。 双链表用来优化某些问题。 单链表 ......
算法

文心一言 VS 讯飞星火 VS chatgpt (148)-- 算法导论12.2 3题

三、用go语言,写出过程 TREE-PREDECESSOR 的伪代码。 文心一言: 以下是使用Go语言编写的TREE-PREDECESSOR函数的伪代码: func TREE-PREDECESSOR(node) { if node.parent != nil { return node.parent ......
文心 导论 算法 chatgpt VS

前缀和/差分——acwing算法基础课笔记

个人笔记,欢迎补充,指正。 一维前缀和 对于数组: a[1],a[2],a[3]...a[n]; 其前缀和数组为 s[i] = a[1] + a[2] + ... + a[i]; 下标必须从1开始 求前缀和 1 for(int i=1;i<n;++i) 2 s[i] = s[i-1] + a[i]; ......
基础课 前缀 算法 基础 笔记

代码随想录算法训练营第3天 | leetcode203、leetcode707、leetcode206

(本合集全部为Go语言实现) 相关文章链接:203题解 707题解 206题解 相关视频链接: Leetcode203 状态:秒了 实现过程中的难点:链表遍历一定要记得指针后移。另外,在头指针前加入一个新的临时头节点可以统一整个遍历过程,否则需要先确定初始时两指针的状态 个人写法 /** * Def ......
leetcode 随想录 训练营 随想 算法

Palindrome Partition(回文划分计数)

首先把原串交错重构,使得转化为偶回文串划分计数,不讲(虽然很难想到)。下面先考虑回文划分计数。容易得到一个 DP:\(f_i\) 表示长度为 \(i\) 的前缀划分方案数,则枚举所有 \(i\) 结尾的回文子串即可进行转移。我们可以求出以 \(i\) 结尾的最长回文后缀,通过不断跳它在回文树上的 f ......
回文 Palindrome Partition

代码随想录算法训练营第2天 | leetcode977、leetcode209、leetcode59

(本合集全部为Go语言实现) 相关文章链接:977题解 209题解 59题解 相关视频链接:977视频 209视频 59视频 Leetcode977 状态:按自定义排序策略的方式秒了。尝试使用双指针法,但是以为是需要原地进行操作,试了一下失败了 实现过程中的难点:需要明确的是对撞指针两者的平法比较时 ......
leetcode 随想录 训练营 随想 算法

KMP字符串匹配算法 整理

KMP 整理 题面 视频详解 KMP 的作用 KMP 算法的主要作用是求出一个字符串(模式串)是否为另一个字符串(主串)的子串,并同时求出它出现的位置,也即字符串匹配问题。 算法解析 暴力 先说暴力算法: 从头开始枚举模式串位置的起点,然后遍历从起点往后 \(m\) 个字符,检查它是否与模式串完全相 ......
字符串 算法 字符 KMP

【游记】HE CSP-S&NOIP 游寄

CSP-S\NOIP 游寄 我放假了,我马上就走,但是我先写个游寄( CSP-S 只有复赛的,原因:再往前忘了( 10.xx.23 把锅巴惹了,然后他不让我训练了(悲 我们实验二是这样的 10.20.23 落地 qhd,终于回家力,特别开心 我妈请 TH 的老师和学长学姐吃了螃蟹,但是全桌只有她自己 ......
游记 CSP-S NOIP CSP amp

代码随想录算法训练营第四天 | 24. 两两交换链表中的节点 19.删除链表的倒数第N个节点 142.环形链表II

LeetCode 24. 两两交换链表中的节点 题目链接: LeetCode 24 思路: 交换结点前将cur后第一个结点和第三个结点进行保存,然后修改cur指向头节点后再修改头节点后的结点 class Solution { public: ListNode* swapPairs(ListNode* ......
节点 随想录 环形 训练营 随想

求最短路径迪杰斯特拉算法

代码运行截图: 完整代码: #include <stdio.h> #include <stdlib.h> #define MaxSize 20 #define MAX 999 typedef struct ArcNode{ //边表 int adjvex; //边表中是顶点号!! struct Ar ......
算法

扩展欧几里得算法

同余方程 \(ax\equiv b(\mod m)\) 二元一次方程 \(ax+by=c\),其中\(a,b,c\)为已知的正整数 这两者可以相互转化,显然对于这个二元一次方程,有: \(ax\mod b=c \mod b\),可以转化为\(ax\equiv c(mod b)\) 裴蜀定理 当我们考 ......
算法

hello算法

hello算法 hello算法-github hello算法-gitee ......
算法 hello

C# 面试常见递归算法

前言 今天我们主要总结一下C#面试中常见递归算法。 C#递归算法计算阶乘的方法 一个正整数的阶乘(factorial)是所有小于及等于该数的正整数的积,并且0的阶乘为1。自然数n的阶乘写作n!。1808年,基斯顿·卡曼引进这个表示法。 原理:亦即n!=1×2×3×...×(n-1)×n。阶乘亦可以递 ......
算法 常见

【算法 Java】递归,阶乘的递归实现,斐波那契数列的递归实现

递归 定义:方法直接或间接地调用方法本身 思路:将大问题转化为一个与原问题相似的规模更小的问题 注意:递归死循环会导致栈内存溢出 一些使用递归求解的问题 阶乘 Factorial.java import java.util.Scanner; public class Factorial { publ ......
阶乘 数列 算法 Java

P1017 [NOIP2000 提高组] 进制转换

P1017 [NOIP2000 提高组] 进制转换 负进制也一样用短除法转换,但是余数得保证是正数,不然没法用这个方法。 在求余的过程中加入处理: 如果负数,余数减去一个模数,上一次的商先加上一个模数再去除模数得到本次商。 比如对于 \(10\) 到 \(-2\) 进制的转换。 第一次短除 \(-2 ......
进制 P1017 1017 NOIP 2000

二分图最大匹配模板(匈牙利算法)

二分图最大匹配模板(匈牙利算法) P3386 【模板】二分图最大匹配 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) struct augment_path { vector<vector<int> > g; vector<int> pa; // 匹配 vector<int> pb ......
算法 模板

【洛谷】P1217 [USACO1.5] 回文质数 Prime Palindromes

#include <stdio.h> #include <math.h> int main(){ int a,b; int num[12000]={0}; //保存回文数的数组 int al[8]={0}; //保存取余后的原位置上的数字 int i,j,k=0,ii,temp,length=0,s ......
质数 回文 Palindromes USACO1 P1217

高斯混合模型:GMM和期望最大化算法的理论和代码实现

高斯混合模型(gmm)是将数据表示为高斯(正态)分布的混合的统计模型。这些模型可用于识别数据集中的组,并捕获数据分布的复杂、多模态结构。 gmm可用于各种机器学习应用,包括聚类、密度估计和模式识别。 在本文中,将首先探讨混合模型,重点是高斯混合模型及其基本原理。然后将研究如何使用一种称为期望最大化( ......
算法 模型 理论 代码 GMM

51k+ Star!动画图解、一键运行的数据结构与算法教程!

hello-algo(《Hello 算法》) —— 动画图解、一键运行的数据结构与算法教程,支持 Java、C++、 Python、 Go、 JS、 TS、 C#、 Swift、 Rust、 Dart、 Zig 等语言。 ......
数据结构 算法 结构 动画 教程

acwing week2 基础算法3总结

acwing week2 基础算法3总结 总结点1:双指针算法 //常用模版框架 for (int i = 0, j = 0; i < n; i ++ ) { while (j < i && check(i, j)) j ++ ; } 常见问题分类: (1) 对于一个序列,用两个指针维护一段区间 ( ......
算法 基础 acwing week2 week

区间合并算法总结

区间合并使用贪心算法,对于区间问题,通常需要对左端点排序、右端点排序或者左端点和右端点双关键字排序。区间合并算法的算法步骤: 1. 按照区间左端点排序。 2. 扫描过程中,每次维护一个当前的区间。 题目链接: https://www.acwing.com/problem/content/805/ 代 ......
区间 算法

离散化算法总结

离散化是将大范围的数字映射到小范围的区间内,适用于稀疏的区间。 两个问题需要考虑: 1. 原数组中可能有重复元素,需要去重。 2. 如何算出离散化后的值(离散化后保序,使用二分)。 题目链接: https://www.acwing.com/problem/content/804/ 代码: #incl ......
算法

代码随想录算法训练营第三天 | 203.移除链表元素 707.设计链表 206.反转链表

LeetCode 203.移除链表元素 视频链接: LeetCode203 思路: 根据链表的性质,将目标值对应的节点保存在一个临时节点中,再重新设置cur下一个节点,再将临时节点进行删除 class Solution { public: ListNode* removeElements(ListN ......
随想录 训练营 随想 算法 元素