一些乱七八杂的概念理解 合集

游戏运行库合集:一键解决VC++、.NET、DirectX缺失问题 在Windows系统上运行软件或游戏时,常会遇到因缺少必要的系统组件而导致的启动失败、报错或闪退问题。这些问题的根源往往在于缺失了关键的运行时库,例如Visual C++ Redistributable、.NET Framework或DirectX End-User Runtimes。这些运行库是许多应用程序赖以执行的基础环境,它们提供了程序运行所必需的核心函数和接口。理解并正确部署这些运行库,对于保障软件兼容性和系统稳定性具有重要的技术价值。无论是进行游戏娱乐、专业软件开发还是日常办公,一个健全的系统运行 阅读详情

如果有错误的话还希望各位巨巨评论指正……

目录

主席树:

线段树:

最大流 = 最小割 :

逆元:

威尔逊定理:

阶乘 :

快速幂:

快速乘:

Pollard Rho+Miller Rabin:大素数判断和素因子分解

一些数论知识:

离散化:


 

主席树:

可以求第K大的数

理解参考:https://www.cnblogs.com/LiuRunky/p/Sustainable_Segment_Tree.html

bin巨的板子放一下嘻嘻 (可以求区间[l,r]内第K小的数)

#include <stdio.h>
#include <math.h>
#include <bits/stdc++.h>
#include <cstdio>
#include <cstring>
#include <algorithm>
using namespace std;
const int maxn = 100010;
const int M = maxn * 30;
int q, n, m, tot;
int a[maxn], t[maxn];
int T[maxn], lson[M], rson[M], c[M];
void Init_hash()
{
    for (int i = 1; i <= n; i++) {
        t[i] = a[i];
    }
    sort(t + 1, t + 1 + n);
    m = unique(t + 1, t + 1 + n) - t - 1;

}
int build(int l, int r)
{
    int root = tot++;
    c[root] = 0;
    if (l != r) {
        int mid = (l + r) >> 1;
        lson[root] = build(l, mid);
        rson[root] = build(mid + 1, r);
    }
    return root;
}
int Hash(int x)
{
    return lower_bound(t + 1, t + 1 + m, x) - t;
}
int update(int root, int pos, int val)
{
    int newroot = tot++, tmp = newroot;
    c[newroot] = c[root] + val;
    int l = 1, r = m;
    while (l < r) {
        int mid = (l + r) >> 1;
        if (pos <= mid) {
            lson[newroot] = tot++;
            rson[newroot] = rson[root];
            newroot = lson[newroot];
            root = lson[root];
            r = mid;
        } else {
            rson[newroot] = tot++;
            lson[newroot] = lson[root];
            newroot = rson[newroot];
            root = rson[root];
            l = mid + 1;
        }
        c[newroot] = c[root] + val;
    }
    return tmp;
}
int query(int left_root, int right_root, int k)
{
    int l = 1, r = m;
    while (l < r) {
        int mid = (l + r) >> 1;
        if (c[lson[left_root]] - c[lson[right_root]] >= k) {
            r = mid;
            left_root = lson[left_root];
            right_root = lson[right_root];

        } else {
            l = mid + 1;
            k -= c[lson[left_root]] - c[lson[right_root]];
            left_root = rson[left_root];
            right_root = rson[right_root];
        }
    }
    return l;
}
int main()
{
    while (~scanf("%d%d", &n, &q)) {
        tot = 0;
        for (int i = 1; i <= n; i++) {
            scanf("%d", &a[i]);
        }
        Init_hash();
        T[n + 1] = build(1, m);
        for (int i = n; i > 0; i--) {
            int pos = Hash(a[i]);
            T[i] = update(T[i + 1], pos, 1);
        }
        while (q--) {
            int l, r, k;
            scanf("%d%d%d", &l, &r, &k);
            printf("%d\n", t[query(T[l], T[r + 1], k)]);
        }
    }
    return 0;
}

线段树:

将数组构建成一棵二叉树,方便于区间查询,单点更新

看网上视频写的板子

#include <stdio.h>
#include <iostream>
#include <string.h>
#include <algorithm>
#include <bits/stdc++.h>
using namespace std;
#define ll long long
const int maxn = 1e8 + 5;
int arr[maxn], tree[maxn];
void build(int node, int start, int emd)
{
    if (start == emd) {
        tree[node] = arr[start];
    } else {
        int mid = (start + emd) / 2;
        int left_node = 2 * node + 1;
        int right_node = 2 * node + 2;
        build(left_node, start, mid);
        build(right_node, mid + 1, emd);
        tree[node] = tree[left_node] + tree[right_node];
    }
}

