ICode9

精准搜索请尝试: 精确搜索
  • KMP字符串2022-03-31 00:31:09

    字符串匹配 #include <iostream> #include <algorithm> #include <cstring> using namespace std; const int N=1e5+10,M=1e6+10; char s[M],p[N]; int ne[N]; int main() { int n,m; cin>>n>>p+1>>m>>s+1;//下标从1开始 //求ne数

  • 搜索与图论--图和树的存储和遍历2022-03-30 22:02:12

    图和树的存储使用邻接矩阵实现,其内部使用单向链表完成邻接矩阵的实现,我们使用h[N]表示头节点,使用e[M]表示第i个节点存的数值,使用ne[M]表示第i个节点所指向的下一个节点。 int h[N],e[M],ne[M],idx; void add(int a,int b){ e[idx]=b;ne[idx]=h[a];h[a]=idx++; }

  • 模拟散列表(拉链法储存)2022-03-29 12:31:22

    #include <iostream>#include <algorithm>#include <cstring>using namespace std;const int N=100003;int h[N],e[N],ne[N],idx;void insert(int x){ int k=(x%N+N)%N; e[idx]=x; ne[idx]=h[k]; h[k]=idx++;}bool find(int x){ int k=(x%N+N)%N; for(int i

  • 【转载】windows 如何一键关闭所有进程程序 --- (博客园 - 木人子韦)2022-03-26 11:02:12

    【转载】Windows 如何一键关闭所有进程程序 --- (博客园 - 木人子韦) 1、桌面创建一个快捷方式,点击鼠标右键跳出的菜单=> 新建=>快捷方式 01 在“请键入对象的位置(T)”下方的文本框中输入: taskkill /F /FI "USERNAME eq Administrator" /FI "IMAGENAME ne explorer.exe" /FI "IMAGEN

  • 图的存储、遍历(BFS、DFS)2022-03-25 20:00:23

    一、图的存储      1、邻接矩阵(二维数组)             int mp[N][N];            2、边缘列表(结构体)            tip:用的很少,适用于需要对边权排序的题目 struct Edge { int u,v; }g[N];        3、邻接表            1)vector数组(c++自

  • 拓扑排序2022-03-01 23:35:31

    848. 有向图的拓扑序列 题目链接 https://www.acwing.com/problem/content/850/ 解析 要掌握拓扑排序的基本思路:每次找到入度为0的点加入队列,可以用数组存答案,根据加入队列的数的个数可以判断是否可以进行拓扑排序。 Ac代码 点击查看代码 #include <iostream> #include <cstdio>

  • KMP算法2022-02-25 22:35:46

        KMP算法是一种用于字符串匹配的算法,我们在介绍KMP算法之前,我们先介绍一下字符串匹配的朴素算法:       题目:有长度为N的字符串P , 长度为M的字符串S , 问 P在S中匹配项的起始位置:       双重循环,遍历S数组,每遇到一个新的S[i] 就要从 P[1]重新开始判断是否匹配,相当于一层

  • 图论例题总结2022-02-20 19:33:33

    目录 DFS BFS 拓扑排序 最短路 最小生成树和二分图 DFS 用dfs(递归)搜索每一种情况 #include <iostream> using namespace std; const int N = 10; int n; int path[N]; bool st[N]; void dfs(int u) { cout<<u<<endl; if(u == n) { for(int i = 0; i

  • 基础数据结构(一):链表、单调栈、单调队列2022-02-20 15:04:32

    文章目录 一、链表和邻接表1 链表I 数组模拟单链表II 数组模拟双链表 二、栈和队列1 单调栈和单调队列I 单调栈II 单调队列 三、KMP算法 一、链表和邻接表 1 链表   这里我们不采用常用的结构体加指针的方式来实现链表,因为这样每个结点都要new一下,常见笔试题中链表

  • C. Game Master2022-02-19 18:33:27

    C. Game Master 本题可以抽象为图论问题: 由题意可知,在两张地图上权值最大的那两个人x和y能赢,那么能赢这两个人的也能赢,依次类推,我们根据玩家在两张地图上的权值对玩家的下标进行建图,strength小的玩家A指向strength刚刚大于A的B,形成了一棵树,我们对x和y进行\(dfs\),能被指向的玩家可

  • 树(图)的深度优先遍历(c++数组)2022-02-09 19:02:15

    树与图的深度优先遍历 存储方式: 邻接矩阵(一个二维数组)=> g[ a ] [ b ] = k; => a -->b 的权重为k。相反g[ b ] [ a ] = k; => b -->a 的权重为k。邻接表 #include<bits/stdc++.h> using namespace std; const int N = 1e5 + 10 , M = 2 * N; int h[N],e[M],ne[M],idx; int n;

  • RSA维纳攻击2022-02-03 15:58:18

    适用情况 e过大或过小 在e过大或过小的情况下,可使用算法从e中快速推断出d的值。 原理 我不生产原理,我只是原理的搬运工 Wiener 表示如果满足: d < 1

  • 单链表2022-01-30 17:30:48

    链表合并 题目描述:        已有a、b两个链表,每个链表中的结点包括学号、姓名、成绩。要求把两个链表合并,按学号升序排列。 输入:        第一行,a、b两个链表元素的数量N、M,用空格隔开。接下来N行是a的数据然后M行是b的数据每行数据由学号、姓名和成绩三部分组成。 输出:

  • [SCOI2008]天平2022-01-29 15:35:39

    本题加深了对差分约束的理解,并不是绝对的模板题目,但是其核心还是最短路/最长路 砝码间的关系 \(i<j\): 由此可以得到\(1\le i+1\le j\le 3\),即\(1\le j-i\le 2\) \(i=j\): \(j-i=0\) \(i>j\): \(-1\le j-i\le -2\) \(i\)和\(j\)关系未知: \(-2\le j-i\le 2\) 得到砝码之

  • 285. 没有上司的舞会2022-01-28 23:03:24

    285. 没有上司的舞会 Ural 大学有 N 名职员,编号为 1∼N。 他们的关系就像一棵以校长为根的树,父节点就是子节点的直接上司。 每个职员有一个快乐指数,用整数 Hi 给出,其中 1≤i≤N。 现在要召开一场周年庆宴会,不过,没有职员愿意和直接上司一起参会。 在满足这个条件的前提下,主办

  • 831.KMP字符串2022-01-25 17:35:51

    给定一个模式串 S,以及一个模板串 P,所有字符串中只包含大小写英文字母以及阿拉伯数字。 模板串 P 在模式串 S 中多次作为子串出现。 求出模板串 P 在模式串 S 中所有出现的位置的起始下标。 输入格式 第一行输入整数 N,表示字符串 P 的长度。 第二行输入字符串 P。 第三行输入

  • Linux笔记 bash解决if not found 问题2022-01-25 16:01:29

    原因是if [无空格然后在内容然后再空格] 我想应该新手小白都会犯这样问题 正确写法 if [ $# -ne 1 ] 错误写法 前面为未空格,后面空格 if [$# -ne 1 ] ​ 前面空格,后面未空格 if [ $? -eq 0]    都未空格 if [$? -eq 0]     ​​

  • Codeforces126B Password (KMP)2022-01-21 12:30:21

    题目链接: Password 大致题意 给定字符串 s s s, 求在串中出现过的最长的匹配的前后缀. 串中出现: 表示出现非前缀且非后缀. 解题思路 kmp 我们考虑对于长度为

  • MongoDB的and和or,嵌入式文档,数组查询2022-01-17 12:02:48

    现在,有一张数据表或者是集合,结构如下: 我们现在对集合进行and和or查询,如下: 1,隐式and查询,查询年龄大于15,且性别属于男性的数据。 db.tb.find({"age":{"$gt":15},"sex":"male"}) 结果: 2,显式and查询,查询年龄大于等于15,且性别不为女性的数据。 db.tb.find({"$and":[ {"age":{"$

  • AcWing826 数组模拟单链表2022-01-16 19:33:18

    #include<iostream> using namespace std; const int N = 100010; int idx, head, va[N], ne[N]; int n; void addtohead(int x) { va[idx] = x; ne[idx] = head; head = idx++; } void add(int k, int x) { va[idx] = x; ne[idx] = ne[k]; ne[k] = idx++; } void

  • [cf1428H]Rotary Laser Lock2022-01-15 12:00:45

    为了方便,定义0区间初始左端点所在的编号为0,其余位置顺时针依次为$[1,nm)$ 考虑对0区间顺时针旋转,记$s_{i}$为0区间左端点旋转到$i$时的答案(约定$s_{i+n}=s_{i}$) 性质1:若$s_{i}-s_{i-1}=1$且$s_{i+1}-s_{i}\ne 1$(其中$0\le i<nm$),则存在一段区间以$i$为左端点 记$a_{i}$为除0以外是

  • 牛客小白月赛43 F 全体集合2022-01-14 14:03:01

    题目链接 F 全体集合 题目大意 给出\(n\)个点\(m\)条边的无向图,给出\(k\)个点上分别有一个人,每个人一次只能走到一个相邻的节点,问有没有一种可能让这些人都走到一个点。 思路 考虑使用二分图染色: 如果染色成功,说明这个图是二分图,那么对于不同颜色的点永远不可能走到一起,题目也说

  • [NOIP2014]寻找道路----简单bfs2022-01-09 11:32:36

    题目链接 #include <iostream> #include <cstring> #include <algorithm> #include <queue> using namespace std; #define x first #define y second typedef pair<int, int> PII; const int N = 200010; int n,m; int h[N],e[N],ne[N],idx=0;

  • 单链表模板2022-01-02 14:06:09

    #include<iostream> using namespace std; const int N=100010; int head,e[N],ne[N],idx; void init(){ head=-1; idx=0; } void add_to_head(int x){ e[idx]=x; ne[idx]=head; head=idx++; } void add(int k,int x){ e[idx]=x; ne[i

  • c语言的期末大作业2021-12-26 21:01:51

    (就让我硬水过去了OVO 代码通俗易懂 #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct ADRESS { char name[15]; char units[20]; char phone[15]; }adress; adress r[10000]; int InputRecord(adress r[])//用来记录联系人记录 { int n; prin

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有