「算法入门」《算法笔记》 C/C++ 程序设计手册
本篇内容整理自胡凡的《算法笔记》,主要目的是对C++程序设计做一个快速而又系统的回顾,因此只涉及到基础内容及应用,以及一些编程技巧,也可以当作「算法入门手册」使用。如需「进阶版」请移步「算法思想」系列。
0x00 C/C++ 程序设计基础1#include<bits/stdc++.h>
黑盒测试大部分在线评测系统都采用多点测试的方式,即将所有输入数据放在一个文件里,系统会让程序去读取这个文件,然后执行程序并输出结果。因此必须保证程序能够反复执行代码的核心部分,这就要用到循环。
(1)while(T–) 型
给定了测试数据的组数,因此只需要用一个变量T来存储,并在程序开始时读入即可。
1234scanf("%d", &T);while(T--) { ...}
(2)while…EOF 型
没有给定测试数据的组数,因此需要反复读取,直至文件末尾。
scanf 函数的返回值为其成功读入的参数的个数,当读到文件末尾时,scanf 函数会返回 -1,即 EOF。
123while(scanf("%d %d&q ...
「Paper」一文解决参考文献格式问题
持续更新中…
最近被毕设开题报告中参考文献的引用格式问题搞得头大,既然如此,就趁此机会好好梳理一下吧。
北航毕设论文参考文献格式1.会议论文格式:
[序号] 作者. 文献题名[A] 论文集名[C]. 出版地:出版者, 出版年: 起止页码.
示例:
[1] 毛峡,孙贇. 和谐图案的自动生成研究[A]. 第一届中国情感计算及智能交互学术会议论文集[C]. 北京:中国科学院自动化研究所, 2003:277-281.
[2] Mao X., Chen B., Zhu G., et al. Analysis of affective characteristics and evaluation of harmonious feeling of image based on 1/f fluctuation theory[A]. International Conference on Industrial, Engineering and Other Applications of Applied Intelligent Systems (IEA/AIE)[C]. Germany: Spr ...
「影剧赏析」山海情,意难平 —— 《山海情》
待更新……
https://gitee.com/Jayyy1/images/raw/master/posts/Review/image-20210208112412986.png
0x00 写在前面《山海情》,真的大大超出预期。
其实我对这类电视剧本来是无感的,同大多数人一样,也被「扶贫剧」这个tag给劝退过。
机缘巧合之下看了木鱼水心的影评后一发不可收拾,忍不住刷完了原剧。
怎么说呢,这部剧带给我的震撼,足以媲美上个月的《霸王别姬》 ,短短二十三集,已经记不得自己看哭了多少次了。
可因为自己那不堪入目的文笔,迟迟不愿动笔,但不写点什么,又总是感到「意难平」。
那就简单聊一聊最打动我的几个人物吧。
这里先打个框架,等有时间具体补齐吧。
0x01 任劳任怨的马得福
https://movie.douban.com/subject/35033654/
作为全剧的灵魂人物马德福,可以说他的整个青春献给了闽宁村,迁移吊庄、通电通水、种植蘑菇、劳务输出,再到后面的投资建设都有他忙碌的身影。
0x02 水花
https://www.zhihu.com/question/439948186 ...
「悦读感悟」没什么,就是看他不爽而已 —— 《恶意》
0不得不说,这本书的体裁真的令人耳目一新,抛去了以往以主角自述或是上帝视角展开故事的套路,通过手记的方式,让读者得以从两个不同的视角切入,逐渐窥得案件的原委。案件的真凶虽然早早就水落石出,但杀人动机的再三反转着实让我感觉自己像个白痴一样被东野圭吾玩弄于股掌之间。
故事的一开始,野野口地手记中所描写的日高的形象,便先入为主地深深扎根于我的脑海中,尤尤其是“日高承认杀猫”这一段情节:
不知何故,日高并没有马上附和我的话。他依然面带微笑,眺望着窗外的风景。将咖啡喝光后,他阴沉地说道:“是我做的。”
无论是加贺警官还是读者,所有人都被这种先入为主的印象诱导着去推测动机,却又不断被推翻。
原来,没有代笔,没有婚外情,没有威胁,只有精心的策划,只有彻骨的寒意,只有一个自负和自卑结合在一起的扭曲灵魂。
最后被真相疯狂打脸的感觉,真的酣畅淋漓,也令我不禁感叹,因别人的一面之词或心中的成见而先入为主去揣测人心或事件的真相是多么可怕的事情啊。
1读罢真相之章,虽说不上是脊背发凉,但也不禁去想象,人到底是有多大的「恨」,才能赌上自己所剩无几的性命也要让那个人身败名裂呢?
野野口先生,你的心境怕是也跟当 ...
「LeetCode题解」数据结构专题
0x00 前言本文在 CS-Notes/LeetCode 的基础上又进一步做了整理与补充。
链表
树
栈和队列
哈希表
字符串
数组与矩阵
图
位运算
反转链表题目很好理解,难度也不高,关键是实现细节。
牛客网 - 反转链表
123456789101112131415161718192021222324/*struct ListNode { int val; struct ListNode *next; ListNode(int x) : val(x), next(NULL) { }};*/class Solution {public: ListNode* ReverseList(ListNode* pHead) { ListNode *pre = nullptr; ListNode *p = pHead; ListNode *nex = nullptr; while(p != nullptr) { nex = p-> ...
「算法思想」《编程珠玑》学习笔记
0x00 前言本文是对《编程珠玑》一书的学习笔记。
第一部分 基础0x01 开篇
确定用户的真实需求是程序设计的根本。
本章围绕下面这个问题展开:
如何给磁盘文件排序?文件最多包含1000万条记录,每个记录都是7位的整数。
1. 学会准确描述问题在试图解决这个问题之前,先将已知条件组织成一种更客观、更易用的形式。
输入:n个正整数,且每个数都小于n,其中 $n=10^7$ ,保证没有重复。
输出:按升序排列的输入整数的列表。
约束:最多有1MB的内存可用,有足够多的磁盘空间,运行时间要求在10s内。
2. 程序设计 - 位图法该排序问题的特殊性在于对内存的限制,1000万条7位记录,至少也需要大约 $10^7B = 10MB$ 。
一种显而易见的方法是基于磁盘的归并排序,但显然满足不了运行时间限制。
另一种方法是多趟排序,若每个7位正整数都用32位整数(int型)来表示的话,1MB内存就可以存储25w个,因此可以遍历输入文件40趟来完成排序。
文中提到了一种更加巧妙地方法,$1MB$ 的空间大约有800万个可用位,要表示最多1000万个互异的整数,由此,考虑使用位图来表示 ...
「LeetCode题解」算法设计专题
持续更新中…
0x00 前言本文在 CS-Notes/LeetCode 的基础上又进一步做了整理与补充。
双指针
排序
贪心思想
二分查找
分治
搜索
动态规划
数学
0x01 双指针双指针主要用于遍历数组,两个指针指向不同的元素,从而协同完成任务。
1. 有序数组的 Two Sum167. Two Sum II - Input array is sorted (Easy)
【题目描述】
在有序数组中找出两个数,使它们的和为 target。
【示例】
12Input: numbers={2, 7, 11, 15}, target=9Output: index1=1, index2=2
【题解】
使用双指针,一个指针指向值较小的元素,一个指针指向值较大的元素。指向较小元素的指针从头向尾遍历,指向较大元素的指针从尾向头遍历。
如果两个指针指向元素的和 sum == target,那么得到要求的结果;
如果 sum > target,移动较大的元素,使 sum 变小一些;
如果 sum < target,移动较小的元素,使 sum 变大一些。
数组中的 ...
「Shell」Linux Commander
vim1. 简介vim 是 Linux 操作系统中最通用的全屏幕文本编辑器,是 vi 的增强版(vi iMproved),与 vi 完全兼容,且扩充了很多功能。
vim 编辑器支持编辑模式和命令模式,编辑模式下可以完成文本的编辑功能,命令模式下可以完成对文件的操作命令,要正确使用 vim 编辑器就必须熟练掌握这两种模式的切换。
默认情况下,打开 vim 后自动进入命令模式。
从编辑模式切换到命令模式使用 ESC 键,从命令模式切换到编辑模式使用 A、a、O、o、I、i 键。
2. 命令格式1234vim [OPTIONS] [FILE...]vim [OPTIONS] -vim [OPTIONS] -t TAGvim [OPTIONS] -q [ERRORFILE]
字段说明:
[FILE...]表示一系列使用 vim 编辑的文件,使用:next命令可以向前切换所编辑的文件,使用--可以向后切换。这是 vim 常用启动格式;
-:表示待编辑的文件从标准输入读取;
-t TAG:要编辑的文件和光标的初始位置取决于一个标签,一种 goto 标签。标签在标签文件中查找,与标签关联的 ...
「Conda」Linux服务器使用conda安装pytorch
原文:linux 服务器使用 conda 安装 pytorch
1. 安装 anaconda1)下载 anaconda
本地下载:官网下载 anaconda linux版本
命令行下载
1wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
2)安装 anaconda1bash Anaconda3-4.2.0-Linux-x86_64.sh
3)切换镜像源1234567# 清华镜像源conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/# 中科大镜像源conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/ ...
「生活随笔」梦中的记忆是凭空捏造的吗
人的记忆定是被保存在大脑中两个(逻辑)区域的,我姑且称之为区域A和区域B。
这两个区域类似大脑的“外存”,而它们又共享同一块内存(大脑皮层)。
当我们处在清醒状态时内存同A连接,睡梦状态时同B连接,大脑会自动完成这个切换过程。
「梦具有回忆功能,但这种回忆在清醒状态下却办不到」
梦中的记忆总是很模糊的,甚至如果不是「受到类似情景的触发」,或是「刚从睡梦中醒来」,我们根本不会去回想梦中所发生的事物。
而「刚从睡梦中醒来」这个时刻就很奇妙了,就好像大脑还处在切换模态的过程中,内存没来得及清空,我们尚且能从那模糊的梦境中窥得一点记忆,但我越是想要回想起更多细节,这份记忆流逝地就越快,像是因为我有意识地在加强内存的调度,所以它的刷新速度就越快一样…
最后,在与大脑关于那份记忆的争夺战中,我所保留的似乎也只有「睡醒那一瞬间」还在我脑海中的残缺的片段了。
—— 一个无聊的清晨,一个无聊的人,一个无聊的奇思妙想
下文整理摘录自弗洛伊德《梦的解析》
梦的材料:梦中记忆1 梦的材料,来源于人的经历「不管以什么方式,构成梦中内容的所有材料都源自人的经历它们在梦中被重新加工、回忆」。
对我们来说,至少 ...