void update(int node, int start, int emd, int idx, int val)
{
    if (start == emd) {
        arr[idx] = val;
        tree[node] = val;
    } else {
        int mid = (start + emd) / 2;
        int left_node = 2 * node + 1;
        int right_node = 2 * node + 2;
        if (idx >= start && idx <= mid) {
            update(left_node, start, mid, idx, val);
        } else {
            update(right_node, mid + 1, emd, idx, val);
        }
        tree[node] = tree[left_node] + tree[right_node];
    }
}

int query(int node, int start, int emd, int L, int R)
{
    if (R < start || L > emd) {
        return 0;
    } else if (L <= start && R >= emd) {
        return tree[node];
    } else if (start == emd) {
        return tree[node];
    } else {
        int mid = (start + emd) / 2;
        int left_node = node * 2 + 1;
        int right_node = node * 2 + 2;
        int sum_left = query(left_node, start, mid, L, R);
        int sum_right = query(right_node, mid + 1, emd, L, R);
        return sum_left + sum_right;
    }
}
int main()
{
    int n, c, k;
    scanf("%d%d%d", &n, &c, &k);
    for (int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    build( 0, 0, n - 1);// 建树
    printf("%d\n", query(0, 0, n - 1, 2, 5));
    //查询区间2,5之内的和
    return 0;
}

 

最大流 = 最小割 :

从A地到B地有很多条路可以走 并且 每条路可能会有宽窄不同的地方(即权值不同)最大流就是从A地到B地 可以通过的最大流量的和 因为到比较窄的地方 就只能通过那么一些流量 即时后来路变宽了 还是那么点流量…… 

从最小割的理解看就是 使割掉的边的权值最小 然后使两点间没有通路 的边权之和

 

逆元:

\frac{a}{b}\, mod\: p 因为 分数无法取模 这时候需要用到逆元 inv[b] 是 b 关于 p 的逆元 所以

 \frac{a}{b}\, mod\: p =(a *inv[b])mod\, p

 

威尔逊定理:

当且仅当p为素数时, (p - 1)! ≡ (-1) mod p 

 

阶乘 :

N!= N*(N-1)*(N-2)……*2*1 注意 0!=1

 

快速幂:

通过二进制转换,将乘的次数分解,减少次数消耗的时间

 

快速乘:

与快速幂相似,比正常乘法快一些,也避免乘法过程中爆int / long long范围

 

Pollard Rho+Miller Rabin:大素数判断和素因子分解

//判断素数
bool Miller_Rabin(LL n)
{
    if(n == 2) return true;
    if(n < 2 || !(n & 1)) return false;
    LL m = n - 1;
    int k = 0;
    while((m & 1) == 0)
    {
        k++;
        m >>= 1;
    }
    for(int i=0; i<Times; i++)
    {
        LL a = rand() % (n - 1) + 1;
        LL x = quick_mod(a, m, n);
        LL y = 0;
        for(int j=0; j<k; j++)
        {
            y = multi(x, x, n);
            if(y == 1 && x != 1 && x != n - 1) return false;
            x = y;
        }
        if(y != 1) return false;
    }
    return true;
}
//分解素数
LL pollard_rho(LL n, LL c)
{
    LL i = 1, k = 2;
    LL x = rand() % (n - 1) + 1;
    LL y = x;
    while(true)
    {
        i++;
        x = (multi(x, x, n) + c) % n;
        LL d = gcd((y - x + n) % n, n);
        if(1 < d && d < n) return d;
        if(y == x) return n;
        if(i == k)
        {
            y = x;
            k <<= 1;
        }
    }
}

一些数论知识:

https://zerol.me/2018/08/29/number-theory/

 

离散化:

将范围较大的有限个数据变成较小的数,使数据中的最大值尽可能小且保证所有数据都是正数。

理解参考:https://blog.youkuaiyun.com/qq_41754350/article/details/81199993

栗子:12342434 12312 234234 12342434

可以离散化变成 3 1 2 3

数据一下子变小了 比较也更容易

板子如下:

#include<algorithm> 
#include <bits/stdc++.h>
//n 原数组大小 num 原数组中的元素 lsh 离散化的数组 cnt 离散化后的数组大小
using namespace std;
int main()
{ 
    int lsh[MAXN] , cnt , num[MAXN] , n;
    for(int i=1; i<=n; i++) {
	    scanf("%d",&num[i]);
    	lsh[i] = num[i];	
    }
    sort(lsh+1 , lsh+n+1);
    cnt = unique(lsh+1 , lsh+n+1) - lsh - 1;
    for(int i=1; i<=n; i++)
	    num[i] = lower_bound(lsh+1 , lsh+cnt+1 , num[i]) - lsh;
    for(int i=1; i<=n; i++)
        printf("%d ",num[i]);
    return 0;
}

在某个博客上看到了很神奇的操作

暂时没看明白 先贴上代码emm

struct Node{
int val, order;
}node[maxn];
 
for(int i=1; i<=n; i++) {
    if(i==1 || node[i].val!= node[i-1].val) { //去重
        r[node[i].order] = i;
    }
}

来源:https://blog.youkuaiyun.com/qq_41754350/article/details/81199993

 

 


先酱~~

 

 

立创开源TinyAWG:基于ZYNQ7010的35MHz带宽200MSa/s任意波形发生器设计与实现 本文详细解析了立创开源TinyAWG的设计与实现,这是一款基于ZYNQ7010芯片的低成本高性能任意波形发生器。项目实现了35MHz带宽和200MSa/s采样率,核心采用ARM+FPGA协同架构,FPGA负责高速DDS信号生成,ARM运行Linux并搭载LVGL图形界面。文章涵盖了硬件选型、电路设计、软件逻辑及性能测试,为复刻和学习ZYNQ系统设计、高速DAC应用提供了完整参考。 阅读详情

相关推荐

手把手教你用CubeMX给GD32F103点灯、调串口(附完整工程)

本文详细介绍了如何使用CubeMX为GD32F103开发板配置GPIO点灯和串口通信,包含完整的工程创建、代码构建和测试流程。特别强调了GD32与STM32的差异点及常见避坑技巧,帮助开发者快速上手GD32开发。

weixin_42566424的博客 313

6个变态的C语言写的Hello World

原文:http://cocre.com/?p=914  下面的六个程序片段主要完成这些事情:输出Hello, World 混乱C语言的源代码 下面的所有程序都可以在GCC下编译通过,只有最后一个需要动用C++的编译器g++才能编程通过。hello1.c    #define _________ }    #define ________ putchar

Daniel.Chan的博客 531

ICESat-2数据下载及处理分析随笔

ICESat-2全称是Ice,Cloud and land Elevation Satellite -2。看名字我们能知道它的任务是测ice,cloud和land elevation,而且这是一个Satellite,是一颗卫星。那么这里我们就要分清ICESat-2和ATLAS的关系,ICESat-2是星载平台,是一个space observatory,ATLAS是这个星载平台上搭载的单光子激光雷达系统。

u011322358的博客 1万+

一些乱七八糟学习到的东西

在准备期间,加深了对小程序的理解,收获到的一些知识 微信小程序,大多数人误解的8个问题 - 我为球狂 - 博客园 (cnblogs.com) Android 底部导航栏(底部Tab)最佳实践 - 简书 (jianshu.com)

m0_52367537的博客 220

深度学习、图像分类入门,从VGG16卷积神经网络开始

刚开始接触深度学习、卷积神经网络的时候非常懵逼,不知道从何入手,我觉得应该有一个进阶的过程,也就是说,理应有一些基本概念作为奠基石,让你有底气去完全理解一个庞大的卷积神经网络: 本文思路: 一、我认为学习卷积神经网络必须知道的几个概念: 1、卷积过程:   我们经常说卷积神经网络卷积神经网络,到底什么才是卷积?网络层卷积过程到底怎么实现?我们在这里借鉴了另一位博客大牛的动态图来给大

Errors_In_Life的博客 16万+

第3.1.3章 机器人第三方库实战总结:ROS 2 入门实战及和ROS1的对比,打通机器人开发的任督二脉

本文针对机器人SLAM开发中第三方库的学习痛点,重点介绍ROS 2在SLAM中的应用。文章首先对比ROS 1与ROS 2的核心差异,梳理ROS 2知识图谱,包括节点、话题、服务等核心概念。通过实战项目演示如何构建激光SLAM节点,结合代码详解运行流程。最后给出学习建议,强调动手实践的重要性,帮助开发者快速掌握ROS 2在SLAM开发中的关键应用。

行知SLAM 179

别再看乱七八糟的教程了!2025年最靠谱的全套AI学习路线在这

在人工智能(AI)飞速发展的今天,掌握AI技术已经成为了许多高校研究者和职场人士的必备技能。从深度学习到强化学习,从大模型训练到实际应用,AI技术的广度和深度不断拓展。作为一名AI学习者,面对浩瀚的知识海洋,如何有条不紊地学习并应用这些技术呢?别担心,今天我为你。

2301_82275412的博客 3162

39、FIPA ACL:多代理系统中的标准化通信

本文详细介绍了FIPA ACL(Agent Communication Language)的基本概念、言语行为理论基础以及其在多代理系统(MAS)中的应用。文章涵盖了FIPA ACL的消息格式、信息交流流程、实现与优化方法,并通过智能调度系统的实例展示了其实际应用效果。此外,还探讨了FIPA ACL面临的挑战及未来发展方向,如通信延迟优化、本体简化、安全性增强等。

k8s6orchestrator的博客 381

datatable 汇总_中考语文文言文阅读:必考点汇总,不看后悔!

我要进群 商务合作微信我要资料我要微课 18205613175我要投稿资 料 推 荐九年级上册英语微课大全七八九语文上册微课合集九年级上册七科微课大全九年级语文上册课后读读写写注音+解释七年级上册语文读读写写注音及解释中考满分作文精编2(赶快收藏)!超全!【微课】《中学英语语法》 1-50讲部編七上语文微课合集(1-16)7-9年级上册语文知识点梳理汇总2020中...

weixin_39625563的博客 105

YOLOv13涨点改进 | 全网独家创新、HyperACE改进、注意力改进篇 | CVPR 2025| 引入LRSA局部区域自注意力模块,能提升其在细节捕捉、小目标检测和长距离依赖建模方面的能力

本文提出将LRSA(局部区域自注意力)模块集成到YOLOv13中,通过局部特征交互增强细节捕捉能力、小物体检测精度和长距离依赖建模。LRSA模块采用重叠图像块处理策略,在保持计算效率的同时提升复杂背景下的检测性能。文章详细介绍了模块结构、原理优势,并提供了三种改进方案:1)在主干网络添加LRSA层;2)将关键模块替换为DSC3k2_LRSA;3)采用HyperACE_LRSA结构。配套提供了完整的PyTorch实现代码和YAML配置文件,展示了该模块如何通过局部注意力机制平衡检测精度与推理速度。

