【算法_基础_伪代码定义以及遵循的规则】教程文章相关的互联网学习教程文章

GIS算法基础——左转算法拓扑生成【代码】【图】

GIS算法基础——左转算法拓扑生成 基于JavaScript的左转算法拓扑生成拓扑生成算法的技术路线弧段预处理左转算法流程构建结点、弧段、多边形类左转算法部分匹配多边形岛可视化效果总结基于JavaScript的左转算法拓扑生成 本博文用以梳理课堂及自学内容,转载请标明出处。 本人应用JS中的Canvas对算法结果进行可视化验证,在算法说明及实现中绘制验证部分省略 拓扑相关基本概念:拓扑空间关系是一种对空间结构进行明确定义的数学方法。...

基础向算法题练习记录【代码】【图】

基础向算法题练习记录 文章目录 基础向算法题练习记录最大回文乘积平方的和与和的平方之差连续数字最大乘积方阵中的最大乘积大和最长考拉兹序列网格路径最大路径和1000位斐波那契数最大回文乘积 回文数就是从前往后读和从后往前读都一样的数。由两个2位数相乘得到的最大的回文数是 9009=9199。 求由两个3位数相乘得到的最大的回文数。 暴力枚举把得到的答案拆解对调和原数比对加入循环找出其中最大的,分层写代码可读性好 #include...

数据结构基础-排序算法【代码】

数据结构基础 一、数据结构 1.数据结构是计算机存储,组织数据的方式,是指相互之间存在一种或者多种特定关系的数据元素的集合 2.通过静心选择的数据结构可以带来更高的运行或存储效率 二、数据结构的两个层次及不同结构的划分方法(逻辑结构&物理结构) 比如:你在排队的时候,你在一队人之间,那个叫逻辑结构,而你在地球上的位置是物理位置 1、逻辑结构 数据元素抽象化的相互关系,与数据的存储无关,独立于计算机,它是从具体问题...

JavaScript基础学习——事件的冒泡、捕获、委托【代码】

1、事件流 事件流指的是从页面中接收事件的顺序。分为冒泡流和捕获流。 DOM二级事件规定事件流包括三个阶段: 1、事件捕获阶段 2、处于目标阶段 3、事件冒泡阶段 DOM在触发事件后,会经历事件捕获和事件冒泡两个最重要阶段。 2、事件冒泡 由最里层向最外层触发事件的过程,叫事件冒泡。 例1:事件冒泡测试 <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initi...

python算法专项(一)——基础练习【代码】【图】

