题目12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667#include <iostream>#include <queue>using namespace std;struct ty{ int z, y;}a[500005];int vis[500005];void xian(int f){ cout << f << ' '; if (a[f].z) xian(a[f].z); if (a[f].y) xian(a[f].y); return ;}void zhong (int f){ if (a[f].z) zhong(a[f].z); cout << f << ' '; if ( ...
由于 24 号正式开学,我在昨天晚上返校,从福建到湖北武汉,本一切顺利,但今天突然发现我的博客竟然上传博文的时候报错了?!!原因竟然是因为学校的防火墙阻断了我与 github 的 ssh,以下就是今天解决过程。
上传博文时出现如下图报错
在官网的常见报错中并没有找到对应的解决方法,之后上网查询得知:如果是在公司或学校网络,可能会存在防火墙或代理限制,阻止了 SSH 连接。
于是我在git bash中输入
1ssh -T [email protected]
出现报错如图所示
错误表明 SSH 连接被拒绝,通常是由于网络问题或 SSH 配置问题导致的。
这里更符合防火墙或代理限制,阻止了 SSH 连接(端口 22)的猜想。
于是开始尝试解决这个问题。
一.切换到 HTTPS 端口(443)GitHub 支持通过 HTTPS 端口(443)进行 SSH 连接。如果你的网络屏蔽了端口 22,可以尝试下面的方法(windows)
1.打开 SSH 配置文件:文件路径:C:\Users<你的用户名>.ssh\config。
如果文件不存在,可以手动创建
2.添加以下内容:123Host ...
八种排序三种 O(n ^ 2)的排序:冒泡,选择,插入
三种不基于比较的排序:桶,基数,计数
最后是:归并排序,快速排序
一.冒泡排序较简单,直接代码注释结合理解即可
1234567891011121314151617181920212223242526272829#include <iostream>using namespace std;int main(){ //给定乱序数组a int a[10] = { 1, 10, 4, 2, 3, 8, 5, 9, 7, 6 }; //这里令n = 10,方便给出通解 int n = 10; //两层循环,内层做从左到右遍历数组中未排序元素,并进行比较操作;外层每次去除已定序元素,限制下一次内循环排序范围。 //外循环一共循环n - 1次,因为每一次外循环结束可以定下一个元素的位置,到第n - 1次排序完成,就只剩下一个元素,自然不用再排序。 for (int i = 0; i < n - 1; i++) { //内循环 ...
大一寒假1 月 13 号晚上到家,寒假开始,返校车票是 2 月 22 号。然后今天是 2 月 19 号,去除明天开始的两天要去找我姐。整个寒假有 37 天,由于报名寒假集训,年前年后各有三场比赛。
年前,这段时间学习较无目的性,基本都是因为几天一场比赛,赛时写题,赛后补题,其余时间也得四处奔走聚会。
年时更是忙,走亲访友的,当然没有很好的学习节奏,但好在放假到年时,生活节奏较好,作息好,身体有所改善。
年后,又是要面对三场比赛,但除了打比赛,也开始重新学习算法,目前过完模拟,枚举,贪心,接下来就到递归。用手机延时摄影记录学习,并发布社交媒体,这样做好处好多!在学习过程中终于可以专心,没有再时不时停下玩手机,不仅提高效率,还有监督效果。整个寒假虽说不上努力,但至少代码没荒废,算法也有学习,同时解决了原博客服务器到期,还搞了新博客。当然也有遗憾的事,整个寒假的英语那真是一点没学啊,而且!我的半马没有中签!!!和我一起报名的朋友在二补时中了。。。酸了。
还有一件有趣的事情,在新年当天晚上,我才得知 deepseek 发布引动全球的事情,这 ai 实在是一言难尽,真的太强了,放寒假前我甚至还想 ...
大一寒假题单
body {
background-color: #121212; /* 设置背景为深色 */
color: #f1f1f1; /* 设置文字颜色为浅色,以便在黑色背景上更清晰 */
font-family: Arial, sans-serif;
}
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
font-family: Arial, sans-serif;
}
th, td {
border: 1px solid #444; /* 改为深色边框,和背景更加契合 */
padding: 8px;
text-align: left;
...
贪心算法贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是最好或最优的算法。而局部交叉型贪心是其中的一类体型(名字我自己取的
局部交叉型贪心题中常常是从顺序角度入手,例如有多个部分,不同的顺序对待这些部分会有不同的效果,而贪心就是得到最符合要求的效果的顺序。假设一道题有 A - B - C - D - E 五个部分,而最终的贪心顺序假如是 E - D - C - B - A 此时如果发现任意相邻两者的交换,对前面和后面都没有影响,只有对交换的双方有影响,就属于这类题型,我称它为 局部交叉型
例题题目大意:n 个活动,每个活动有 需要时长 C 和 截止时长 D 两个量,同一时间只能完成一个活动,对于每个活动最后完成时,超出它的截止时长的部分,加入总扣分,问使得总扣分最少的情况是多少?分析:1.假设最优策略中 a,b 活动相邻。即。。。ab。。。。
2.发现a和b交换顺序后,对前面和后面的所有任务的完成情况没有影响,只有影响a和b自己--->“局部”
3.设ab前面所花时间为 t
4.交换ab前,a的扣分a1:(t + Ca - Da) b ...
算法笔记
未读六六表(自己瞎取的名字前言:之前好几次做到关于质数的构造题,在去年的新生菜鸟杯遇到,以及寒假集训也遇到很多次,没有方法,所以经常做不出,而且还要花很多时间。。。现在学到了六六表,一种打表方式,具体如下01 02 03 04 05 06
07 08 09 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30
31 32 33 34 35 36
37 38 39 40 41 42
43 44 45 46 47 48
.................
上表的规律 2 的倍数:第二列和第四列 4 的倍数:第四列
3 的倍数:第三列和第六列 6 的倍数:第六列
所以所有的质数一定在第一列或者第五列中,也就是 6n+1 或者 6n-1
从中可以衍生互质问题例题
算法笔记
未读位运算符号左移 <<右移 >>或 |与 &取反 ~异或 ^ (异或 0 不变,异或 1 取反)
位运算基础去掉最后一位 x >> 1在最后加一个 0 x << 1在最后加一个 1 (x << 1) + 1 或者 (x << 1) | 1把最后一位变成 1 x | 1把最后一位变成 0 (x | 1) - 1最后一位取反 x ^ 1把右数第 k 位变成 1 x | (1 << (k - 1))把右数第 k 位变成 0 x & (~ (1 << (k - 1)))右数第 k 位取反 x ^ (1 << (k - 1))
位运算妙用(实例)当题目出现需要枚举 数个有且仅有两个状态的东西时,可以利用二进制循环枚举题目本题大意:输入一个矩阵值和回合数,每个回合得到一行或者一竖的值的和,且被得到过的地方值变为 0,问得到的最大总值是多少?
分析本题考查贪心,枚举发现每次不同的选择,会对之后的贪心选择造成影响(因为被选值变成 0)这样子问题会十分复杂。发现选择的顺序对总值没有影 ...
我大一上学期的经历大一入学前的暑假志愿录取后,双非一本计算机专业,随后加到院校的新生群,些许社团学长学姐在新生群活跃,虽然我不是特别喜欢水群,但也不想漏掉大学第一波信息差,也一直关注新生群的消息,几天下来,我对两个社团感兴趣,一个是信息学院的 robotmaster 崇实战队,一个是计算机学院的 ACM 协会,在听从大部分学长学姐的建议后,我就开始了自学 c 语言,初出茅庐,带着惯性思维和个人偏见,当时的自己还是更喜欢类似嵌入式方向一些,但自己的专业是计算机,当然也得花功夫在了解自己专业上,又潜水一段时间,知道了学习 c 语言的同时,可以拿学校 oj 练手。与此同时,在崇实战队的招生群中,了解了电控的学习大纲,于是一个月的 c 语言学习以及刷题,我大致入门了,电控组的学长建议开始学习 51 单片机,并且这位素未谋面的学长竟然直接送我一套 51 单片机,并耐心的教导我如何去自主学习入门 51。
这时候离开学也就剩下一周多我也给自己放了小假,找姐姐游玩了好久,这段时间 51 进度基本没什么推进,上了几节课而已,也许是 ACM 新生群更加活跃些,我似乎更愿意投入时间在这里,虽然也很放松随意的 ...
算法笔记
未读前言大一上学期刚刚开始学习算法,第一课就是模拟,模拟的第一题就是高精度加法,随后又有乘法,减法,除法。刚开始手搓起来相当难受,没有总结,每一道新题的高精度算法都像是在第一次写,费时间不说,还常常出错,现在刚好找个时间在此总结一下。
高精度算法:由于 c 语言或者 c++中,给定的数据范围有限,在一些对于较大数据的计算时候,无法直接由数据进行加减乘除运算去得到最后正确的答案,所有就需要借助字符串模拟大数据的算术式,模拟计算过程得到答案,这就是所谓的高精度加减乘除算法。(语言不好理解,往下看!)
加法前言对于加法,在一些 c++可以处理的数据内,进行加法运算相当简单(下面代码用 c++演示,与 c 语言语法基本一致,只学过 c 语言也能看懂)
123int a = 100, b = 100;int c = a + b;printf("%d", c);
这样子显然没问题,因为数据很小,语言处理得过来,但是!我们知道 int 类型最大值为 2147483647,而 long long 类型最大值为 9223372036854775807,当变量的值超过了最大值,就会出现 ...