![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c++
qq_30328145
这个作者很懒,什么都没留下…
展开
-
最短路问题(初步实现)
最短路的思维图朴素Dijkstra O(n^2)dijkstra堆优化版 O(mlogn)Floyd求最短路一个一个来;朴素Dijkstra O(n^2)主要用在稠密图(用邻接矩阵来存)思路:1.先初始化距离 dist[1] =0 ;dist[i] = 0x3f3f3f3f;定义一个集合S 来存已经确定最短距离的点;2.for(int i=1;i<=n;i++) t 是不在S中,距离最短的点; 把t存入S 再用t来更新其他点的距离;例题链接:https://www.ac原创 2021-02-25 15:08:17 · 228 阅读 · 0 评论 -
找比大于等于i 的第一个质数
下面展示一些 内联代码片。// A code blockvar foo = 'bar';int main(){ for(int i =100000;;i++){ bool flag = true; for(int j =2;j*j <=i ;j++){ if(i%j== 0){ flag = false ; break; }原创 2021-02-24 17:22:32 · 263 阅读 · 0 评论 -
2021牛客网寒假训练1(题解)(更新中)(接下来的题目完全是知识盲区了,等2天,明天还有第二场)
下面展示一些 题解`。括号#include<bits/stdc++.h>using namespace std;int main(){ cin.tie(0); ios::sync_with_stdio(0); int k,i; cin>>k; if (k == 0) {//非空 cout << ")(" << endl; } else {//原创 2021-02-02 22:16:26 · 113 阅读 · 0 评论 -
KMP字符串
下面展示一些 内联代码片。#include<iostream>using namespace std;const int N =100100,M=1000010;int n,m;char p[N],s[M];int ne[M];//if(ne[M]==j) 表示以M为终点前j个位子长的和1~j-1一样int main(){ cin.tie(0); ios::sync_with_stdio(0); cin&g原创 2021-02-02 17:50:40 · 79 阅读 · 0 评论 -
154.滑动窗口(单调队列)
下面展示一些 内联代码片。题目见acwing154#include<iostream>//单调队列using namespace std;const int N =1e+6 +10;int n,k;int a[N],q[N];int main(){ cin.tie(0); ios::sync_with_stdio(0); cin>>n>>k; for(int i=0;i<原创 2021-02-02 15:10:03 · 74 阅读 · 0 评论 -
830.单调栈
下面展示一些 内联代码片。注意理解用双指针理解栈;再想优化;#include<iostream>using namespace std;const int N =100010;int stk[N],tt;int main(){ cin.tie(0);//cin省时间 ios::sync_with_stdio(0);//闪屏省时间 int n; cin>>n; for(int i=原创 2021-02-02 12:03:13 · 71 阅读 · 0 评论 -
6378.删除数组中的元素(用数组模拟链表 链表)
这题如果用数组模拟链表,一定要用双链表!!!先看看用单链表会出现什么问题下面展示一些 内联代码片。单链表的删除//删除第k点的下一个点void remove(int k){ ne[k] =ne [ne[k]];}比如链表是:2->1->3->3->5->70 1 2 3 4 5(节点)如果删除元素3先remove(1);此时会出现 1号节点指向3号节点,2号节点指向3号节点下一步 remove(2)此时会出现 2号节点指原创 2021-01-30 19:00:00 · 612 阅读 · 0 评论 -
用数组来模拟单链表和双链表(有注释)
单链表下面展示一些 内联代码片。来自acwing,826号题#include<iostream>using namespace std;const int N =100010;// head 表示头结点的下标// e[i] 表示节点i的值// ne[i] 表示节点i的next指针是多少// idx 存储当前已经用到了哪个点int head ,e[N] ,ne[N] ,idx;//初始化void inti(){ head =-1; idx=0原创 2021-01-29 18:08:01 · 107 阅读 · 0 评论 -
反转单词 ,单词只有一个空格
下面展示一些 内联代码片。// A code blockvar foo = 'bar';#include<iostream>#include<algorithm>#include<cstring>using namespace std;string m;int main(){ string a[300],b; int i=0; while(cin>>b) { int q=b.size();原创 2021-01-27 15:44:58 · 92 阅读 · 0 评论 -
字符串的最大跨距
字符串的最大跨距 这题教了我对字符串的输入,以及指针的应用,部分是看过他人的题解后想出来的,上代码。下面展示一些 内联代码片。有三个字符串S,S1,S2,其中,S长度不超过300,S1和S2的长度不超过10。想检测S1和S2是否同时在S中出现,且S1位于S2的左边,并在S中互不交叉(即,S1的右边界点在S2的左边界点的左侧)。计算满足上述条件的最大跨距(即,最大间隔距离:最右边的S2的起始点与最左边的S1的终止点之间的字符数目)。如果没有满足条件的S1,S2存在,则输出-1。 例如,S = "a原创 2021-01-27 15:18:37 · 421 阅读 · 0 评论 -
022:角谷猜想(不超时)
下面展示一些 内联代码片。// A code blockvar foo = 'bar';下面展示一些 内联代码片。// A code blockvar foo = 'bar';// An highlighted blockvar foo = 'bar';```#include<iostream>#include<bits/stdc++.h>using namespace std;int main(){unsigned long int n,t;cin原创 2020-12-24 19:56:15 · 389 阅读 · 1 评论 -
求一元二次方程的根(含虚部)
`在这里插入代码**#include <stdio.h>#include <math.h>#includeusing namespace std;int main(){double a, b, c, x1, x2, t=0,delta;scanf("%lf %lf %lf", &a, &b, &c);delta = bb-4ac;if(delta >= 0){x1 = (-b + sqrt(delta)) / (2a);x2 =原创 2020-12-24 19:20:22 · 1219 阅读 · 1 评论