正在学习方老师的课程,打算边学习边写一个系列的博客,从python的基础练习到深度学习,方老师的教学非常仔细,在此表示感激。也希望通过此次学习让自己编程水平更上一层楼,不辜负自己,也不辜负老师的耐心教导——2021.2.6 目录 1、5猴分桃问题2、翻扑克牌问题3、100阶乘,进阶4、囚犯放风问题5、猜姓名游戏1、5猴分桃问题 题目: 代码: def getPeaches(monkeys):unit = 1while True:ok,peaches = divide((monkeys-1)*unit,mon...

牛客寒假算法基础训练营6 F.组合数问题【代码】【图】

传送门 思路:Cn0+Cn1+Cn2+…=2 ^ n=(1+1)^n Cn0-Cn1+Cn2+…=(1-1)^n 将上面两式相加 得到Cn0+Cn2+…=2^n-1 且 从而得出答案 #include<bits/stdc++.h> using namespace std; #define ll long long const int mod = 998244353; ll qpow(ll a,ll b) {ll ans = a%mod;ll sum = 1;while(b){if(b&1)sum = sum*ans%mod;ans = ans*ans%mod;;b /=2;}return sum%mod; } int main() {ll n;scanf("%lld",&n);ll m = n/4;if(m%2){ll ans = q...

2021牛客寒假算法基础集训营6 网格(思维+线性dp)【代码】

https://ac.nowcoder.com/acm/contest/9986/E 题意: 有一个网格,每一个位置可以选上下左右四个方向的数,但是选了上就不能选下,选了左就不能选右。 同时如果两个相邻的位置,如果其中一个方向选了右,一个选了左,互相选到了对方,就对答案产生w(a1^a2)的贡献 其中w(x):x+popcnt(x).思路:其实可以发现一个位置选上下和左右是分割开的,可以分开统计出来。 于是行列分开处理,对于每一列先转移出一个最优状态,累加到答案。 然后再...

2021牛客寒假算法基础集训营6 解题补题报告【代码】

官方题解 A题 回文括号序列计数 (思维) 这题耍了一个小障眼法:其实 \(()\) 并不是一个回文串(虽然看起来像) 那么我们根据括号串的定义:空串是一个括号串 若 \(s,t\) 是括号串,那么 \(s+t\) 也是一个括号串 若 \(s\) 是括号串,那么 \((+s+)\) 也是一个括号串显然,任何一个括号串经过操作 \(3\) 之后不论怎么变换,不可能变为一个回文串(开头必然是 \((\) ,结尾必然是 \()\)),但是所有长度大于 \(0\) 的括号串都至少需要...

2021牛客寒假算法基础集训营6【代码】

2021牛客寒假算法基础集训营6 A 回文括号序列计数 根据题目描述的回文那只能0, 1 int main() {IOS;for (cin >> _; _; --_) {ll n; cin >> n;cout << (n ? 0 : 1) << '\n';}return 0; }B 系数 \((x^2+x+1)^n=(x^2-2x+1)^n=(x-1)^{2n} (mod \ 3)\) 然后就是一个二项式定理 int c[3][3];ll C(int n, int m) { return m > n ? 0 : c[n][m]; }ll lucas(ll n, ll m) { return m ? C(n % mod, m % mod) * lucas(n / mod, m / mod) % mod :...

【二分】2021牛客寒假算法基础集训营5 A美丽的路径【代码】

美丽的路径 题目大意 有n个点,m条边,每个点有一个权值。起点是s,终点是t,设美丽路径为s到t路程中第k/2+1小的数,求最大的美丽值是多少。 解题思路 二分去取答案。我们把大于等于mid的权值设为1,小于mid为0。因为我们要求k/2+1小的数,即路径中第k/2+1小的数是1,1的个数要大于等于0的个数。用并查集维护起点和终点,直接判-1的情况 如果有连着的两个1,那么最后结果一定是大于mid,因为可以来回一直走这两个1 去掉上述情况之...

Java基础学习积累(2)---冒泡排序、选择排序、二分查找法【代码】【图】

1、冒泡排序 代码实践: package com.company;import java.util.Arrays;/*** 冒泡排序*/ public class Main {public static void main(String[] args) {int[] arr = {7, 6, 5, 4, 3};System.out.println(Arrays.toString(arr));for (int i=0;i<arr.length-1;i++){ //比较趟数for (int j = 0; j < arr.length-1-i; j++) { //比上一次比较的趟数少一次if (compare(arr[j], arr[j + 1]) > 0) {int t = arr[j];arr[j] = arr[j + 1];a...

java基础 冒泡排序【代码】

public static void main(String[] args) {int[] nums = { 10, 2, 32, 9 };// 冒泡排序for (int i = 0; i < nums.length - 1; i++) {for (int j = 0; j < nums.length - 1 - i; j++) {if (nums[j]>nums[j+1]) {int temp = nums[j];nums[j] = nums[j+1]; nums[j+1] = temp;}}}System.out.println(Arrays.toString(nums));}

2021牛客寒假算法基础集训营4 H. 吴楚月的表达式【代码】

链接:https://ac.nowcoder.com/acm/contest/9984/H 来源:牛客网 题目描述 众所周知,吴楚月在数据结构课的大作业环节选择了表达式求值。 他觉得实现一个线性的表达式求值太无聊了,于是他把问题丢到了一棵树上。 形式化地讲,这棵树有 n 个节点,1 号点为根,每个节点上都有一个权值 vivi ,代表参与运算的值。每条边都有一个 opiopi ,代表运算符。 于是树上一条路径变成了 v?op?v???v?op?vv?op?v???v?op?v 的形式,对应一个表达...

算法基础:汉诺塔--递归【代码】【图】

题目: 古代有一个梵塔,塔内有三个座A、B、C,A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个和尚想把这64个盘子从A座移到C座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求输出移动的步骤。 #include <iostream> using namespace std; void Hanoi(int n,char src,char mid,char dest) //将src座上的n个盘子,以mid座为中转,移...

算法基础练习-_05将整数的奇偶位互换【代码】

将整数的奇偶位互换 import org.assertj.core.api.Assertions;public class _05_交换奇偶位 {public static void main(String[] args) {int a = 0b01000000_00000000_00000000_00000000;System.out.println(a);int b = m(a);System.out.println(b);Assertions.assertThat(b).isEqualTo(0b10000000_00000000_00000000_00000000); //一个第三方库,判断b是否和括号里的一致}private static int m(int i) {int ou = i & 0xaaaaaaaa;//...