
c++
nanlalalalll
我是一只酸菜鱼,又酸又菜有多余~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
酸菜鱼的我今天在学习 堆排序
堆排序的时间复杂度在O(NlogN)。//堆排序 #include <bits/stdc++.h>using namespace std;const int N = 1e3 + 5;int a[N] , n;//向下调整函数 void down(int i) { //如果需要调整位置,与父节点交换的是子节点中最小的那个 while (i <= n) { int k = i; //判断是否比左结点小,是就交换,用k暂存需要交换的节点的位置 if (i原创 2022-04-22 22:20:57 · 333 阅读 · 2 评论 -
酸菜鱼的我今天在学习 数组模拟邻接表存有向图
直接贴代码(懒)感觉注释也算是详细//数组模拟邻接表存有向图 //注:输出的边的情况 按照开始点的数字大小升序排序 并且 按照输入边的倒序输出 #include <bits/stdc++.h>using namespace std;const int N = 105;int u[N] , v[N] , w[N] , first[N] , next[N];// 开始点 结束点 距离 第一条边 当前边的下一条边(也可以说是前一条边)int main原创 2022-04-18 19:53:29 · 128 阅读 · 0 评论 -
酸菜鱼的我今天在学习逆元
逆元是什么当且仅当,a和p的最大公约数为1,即gcd(a , p) = 1时,有(a * c)% p = 1 ,称c为a的逆元。逆元的用法性质大家都知道,取余的时候有如下(同余拆分定理),但是当(a / b)% p 的时候该怎么办呢?这个时候我们就需要用上逆元了。(a + b) % p = a % p + b % p(a - b) % p = a % p - b % p(a * b) % p = a % p * b % p(a / b) % p = ?让除数乘它的逆元,将除法转化原创 2022-01-28 10:34:31 · 782 阅读 · 2 评论 -
二维数组前缀和
#include<bits/stdc++.h>using namespace std;#define ll long longint a[100][100] , al[100][100];int main () { int n , m , q; int x1 , y1 , x2 , y2; scanf ("%d %d %d" , &n , &m , &q); for (int i = 1 ; i <= n ; i ++) { for (in.原创 2022-01-11 10:01:15 · 218 阅读 · 0 评论 -
打印沙漏
例题 现有n个*字符,请打印出能用其打印出的最大沙漏。输入:只有一行 ,n >= 7输出:沙漏 (题目瞎编的,反正这种题不少)思路分析 实质上,每一层*的个数a就是一个等差数列,我们可以使用等差数列的知识来解决这个问题。第一层 a0 1 2 * 1 + 1 第二层 a1 3 2 * 2 + 1 ... ... ... 第n+1层 ...原创 2021-11-30 22:19:32 · 1284 阅读 · 0 评论 -
简谈终极考核知识点(结构体、数组、进制转换)持续更新~
目录关于结构体关于数组关于进制转换关于结构体1、定义结构体不分配存储空间,只有定义结构体变量时才分配储存空间。2、结构体变量需要按顺序一一赋值,不能跳过前面的变量给后面的变量赋值。3、赋值:定义时就直接赋值:struct S { char char int}s1 = { " " , ' ' , };//或者struct S { char char int};struct S s1={ " " , '原创 2021-11-22 22:19:28 · 498 阅读 · 2 评论 -
ACM第二次考核题G题题解
目录1、题目2、思路分析3、AC代码1、题目原题链接2、思路分析 首先,我们要知道怎么排队,每个人的平均等待时间最短。第一个人的等待时间为零,最后一个人需要等待其他所有人洗完后才可以洗澡。 花点时间思考之后我们会发现,只要让洗澡人按照洗澡时间从小到大的排序洗澡,这样得到的每个人的平均等待时间就会最短。那么问题又出现了,我们怎么样输出洗澡人的顺序呢? 我们可以定义另一个数组a,储存每个人的洗澡时间,并对其从小到大排序(也就是说这...原创 2021-11-16 23:39:34 · 359 阅读 · 0 评论 -
学习c++第十记(差分,scanf和cin的区别)
1、差分 就目前本菜鸟觉得,使用差分的情况一般是这样的: 现有n个数字,需要对其进行m次操作。每次操作都会将第l个数到第r个数加上整数k。进行完所有的m次操作以后,按次序输出这n个数字。 因为,会进行m次操作,所以如果每次加k都遍历一次数组,代码所需要的时间就会很长。也就是说,很容易超时。于是为了解决这个问题,我们就应该拿出我们的“法宝”——差分啦! 我们将这n个数放入数组a(后面的数组,大部分都会因为我过于懒而简写哈),然后我们再定义一个数字b,...原创 2021-11-11 21:35:49 · 830 阅读 · 1 评论 -
零基础学习c++第六记(求最大公约数,gcd板子)
求两个数的最大公约数。#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ return b>0 ? gcd(b,a%b):a;}int main(){ ll a,b,c,m,n; scanf("%lld %lld",&m,&n); c=gcd(m,n); printf("%lld",c); return 0;}其中,定义函数的部分其实就等同于,如下代码:in原创 2021-10-16 21:31:09 · 235 阅读 · 0 评论 -
学习c++第九记(高精度加法)
因为,这是小学思维就不再多加说明,所以我决定直接贴代码。其实减法也做了,如果实在没写的了,俺可能就贴出来了(手动秃头)。这里是定义数字最大为1e240(原题是这样写的),开到了250只是因为,有学长说要有习惯开的数据比题上的数据大一点,可以避免一些麻烦。#include <bits/stdc++.h>using namespace std;typedef long long ll;char a[250] , b[250];//字符串int main () { ll c原创 2021-11-10 22:58:18 · 382 阅读 · 0 评论 -
学习c++第八记(进制转换,一个数转换多次)
所应用知识点:(1)栈。(2)函数定义题目:输入一个十进制数n,输出n的二进制,八进制和十六进制。每次输出占一行。#include <bits/stdc++.h>#include <stack>using namespace std;typedef long long ll;char a[20] = "0123456789ABCDEF";ll c[5] = {2,8,16};stack <char> s;ll k (ll n , ll b){原创 2021-11-09 13:44:07 · 556 阅读 · 1 评论 -
学习c++的一些基础集合
输入:cin>>输出:cout<<换行符:endl表示输入输出空格:cin>>" ";cout<<" "无具体次数的多组输入:while(cin>> ){ }一般头文件:#include<iostream> using namespace std;"万能"头文件:#include<bits/stdc++.h> using namespace std;.原创 2021-10-29 14:07:58 · 203 阅读 · 0 评论