正确的学习路径 + 持续的时间投入
开发工具和命令行
… 父目录
. 当前目录
/ 根目录
cd %userprofile% 回到默认目录(命令行访问路径)
不要在算法竞赛中提交的源代码里面使用绝对路径!!否则0分
Microsoft Windows [版本 10.0.17134.112]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>..
'..' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator>.
'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator>./
'.' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\Users\Administrator>cd .
C:\Users\Administrator>cd ..
C:\Users>cd .
C:\Users>cd ../.
C:\>cd /
C:\>
C:\>cd %userprofile%
C:\Users\Administrator>
进程
tasklist 列出当前所有进程,即任务管理器(crtl alt del)中的进程
C:\Users\Administrator>tasklist
映像名称 PID 会话名 会话# 内存使用
========================= ======== ================ =========== ============
System Idle Process 0 Services 0 8 K
System 4 Services 0 116 K
Registry 108 Services 0 9,944 K
smss.exe 352 Services 0 924 K
csrss.exe 528 Services 0 4,764 K
wininit.exe 620 Services 0 5,384 K
csrss.exe 632 Console 1 5,404 K
services.exe 692 Services 0 7,340 K
lsass.exe 700 Services 0 15,664 K
winlogon.exe 852 Console 1 8,952 K
svchost.exe 904 Services 0 3,360 K
svchost.exe 928 Services 0 20,780 K
fontdrvhost.exe 936 Services 0 10,228 K
fontdrvhost.exe 76 Console 1 21,192 K
C:\Users\Administrator>taskkill /?
TASKKILL [/S system [/U username [/P [password]]]]
{ [/FI filter] [/PID processid | /IM imagename] } [/T] [/F]
描述:
使用该工具按照进程 ID (PID) 或映像名称终止任务。
参数列表:
/S system 指定要连接的远程系统。
/U [domain\]user 指定应该在哪个用户上下文执行这个命令。
/P [password] 为提供的用户上下文指定密码。如果忽略,提示
输入。
/FI filter 应用筛选器以选择一组任务。
允许使用 "*"。例如,映像名称 eq acme*
/PID processid 指定要终止的进程的 PID。
使用 TaskList 取得 PID。
path查看环境变量诶,感觉比图形用户界面查得更快
C:\Users\Administrator>path
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\LINGO64_18\;D:\Program Files\MATLAB\R2016b\runtime\win64;D:\Program Files\MATLAB\R2016b\bin;D:\Program Files\MATLAB\R2016b\polyspace\bin;D:\texlive\2019\bin\win32;D:\ProgramData\Anaconda3\Scripts;C:\Program Files (x86)\IBM\SPSS\Statistics\25\JRE\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.1\bin;
D:\>C:
C:\Users\Administrator>cd C:\Users\Administrator\Downloads
C:\Users\Administrator\Downloads>lantern-installer
C:\Users\Administrator\Downloads>
立刻执行安装
注意切换盘符不需写cd ,直接输入D:
重定向
不要在正式提交的代码中输出到标准错误输出(?),可能违反比赛规定也可能因为输出大量文本占用宝贵的CPU资源,甚至超时
DIR /A /S
/S显示当然目录及所有下级目录下的文件
/A显示所有属性的文件
也可以用:
/AD 显示所有目录
/AS 显示所有系统属性的文件
/AR 显示所有只读属性的文件
/AH 显示所有隐藏属性的文件
那个分页显示没看出来什么效果····
计时:
批处理脚本编程
我把刘老师那段对拍的批处理脚本敲了一遍,可我没有a,b的exe or bat,于是没法继续执行,但是输出文件还是生成了的,当然只是空壳没有正确结果,文件类型也很奇怪
@echo off ;后面的命令本身不再回显,分号后是注释
:again
r > input ;r是随机数生成器,生成的随机数给input
a < input > output.a ;执行程序a, 输入是input文件的内容,输出到output.a文件中
b < input > output.b
fc output.a output.b > nul ;file compare, 比较两个文件的内容,输出结果放到名为nul的设备中,像个黑洞,我们不关心这个输出结果
if not errorlevel 1 goto again ;goto语句 , 如果errorlevel小于1(即0,即两个结果相同,返回码都是整数)就继续循环
每个c程序都有一个返回码,就是main函数最后return的那个数,一般0表示正常结束,非0就表示非正常退出,算法竞赛评测系统会认为你错了,不再看 你的输出正确与否了
试了试con(这个设备代表标准输入输出),一行代码,在命令行gcc编译(把gcc.exe所在路径添加到系统变量然后重启命令行就可以用了)
运行起来就是一直在跳动那个横杠提示符,也不像死了,但是感觉是啥也没干,实际是在读键盘输入,按ctrl+C退出回到提示符(像matlab吧)
Microsoft Windows [版本 10.0.17134.112]
(c) 2018 Microsoft Corporation。保留所有权利。
C:\Users\Administrator>path
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\LINGO64_18\;D:\Program Files\MATLAB\R2016b\runtime\win64;D:\Program Files\MATLAB\R2016b\bin;D:\Program Files\MATLAB\R2016b\polyspace\bin;D:\texlive\2019\bin\win32;D:\ProgramData\Anaconda3\Scripts;C:\Program Files (x86)\IBM\SPSS\Statistics\25\JRE\bin;D:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.1\bin;
C:\Users\Administrator>cd /
C:\>gcc a.c
可以输出字符
C:\>gcc a.c
sdffgggsdsdfffgdsgsdfg
注意:path/PATH是可执行文件的搜索路径
Windows下的随机数生成器是环境变量 %random%, 是0~32767之间的随机整数
path是个变量,随机数生成器也是变量,所以都直接在命令行输入变量名就可以看到变量取值啦
C:\>path
PATH=C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Windows\System32\OpenSSH\;D:\LINGO64_18\;D:\Program Files\MATLAB\R2016b\runtime\win64;D:\Program Files\MATLAB\R2016b\bin;D:\Program Files\MATLAB\R2016b\polyspace\bin;D:\texlive\2019\bin\win32;D:\ProgramData\Anaconda3\Scripts;C:\Program Files (x86)\IBM\SPSS\Statistics\25\JRE\bin;D:\Program Files (x86)\CodeBlocks\MinGW\bin;C:\Users\Administrator\AppData\Local\Microsoft\WindowsApps;;C:\Program Files\JetBrains\PyCharm Community Edition 2019.2.1\bin;
C:\>%random%
'23097' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\>%random%
'18717' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\>%random%
'123' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
C:\>
夜间笔记(未上机)
把算法当做艺术对待
算法竞赛的实用性是很注重的
数据结构会告诉你编程处理数据的基本原则和方法
工程性的东西,比如断言(?),测试,伪代码,迭代开发等,
算法竞赛是去比较谁能解决问题,不是比谁的代码更加高级!一般算法竞赛都是黑盒测试,只要你能解决问题,就可以得分通过,很代码是否高级无关,不要误入歧途迷恋技巧。
我才发现我已经接触过很多顺序结构,分枝结构和循环结构了,我已经都接触了蛤蛤蛤
而算数表达式逻辑表达式我也都接触了哦
数组,链表,二叉树,树是最基础的数据结构
集合,优先队列,并查集又是比较专业的数据结构
数据结构需要自己编写,但c++的STL和java的JCF都有写好的数据结构不需要自己再写,数据结构会大大提升程序的效率
要刷力扣的题目,找找oj的感觉
只了解算法原理和步骤是远远不够的!!
学习的过程中偶尔要先不求甚解,后面自然会慢慢懂得
注意整数范围,浮点数范围和精度,三角函数用弧度表示而不是度数
头文件里面只是包含了很多库函数的声明!!而已,编译的时候根本用不到这些库函数,连接的时候才用,我记得之前有看到过有人自己写的头文件,里面就只有声明,印象挺深刻的
变量声明实际上就是好通知编译器提前给分配特定数据类型的内存,数据类型就是去约束内存大小和计算方式的
刘老师最喜欢的语言也是python!!因为他能最简洁地实现你的算法的思想,而且特别好学。而且也可以用来开发商业软件和网站!!我一定要好好学学它开发软件和网站
ctrl alt del打开任务管理器
顺序结构里面的语句都只执行一次
分支结构的语句有的跑一次,有的一次也不跑
循环结构的语句要跑很多次
刘汝佳学的第一门语言是c,只花了三天,然后又看了第二本书,后来在电脑爱好者上看到了NOIP竞赛开始参加的,后来学过汇编,pascal , delphi,但她说后两个都是花拳绣腿,只要会了c,什么需要都特别轻松的转移过去,痛苦难学但是收益也特别巨大。
很多初学者都需要详细的代码才能透彻地理解算法!!!!多么精辟深刻的一句话!!!!!!
没有足够的时间去实践,那么学得快忘的也快,我去这句也太精辟了!
算法竞赛一般不会出np-完全问题,因为他的可解性存在异议,所以一般算法竞赛是不会用到三大经典智能算法的