自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 PTA团体程序设计天梯赛L2-002重排链表

3.在第二步的时候,为了方便查找每个结点的结点,将结点按照存储地址从小到大进行了排序,并使用了二分查找的方法。1.链表的最后一个元素输出时,下一个节点的地址为-1,不用补前导0。橙色格子中的数字表示链表结点的下标,箭头指向的是该结点的后继。2.重新排列链表之后,每个结点 的后继结点也会随之发生改变。的规律重新排列链表,直至将原链表的所有元素都重新排列完。第二步,按照输入的逻辑的先后顺序,将结点连成一整条链表。4.本题的测试点三,输入的结点,并非全都属于同一条链表。第三步,重排链表,并将其输出。

2023-03-30 20:20:12 439

原创 PTA团体程序设计天梯赛练习集L2-008最长对称子串

最开始想到的思路是,想要数组模拟栈,遇到相同字符就出栈,不同就入栈,发现会有错误。而且,用数组模拟栈也可以很好的求出长度为奇数的对称子串。但,想了想又发现,会出现错误。但是发现,如果是由相同字符组成的偶数长度子串为最长,就会出现错误。由输入描述可知,输出全在一行,即遇见换行符‘\n’则输入结束。最终想到的解题思路:用数组存下到当前点的最长对称子字符串。本题想要是找到最长的对称子串长度。由样例可知,输入中会出现空格。

2023-03-29 21:45:09 374

原创 P3397 地毯 (二维差分,二维前缀和)

洛谷P3397的题解和二维差分的图解。

2022-08-03 19:01:17 278 4

原创 酸菜鱼的我今天在学习 堆排序

堆排序的时间复杂度在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 231 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 82

原创 酸菜鱼的我今天在学习逆元

逆元是什么当且仅当,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 726 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 163

原创 打印沙漏

例题 现有n个*字符,请打印出能用其打印出的最大沙漏。输入:只有一行 ,n >= 7输出:沙漏 (题目瞎编的,反正这种题不少)思路分析 实质上,每一层*的个数a就是一个等差数列,我们可以使用等差数列的知识来解决这个问题。第一层 a0 1 2 * 1 + 1 第二层 a1 3 2 * 2 + 1 ... ... ... 第n+1层 ...

2021-11-30 22:19:32 1151

原创 洛谷P1007(贪心)

总所周知,很菜的木南最近在学习贪心(的一点皮毛),所以,今天我们来看看木南做题做的怎么样吧(手动狗头)。原题链接题意分析 咱就是说,但凡“我”这个运输队长没个大病,都干不出来这事儿。 有好几个人在桥上,各自的位置不同,都要从桥上下来,从桥的哪一边下去可以算是随机的,现在要求求出,所有人都下桥所需要的最小时间和最大时间。思路分析 首先,我们需要get一下“灵魂交换”的点。 两个人相对而行,当他们相遇就会两个人都...

2021-11-26 23:36:18 400 1

原创 牛客1039、1041、1042、1048

1039原题链接思路分析 我们可以找到一个规律滴!三个面的面积分别为a,b,c。因为是共享长方体,发挥一下你的空间想象力,就会发现任意两个面都会有公用的一条边。我们设这三条边分别为i,j,k。那么就有:a = i * j b = i * k c = j * k 所以,我们可以发现一个很有趣的现象,我就举其中的一个例子吧,我相信聪明的你一定能懂的。 a * b / c = i * j * i * k / j / k = i *...

2021-11-25 20:30:30 432 2

原创 简谈终极考核知识点(结构体、数组、进制转换)持续更新~

目录关于结构体关于数组关于进制转换关于结构体1、定义结构体不分配存储空间,只有定义结构体变量时才分配储存空间。2、结构体变量需要按顺序一一赋值,不能跳过前面的变量给后面的变量赋值。3、赋值:定义时就直接赋值:struct S { char char int}s1 = { " " , ' ' , };//或者struct S { char char int};struct S s1={ " " , '

2021-11-22 22:19:28 382 2

原创 洛谷P2670扫雷游戏(二维数组)

写这个题,不是因为题目本身有多么的难,而是本菜鸡又因为空格wa疯了。不要靠近编程,会变得不幸。(bushi)1、题意分析原题链接 相信大家小时候都玩过扫雷游戏,些许无聊,但打发时间刚好合适。 本题就是会给出,地图的大小和地雷所在的位置,需要把每个位置周围有几个地雷给按照位置输出,是地雷的地方就直接输出地雷。(很简单吧)2、思路分析 遇事不决,开数组。这个题先开它两个二维数组,一个用来储存地图上的信息,一个用来储存每个位置周围的地雷数。...

2021-11-19 23:31:57 3710

原创 洛谷P1439最长公共子序列

1、题意分析原题链接 本题会先输入一个n,表示我们要求公共子序列的两个序列的长度。然后将先后输入这两个序列(题面说是1~n的自然数的排列,所以统一序列中不会出现重复的数字哦)。现在,需要我们求出这两个序列的最长公共子序列,并且输出这个长度。2、思路解析 现在首先,我们要知道,最大的数组是可以开到1e5的,而我们的代码运行时间最大为1秒。所以暴力解题肯定是不行滴。也就是说,我们需要尽可能的优化我们的代码。 先讲讲找到公共子序列的快速方法。 ...

