算法经典入门 day1(命令行,脚本编程,进程,重定向,管道,编译器)

正确的学习路径 + 持续的时间投入

开发工具和命令行

… 父目录
. 当前目录
/ 根目录

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-完全问题,因为他的可解性存在异议,所以一般算法竞赛是不会用到三大经典智能算法的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值