Ai缝合怪、助力小伙伴高效发论文 344

群无人机航迹规划-虚拟管道

图源北理工全权老师团队虚拟管道相关论文,文字为个人理解,以ppt形式分享报告。

coldmood77的博客 669

[置顶]【算法教程合集】

又又实在是太懒啦!!! 自己写学习笔记?不存在的。。。 在这里总结一下OI的一些教程(已分类)。 基础算法 离线算法 数据结构 线性结构 偏序维护 Math 数论 组合计数 置换群 多项式 从多项式乘法到快速傅里叶变换(FFT &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp; NTT &amp;amp;amp;amp;amp;amp;amp;

又又大柚纸的博客 1305

ESP32-C3入门教程 蓝牙篇①——基于Blufi 的 WiFi 智能配网

文章目录一、前言二、WiFi配网方式三、快速运行四、运行效果五、ESP32-C3程序流程5.1 主程序5.2 回调函数5.3 SmartConfig线程5.4 流程图六、关键函数6.1 设置SmartConfig的协议类型6.2 启动SmartConfig6.3 停止SmartConfig七、其他八、参考 一、前言 本文基于VS Code IDE进行编程、编译、下载、运行等操作 基础知识点请查阅:ESP32-C3入门教程 基础篇①——基于VS Code构建Hello World 二、WiFi配网方式 W

7764

Java入门基础,Java知识点总结合集

其它面试题(springboot、mybatis、并发、java中高级面试总结等)**[外链图片转存中…(img-1GlT60WC-1709271223671)][外链图片转存中…(img-mfUp6s1Q-1709271223671)][外链图片转存中…(img-iaiWnz9O-1709271223672)]本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录。

809

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

python全自动整理——乱七八糟的文件夹,懂得都懂~_python 文件夹 整理(2)

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。这就看起来乱七八糟了,这要是手动整理,还好,哈哈~

2401_84572711的博客 1255

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

干货!高频手撕算法合集来了

作者 |L的存在来源 |我是程序员小贱(ID:Lanj1995Q)基础数据结构的融合是成为庞大系统的基石。比如Redis中的跳跃表,数据库索引B+树等,只有对基础的数据结构足够的熟悉...

程序人生的博客 317

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

VoltAgent 工程工具链指南:基于 Nx 插件的包生成器与 Provider 开发工作流

VoltAgent 是一个基于开源 TypeScript AI Agent Framework 构建的 AI Agent 工程平台,其仓库中提供了一套面向开发者与贡献者的内部工程工具(位于 `tools/` 目录),用于构建、维护、测试和发布 VoltAgent 的各个包。本文以 [tools/README.md](https://link.gitcode.com/i/7f85659b229a7e

gitblog_00696的博客 320

抖音批量下载保姆级教程:用 douyin-downloader 一键去水印,作者全集、合集、直播都能抓

你是不是也遇到过这样的时刻:刷到一个宝藏博主,想把他近半年的作品全部存下来慢慢看,结果只能复制一个链接、打开网页、右键另存为……循环几十次,手都酸了,存下来的视频还带着烦人的水印。更糟的是,过几天想看看自己存了哪些,文件名早就变成了一堆乱码。 今天要介绍的开源工具 **douyin-downloader**,就是专治这种"抖音批量下载"困境的。简单说,它就是一个帮你**自动抓取抖音视频、图集、合

gitblog_00230的博客 159

暑假作业资源合集

weixin_53721706的博客 2203

加密货币工具和算法大合集

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33892359的博客 1609

《软件方法》2023版第1章(08)使用UML的理由,挑破乱七八糟图的脓包

而是要遮掩背后的一些脓包。脓包一:利益绑架

rolt的专栏 232

千万不要为了节约成本而选择小模型,特别是开源模型

大模型和小模型是从功能上来区分的,而不是参数上我们在工作的过程中,应该多多少少都遇到过这样的事情;那就是老板为了节省成本,然后找了一些不专业或者一些漏洞百出的工具给我们用;最后的结果就是成本没节约下来,然后还出了一大堆乱七八糟的事。这可真的是羊肉没吃着,还惹了一身骚;成本没节约,最后还耽误时间,身心俱疲。为什么不建议使用小模型?首先声明一下,这里的小模型不是指参数体量小的模型,是指功能太差,无法满足业务场景的模型;更有甚者很多小企业老板会选择一些开源模型,自己部署,就为了省钱。

2401_84206094的博客 874

用计算机学数学日记,【实用】数学日记合集五篇

【实用】数学日记合集五篇数学日记 篇1今天,我和爸爸一起去新房子,为如何用瓷片铺设地板的装修方案做预算。重点是买哪一种瓷片最划算。可能是爸爸想考考我,也可能是爸爸真的想知道买哪一种瓷片最划算,于是爸爸说:"地面总面积约一百二十平方,有三种瓷片。第一种是80厘米*80厘米,60元钱/一块;第二种是60厘米*60厘米,30元钱/一块;第三种是100厘米*100厘米,110元钱/一块。如果让你去买瓷片,...

weixin_31750655的博客 333

关于Agent智能体的开发心得——从人的角度去理解智能体

智能体中,大模型就是人,工具就是人使用的工具,提示词就是你想让大模型做什么,以及怎么做。智能体作为AI领域潜力无限的一个应用方向,很多技术从业者都扑在了智能体上,同时也有更多的人想入行智能体开发;但面对智能体领域各种乱七八糟的新概念,新名词很多人都不知道该从哪下手,以及怎么下手。特别是智能体是结合大模型LLM+Prompt+Tools组成的一个复合概念;最重要的是很多人刚开始很难弄明白大模型都是干啥的,以及应该怎么干。从人的角度理解大模型和智能体。

2401_85375298的博客 735

大模型AI产品经理,会写prompt非常重要!小白速来!!!

之前有同样想在AI领域创业的朋友有问过我,我的Ai产品经理是自己请,还是打算自己上。如果亲自操刀就会耽误一些时间,毕竟还是要了解AI和互联网产品经理之间的区别和技能。现阶段请人还可能会遇到不专业的,毕竟自己面试没有经验,主要初创阶段资金也不够理想。我是这样做的,我是一边面试AI产品经理一边了解基础面的一些知识,另外prompt的工作不需要全职,请一个兼职即可。在经历那么多天的面试以及学习,我招到了一个学习能力比较强的小伙伴一起来做产品方案。而在学习过程中我被割过韭菜,主要是两个方面,市面上的课程对真实项目的

python12222_的博客 986
上一篇: POJ3904 Sky Code 容斥原理 or 莫比乌斯反演
下一篇: 2019暑假多校训练第三场 | 部分题解
OneLine_
博客等级 码龄9年 48粉丝 72原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值