2021-11-17 21:08:11 263

原创 ACM第二次考核题G题题解

目录1、题目2、思路分析3、AC代码1、题目原题链接2、思路分析 首先,我们要知道怎么排队,每个人的平均等待时间最短。第一个人的等待时间为零,最后一个人需要等待其他所有人洗完后才可以洗澡。 花点时间思考之后我们会发现,只要让洗澡人按照洗澡时间从小到大的排序洗澡,这样得到的每个人的平均等待时间就会最短。那么问题又出现了,我们怎么样输出洗澡人的顺序呢? 我们可以定义另一个数组a,储存每个人的洗澡时间,并对其从小到大排序(也就是说这...

2021-11-16 23:39:34 262

原创 Codeforces E1 (c++、队列、栈、附双队列解法传送门)

原题链接 友友们,闲着没事儿,不要靠近cf,会变得不幸(bushi) 以上为本人,wa了n次以后的急躁发言,请忽略。目录1、题意分析2、思路分析3、AC代码1、题意分析 我们有t组数据的输入,每组数据的输入分为两行,第一行为这次需要进行特殊操作的珊瑚橘个数n,第二行为这n个数。 我们比较的规则是:每次输入的数字都和队首的数字比较。如果比队首的数字小,那么这个数就成为新的队首。如果比队首的数字小,那么这个数字就放到队尾,...

2021-11-13 23:00:29 392 1

原创 洛谷P3406 海底高铁(c++,差分,前缀和)

洛谷P3406有一说一,对于语言理解能力有问题的本菜鸡来说,理解题意就花了不少时间(手动秃头)。目录 1、题意分析 2、解题思路 3、AC代码 1、题意分析有n个车站,uim这位悲惨的社畜需要在各个不同的地点(因为不能直达,所以uim一次活动可能要经过多个车站)之间辗转m次。而每段铁路的付费方式分为两种,简单地说就是,不办卡和办卡两种。而其中办卡又需要先交工费c,并且工费不退回,也不能当成卡中余额用...

2021-11-12 15:32:28 797

原创 学习c++第十记(差分,scanf和cin的区别)

1、差分 就目前本菜鸟觉得,使用差分的情况一般是这样的: 现有n个数字,需要对其进行m次操作。每次操作都会将第l个数到第r个数加上整数k。进行完所有的m次操作以后,按次序输出这n个数字。 因为,会进行m次操作,所以如果每次加k都遍历一次数组,代码所需要的时间就会很长。也就是说,很容易超时。于是为了解决这个问题,我们就应该拿出我们的“法宝”——差分啦! 我们将这n个数放入数组a(后面的数组,大部分都会因为我过于懒而简写哈),然后我们再定义一个数字b,...

2021-11-11 21:35:49 743 1

原创 学习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 264

原创 学习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 482 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 172

原创 知识点练习

1、进制转换//将十进制数转化成八进制 #include<bits/stdc++.h>long long b[110]={1};using namespace std;int main(){ long long a,c,i=0; cin>>a; while (a!=0){ b[i]=a%8; a=a/8; i++; } for(long long j=i-1;j>=0;j--)cout<<b[j]; return

2021-10-28 22:36:47 56

原创 零基础学习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 139

原创 杭电2005(c语言)

本题需要注意的地方:1、多组输入。2、二月份只有28天哦,但是闰年的二月有29天。3、接上个提示,判断是否为闰年。if((year%4==0&&year%100!=0)||(year%400==0))若满足上述判断语句的条件,即为闰年。4、有的月份有30天,有的月份有31天(一三五七八十腊,三十一天永不差)(手动狗头)那么进入正题,代码长这样:#include<stdio.h>int main(){ int a,b,c; while

2021-10-04 19:20:32 151

原创 零基础入门c语言第五记(%f和%lf的秘密)

其实,说了一大堆,我就两句话交代完重点吧。就水个博客。。。1、float型数据,输入输出均为%f2、double型数据,输入%lf,输出%f虽然,有的编译器输出double型数据用%lf并不会报错,但等到真正wa到哭的时候,就真的很惨了。最后,学习c语言是一个长时间的过程,冲鸭!...

2021-10-03 18:25:00 250

原创 零基础入门c语言第一记(固定结构,头文件)

零基础入门c第一记⑴暂且觉得这块儿是固定结构#include<studio.h>int main(){return 0;}(小萌新第一次写,害……用的手机,没准备充分,下次一定好好搞)⑵几个c++的头文件❶algorithm⇨比较大小,搭配max(a,b)或者min(a,b)可以使用 (别的还没了解到……害……)❷iostream⇨数组内的值按从大到小排序,比如sort(a,a+5) (暂且就想到这么一丢丢,如果这个有幸被各位大佬看到,还请大佬们指点一二,

2021-09-27 00:05:21 126

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除