0%

  • root命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     1  apt update
    2 apt upgrade
    3 adduser lqr
    4 usermod -aG sudo lqr
    5 adduser test
    6 usermod -aG root test
    7 su test
    8 ls
    9 sudo rm -r nmap.tar.gz
    10 ls
    11 sudo rm -r python-nmap-0.1.4.tar.gz
    12 ls
    13 history
    14 userdel -r test
    15 ls
    16 cd ..
    17 cd ~
    18 ls
    19 userdel -r test
    20 history
    21 test
    22 ls
    23 cd /home
    24 ls
    25 userdel -r test
    26 ls
    27 adduser test
    28 usermod -aG sudo test
    29 su test
    30 history
  • lqr命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    1  clear
    2 sudo apt install nginx
    3 sudo ufw allow 22
    4 sudo ufw allow 80
    5 sudo ufw allow 443
    6 sudo ufw enable
    7 sudo ufw state
    8 sudo ufw status
    9 sudo apt install python3-pip
    10 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
    11 pip3 install pipenv
    12 flask init
    13 flask forge
    14 flask run
    15 exit
    16 flask init
    17 cd /et
    18 cd /etc
    19 cd supervisor/
    20 ls
    21 cat supervisord.conf
    22 sudo service supervisor restart
    23 cd /etc/nginx
    24 ls
    25 cd sites-enabled/
    26 ls
    27 cat record-it
    28 sudo ufw status
    29 sudo service nginx restart
    30 sudo supervisorctl update
    31 sudo supervisorctl record-it start
    32 sudo supervisorctl
    33 pip3 update
    34 sudo pip3 install --upgrade pip
    35 sudo nano /usr/bin/pip3
    36 sudo pip3 install --upgrade pip
    37 pip3
    38 pip3 -V
    39 sudo service supervisor restart
    40 sudo service nginx restart
    41 sudo supervisorctl
    42 ls
    43 cd ..
    44 ls
    45 cd /etc/supervisor/
    46 ls
    47 sudo nano supervisord.conf
    48 sudo ufw allow 9001
    49 ls
    50 sudo ufw status
    51 cd
    52 exit
    53 cd record-it
    54 ls
    55 pipenv install --dev
    56 pipenv shell
    57 cd ..
    58 sudo nginx -t
    59 cd /etc/nginx
    60 ls
    61 cd sites-enabled/
    62 ls
    63 sudo nano record-it
    64 ls
    65 sudo mv default
    66 ls
    67 sudo mv default
    68 sudo mv --help
    69 ls
    70 cat default
    71 sudo mv --help
    72 sudo mv default
    73 cler
    74 clear
    75 ls
    76 cd ~
    77 sudo apt install supervisor
    78 cd /etc/supervisor/
    79 ls
    80 cd conf.d
    81 ls
    82 sudo nano record-it.conf
    83 cd ..
    84 ls
    85 sudo nano supervisord.conf
    86 sudo supervisorctl
    87 sudo nano supervisord.conf
    88 sudo nano record-it.conf
    89 ls
    90 cd conf.d
    91 ls
    92 sudo nano record-it.conf
    93 cd ..
    94 ls
    95 sudo rm record-it.conf
    96 ls
    97 sudo supervisorctl
    98 sudo supervisorctl reread
    99 sudo supervisorctl update
    100 sudo supervisorctl
    101 sudo service nginx restart
    102 cd /etc/nginx
    103 ls
    104 cd conf.d
    105 ls
    106 cd ..
    107 cd sites-enabled/
    108 ls
    109 sudo rm default
    110 ls
    111 cd ..
    112 cd /etc/supervisor/
    113 ls
    114 sudo supervisorctl
    115 cd /etc/nginx
    116 cd sites-enabled/
    117 ls
    118 cat record-it
    119 sudo nginx 0t
    120 sudo nginx -t
    121 sudo service nginx re
    122 sudo service nginx restart
    123 sudo nginx -t
    124 ls
    125 sudo service supervisor restart
    126 sudo supervisorctl
    127 cd ~
    128 cd record-it/
    129 cd..
    130 cd ..
    131 sudo supervisorctl
    132 cd ~/record-it/
    133 ls
    134 cd server/
    135 ls
    136 sudo vim nginx.config
    137 sudo vim supervisor.ini
    138 cd ~
    139 sudo supervisor
    140 sudo supervisorctl
    141 pip3 install pipenv
    142 cd record-i
    143 sudo service supervisor restart
    144 sudo supervisorctl
    145 cd record-it/
    146 pip3 install pipenv
    147 pipenv shell
    148 sudo ufw status
    149 cd ~
    150 ls
    151 cd /etc/supervisor/
    152 ls
    153 cat supervisord.conf
    154 sudo service supervisor res
    155 sudo service supervisor restart
    156 sudo service nginx restart
    157 sudo supervisorctl
    158 cd ~/record-it/
    159 ls
    160 pip3 install pipenv
    161 pipenv -V
    162 pipenv --version
    163 sudo supervisorctl
    164 cd ~
    165 sudo nano /etc/supervisor/conf.d/record-it.conf
    166 pip3 install uwsgi
    167 sudo pip3 install uwsgi
    168 sudo service supervisor restart
    169 sudo service nginx restart
    170 sudo nginx -t
    171 sudo supervisorctl
    172 cd /etc/nginx
    173 ls
    174 cd sites-enabled/
    175 ls
    176 cd conf.s
    177 cd conf.d
    178 ls
    179 cd .. conf.d
    180 ls
    181 cd conf.d/
    182 ls
    183 cd /etc/supervisor/
    184 ls
    185 cd conf.d/
    186 ls
    187 cat record-it.conf
    188 cd /etc/nginx/
    189 ls
    190 cat nginx.conf
    191 cd sites-enabled/
    192 ls
    193 cat record-it
    194 ls
    195 cd ..
    196 ls
    197 cd conf.d
    198 ls
    199 cd ..
    200 ls
    201 clear
    202 ls
    203 cd sites-enabled/
    204 ls
    205 cat record-it
    206 cd /etc/nginx/
    207 ls
    208 cd conf.d/
    209 ls
    210 cd /etc/supervisor/
    211 ls
    212 cd conf.d/
    213 ls
    214 cat record-it.conf
    215 sudo nginx -t
    216 sudo service nginx restart
    217 sudo service supervisor restart
    218 sudo nginx -t
    219 ls
    220 sudo supervisorctl
    221 ls
    222 cd ..
    223 ls
    224 cat supervisord.conf
    225 cd .
    226 cd..
    227 cd ..
    228 ls
    229 cd nginx/
    230 ls
    231 cd sites-enabled/
    232 ls
    233 cat record-it
    234 uwsgi
    235 uwsgi -V
    236 uwsgi --version
    237 sudo nginx -t
    238 cd /etc/supervisor/
    239 ls
    240 cd conf.d
    241 ls
    242 car record-it.conf
    243 cat record-it.conf
    244 clear
    245 cat sup
    246 cat record-it.conf
    247 sudo supervisorctl reread
    248 sudo supervisorctl update
    249 sudo supervisorctl record-it stop
    250 sudo supervisorctl record-it start
    251 cd ..
    252 cat supervisord.conf
    253 sudo supervisorctl
    254 su
    255 su root
    256 flask init
    257 flask forge
    258 flask run
    259 exit
    260 flask init
    261 clear
    262 flask init
    263 pip3 install pipenv
    264 pipenv --version
    265 pip uninstall pipenv
    266 pip3 install pipenv
    267 sudo pip3 install pipenv
    268 ls
    269 cd record-it/
    270 ls
    271 pipenv install --dev
    272 ls
    273 pipenv install --dev
    274 sudo service nginx restart
    275 sudo nginx -y
    276 sudo nginx -t
    277 sudo service supervisor restart
    278 sudo supervisorctl
    279 cd ~
    280 sudo supervisorctl
    281 cd record-it/
    282 ls
    283 pipenv install --dev
    284 pipenv shell
    285 ls
    286 pipenv shell
    287 pipenv rm
    288 pipenv shell
    289 pipenv init
    290 flask init
    291 flask forge
    292 flask run
    293 sudo service nginx restart
    294 sudo service supervisor restart
    295 sudo service nginx restart
    296 ls
    297 clar
    298 clear
    299 pip3 list
    300 cd record-it/
    301 ls
    302 pipenv install --dev
    303 pipenv shell
    304 sudo service supervisor restart
    305 service nginx restart
    306 sudo service nginx restart
    307 cd /etc/nginx
    308 ls
    309 cd sites-
    310 cd sites-enabled/
    311 ls
    312 cat record-it
    313 cd ~
    314 sudo supervisor
    315 sudo supervisorctl
    316 pip3 install dotenv
    317 sudo pip3 install dotenv
    318 sudo service nginx restart
    319 nginx error log
    320 sudo nginx error log
    321 sudo service supervisor restart
    322 sudo supervisorctl
    323 cd ..
    324 sudo pip3 install Jinja2
    325 sudo pip3 install flask
    326 sudo pip3 install flask-babel
    327 sudo pip3 install flask-apscheduler
    328 exit
    329 pip3 install uwsgi
    330 exit
    331 clear
    332 ping 39.105.48.114
    333 sudo supervisorctl
    334 python3
    335 pip3 uninstall dotenv
    336 sudo pip3 uninstall dotenv
    337 sudo pip3 install python-dotenv
    338 sudo service nginx restart
    339 sudo service supervisor restart
    340 sudo supervisorctl
    341 pip3 install python-click
    342 sudo pip3 install python-click
    343 sudo pip3 install click
    344 sudo service supervisor restart
    345 sudo service nginx restart
    346 sudo supervisorctl
    347 sudo pip3 install flask
    348 sudo service supervisor restart
    349 sudo service nginx restart
    350 sudo supervisorctl
    351 sudo pip3 uninstall flask
    352 sudo pip3 install python-flask
    353 pip3 install flask
    354 sudo pip3 install flask
    355 sudo pip3 install flask_babel
    356 sudo supervisorctl
    357 cd record-it/
    358 ls
    359 pipenv shell
    360 pip3 list
    361 cd ..
    362 sudo pip3 install apscheduler
    363 sudo pip3 install flask-apscheduler
    364 sudo pip3 install flask-caching
    365 sudo pip3 install flask-login
    366 sudo pip3 install flask-sqlalchemy
    367 sudo pip3 install flask-wtf
    368 sudo pip3 install bootstrap-flask
    369 sudo pip3 install flask-ckeditor
    370 sudo pip3 install faker
    371 sudo pip3 install flask-moment
    372 sudo pip3 install pandas
    373 sudo pip3 install openpyxl
    374 sudo service supervisor restart
    375 sudo service nginx restart
    376 sudo supervisor
    377 sudo supervisorctl
    378 pip install dot-python
    379 sudo pip3 install dot-Ppython
    380 sudo pip3 install dot-Python
    381 sudo pip3 install dotenv-Python
    382 sudo pip3 install dot-python
    383 cd record-it/
    384 ls
    385 sudo nano .env
    386 ls
    387 sudo vim .env
    388 ls
    389 sudo vim .env
    390 ls
    391 sudo vim .env
    392 ls
    393 sudo vim .env
    394 sudo service nginx restart
    395 sudo service supervisor restart
    396 cd ..
    397 cd record-it/
    398 nano .env
    399 sudo vim .env
    400 sudo service supervisor restart
    401 sudo service nginx restart
    402 sudo supervisorctl
    403 whereis uwsgi
    404 cd /usr/local/bin/uwsgi
    405 ls
    406 cd /usr/local/bin/uwsgi
    407 cd /usr/local
    408 ls
    409 cd bin
    410 ls
    411 cd uwsgi
    412 sudo cd uwsgi
    413 cd ~'
    414 cd ~
    415 cd ~
    416 uwsgi -s /tmp/uwsgi.sock -M -p 4 -t 30 --limit-as 128 -R 10000 -d /var/log/uwsgi.log --vhost --uid www --gid www --python-autoreload 1
    417 tail -f /tmp/uwsgi.log
    418 tail -f /usr/local/bin/uwsgi/uwsgi.log
    419 pip3 uninstall uwsgi
    420 sudo pip3 uninstall uwsgi
    421 ls
    422 pip3 list
    423 apt-get install build-essential python-dev
    424 sudo apt-get install build-essential python-dev
    425 pip3
    426 pip3 -V
    427 pip3 install uwsgi
    428 sudo pip3 install uwsgi
    429 mkdir test
    430 ls
    431 cd test
    432 nano foobar.py
    433 uwsgi --http :9090 --wsgi-file foobar.py
    434 cd
    435 sudo service nginx restart
    436 sudo service supervisor restart
    437 sudo supervisorctl
    438 cd record-it/
    439 ls
    440 pipenv shell
    441 sudo service supervisor restart
    442 sudo service nginx restart
    443 sudo supervisorctl
    444 flask init
    445 flask forge
    446 flask run
    447 exit
    448 sudo nginx -t
    449 sudo service nginx restart '
    450 sudo service nginx restart
    451 sudo service supervisor restart
    452 sudo nginx -t
    453 cd record-it
    454 pipenv shell
    455 l
    456 ls
    457 sudo service nginx restart
    458 sudo service supervisor restart
    459 clear
    460 cd ..
    461 ls
    462 cd record-it
    463 ls
    464 cd record-it
    465 ls
    466 sudo nano .env
    467 pipenv shell
    468 flask init
    469 flask forge
    470 flask run
    471 sudo service nginx restart
    472 sudo service supervisor restart
    473 history
  • test 命令

    1
    2
    3
    4
    5
    6
    7
    8
    9
    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
    49
    50
    51
    1  ls
    2 cd test
    3 clearclear
    4 clear
    5 wget http://xael.org/norman/python/python-nmap/python-nmap-0.1.4.tar.gz -o nmap.tar.gz
    6 ls
    7 tar
    8 tar --version
    9 tar -xzf nmap.tar.gz
    10 ls
    11 sudo apt install tar
    12 ls
    13 tar -xzf nmap.tar.gz
    14 ls
    15 tar -zxvf nmap.tar.gz
    16 ls
    17 tar --V
    18 tar -V
    19 tar --version
    20 tar -zxvf nmap.tar.gz
    21 tar -xvf nmap.tar.gz
    22 tar zxvf nmap.tar.gz
    23 tar -xvf nmap.tar.gz
    24 tar xvf nmap.tar.gz
    25 ls
    26 tar xvf python-nmap-0.1.4.tar.gz
    27 ls
    28 cd python-nmap-0.1.4/
    29 ls
    30 python setup.py in
    31 python setup.py install
    32 sudo python setup.py install
    33 ls
    34 easy_install python-nmap
    35 sudo easy_install python-nmap
    36 cd ..
    37 ls
    38 sudo easy_install pyPdf python-nmap pygeoip mechanize BeautifulSoup4
    39 sudo apt-get install python-bluez bluetooth python-obexftp
    40 ls
    41 mkdir demo
    42 ls
    43 cd demo
    44 echo print \"Hello world\" > hello.py
    45 l
    46 python hello.py
    47 python
    48 import socket
    49 python
    50 ls
    51 nano hello.py

1. 定义

  1. 树(Tree)是n(n >= 0 )个结点的有限集。n = 0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(root)的结点;(2)在 n > 1 时,其余结点可分为m(m > 0)个互不相交的有限集 $T_1、T_2、T_3 …… T_m$,其中每一个集合本身又是一颗树,并且称为根的子树(SubTree)。
  2. n > 0时根结点是唯一的,不可能存在多个根结点。
  3. m > 0时,子树的个数没有限制,但他们一定是互不相交的。
  4. 结点用用改的子树数称为结点的度。
  5. 度为0的结点称为叶子结点或终端结点;度不为0的结点称为非终端结点或分支结点。
  6. 除根结点之外,分支结点称为内部节点。
  7. 树的度是树内各结点度的最大值。

    2. 为什么$n$个结点的树,有$n - 1$条边

  8. 假设有1个结点时,则有0条边
  9. 有2个结点时,若是连通的且不能为环,所以就得有$1$条边将这两个结点连接在一起
  10. 若有3个结点时,将前两个看为一个整体,则必须有$1$条边,将这两个部分连接在一起
  11. 以此类推

    【释】:整体化一思想

    3.

  1. 基本表的定义、删除与修改

    1. 定义基本表
    2. 数据类型
      (不同的RDBMS支持的数据类型不同)
    3. 模式与表
    4. 修改基本表
    5. 删除基本表
    6. 建立索引
    7. 删除索引
  2. 数据查询

    1. select

    2. 单表查询

      1. 选择表中的若干列

        1. 查询指定列
        2. 查询全部列
        3. 查询经过计算的列
        4. 消除取值重复的行
      2. 选择表中的若干元组

        1. 查询条件

        2. 通过 where子句实现

        3. 谓词BETWEEN…ANDNOT BETWEEN…AND用来查找属性值在(或不在)指定范围内的元组(包含AND关键词两侧的范围)

        4. 谓词IN用来查找属性值属于指定集合的元组

        5. 谓词 LIKE 用来进行字符串的匹配

          格式: [NOT] LIKE '<匹配串>' [ESCAPE '<换码字符>']



        6. IS

        7. NOT, AND, OR

      3. ORDER BY子句

        1. 可以用ORDER BY子句对查询结果按一个或多个属性列排序

      4. 聚集函数

      5. GROUP BY子句

        1. GROUP BY子句将查询结果按某一列或多列的值分组,值相等的为一组
        2. 查询结果分组的目的:细化聚集函数的作用对象
        3. HAVING

    3. 连接查询

      1. 定义:若一个查询同时涉及两个以上的表,则称之为连接查询
      2. 等值与非等值连接查询
      3. 自身连接
      4. 外连接
      5. 复合条件连接


    4. 嵌套查询

      1. 定义:在SQL语言中,一个SELECT-FROM-WHERE语句称为一个查询块。将一个查询块嵌套在另一个查询块的WHERE子句或HAVING短语的条件中的查询称为嵌套查询。
      2. 带有IN谓词的子查询

      3. 带有比较运算符的子查询
      4. 带有ANY或ALL谓词的子查询


      5. 带有EXISTS谓词的子查询
      6. 集合查询


      7. select语句的一般格式
  3. 数据更新

    1. 插入数据
      1. 插入元组

      2. 插入子查询结果
      3. 修改数据
      4. 删除数据
  4. 视图

    1. 定义视图
      1. 建立视图



      2. 删除视图
    2. 查询视图

    3. 更新视图


    4. 视图的作用

  5. 小结

  • 串的定义

    1. 定义:由零个或多个字符组成的有限序列,又名叫字符串
    2. 所谓的序列,说明串的相邻字符之间具有前驱和后继的关系
    3. 子串在主串中的位置就是子串的第一个字符在主串种的序号
  • 串的比较

    1. 串的比较是通过组成串的字符之间的编码来进行的
    2. 字符的编码指的是字符再对应字符集中的序号
    3. 类似于:查字典就是在比较字符串大小的过程
  • 串的抽象数据类型

    1. 字符串与线性表的差别:
      1. 线性表更关注的是单个元素的操作,比如查找一个元素,插入或删除一个元素
      2. 串中更多的是查找子串的位置、得到指定位置子串、替换子串等操作
  • 朴素的模式匹配算法

    1. 子串的定位操作通常称作串的模式匹配
    2. 简单的说,就是对主串的每一个字符作为子串开头,与要匹配的字符串进行匹配。对主串做大循环,每个字符开头做T长度的小循环,指导匹配成功或全部遍历完成为止。
    3. S的长度放在S[0]中,T的长度放在T[0]中
    4. 代码
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      int Index(string S, string T, int pos) 
      {
      int i = pos;
      int j = 1;
      while (i <= S[0] && j <= T[0]) {
      if (S[i] == T[j]) {
      i++;
      j++;
      }
      else {
      i = i - j + 2;
      j = 1;
      }

      }
      if (j > T[0]) return i - T[0];
      else return 0;
      }
  • KMP模式匹配算法

  • 数据结构与算法关系

    数据结构与算法之间的关系类似于:梁山伯与祝英台或者说是罗密欧与朱丽叶

  • 算法定义

    算法:解决特定问题求解步骤的描述,在计算机中变现为指令的有限序列,并且每条指令表示一个或多个操作。
  • 算法的特性

    1. 输入
    2. 输出
    3. 有穷性
    4. 确定性
    5. 可行性
  • 算法设计的要求

    1. 正确性:
      1. 层次:
        1. 算法程序没有语法错误
        2. 算法程序对于合法的输入数据能够产生满足要求的输出结果
        3. 算法程序对于非法的输入数据能够得出满足规格说明的结果
        4. 算法程序对于精心选择的,甚至刁难的测试数据都有满足要求的输出结果
      2. 算法的正确性在大部分情况下都不可能用程序来证明,而是用数学方法证明的
      3. 一般情况下,我们把层次3作为一个算法是否正确的标准
    2. 可读性
      1. 算法设计的另一个目的是为了便于阅读、理解和交流
    3. 健壮性
      1. 当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果
    4. 时间效率高和存储量低
      1. 时间效率:算法的执行时间
      2. 存储量需求:算法在执行过程中需要的最大存储空间,主要指算法程序运行时所占用的内存或外部硬盘存储空间
      3. 设计算法应该尽量满足时间效率高和存储量低的需求
  • 算法效率的度量方法

    1. 事后统计方法
      1. 存在各种各样的缺陷,一般不予考虑
    2. 事前分析估算方法
      1. 时间取决因素:
        1. 算法采用的策略、方法
        2. 编译产生的代码质量
        3. 问题的输入规模
        4. 机器执行指令的速度

          其中:第1条是算法好坏的根本;第2条由软件来支持;第3条看硬件性能。

          抛开这些与计算机硬件软件有关的因素,一个程序的运行时间,依赖于算法的好坏和问题的输入规模。所谓 问题输入规模是指输入量的多少

      2. 最终,再分析程序的运行时间时,最重要的是把程序看成是独立于程序设计语言的算法或一系列步骤
  • 函数的渐近增长

    1. 给定两个函数$f(n)$ 和 $g(n)$,如果存在一个整数N,使得对于所有的 n > N,$f(n)$ 总是比 $g(n)$大,那么我们说 $f(n)$的增长渐近快于 $g(n)$
    2. 与最高次相乘的常数并不重要
    3. 判断一个算法的效率时,函数中的常数和其他次要项常常可以忽略,而应该关注主项(最高阶项)的阶数
  • 算法时间复杂度

    1. 算法时间复杂度定义:

      在进行算法分析时,语句总的执行次数 $T(n)$是关于问题规模n的函数,进而分析 $T(n)$随n的变化情况并确定 $T(n)$的数量级。算法的时间复杂度,也就是算法的时间量度,记作:$T(n)$=$O(f(n))$。它表示岁问题规模n的增大,算法执行时间的增长率和$f(n)$的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中$f(n)$是问题规模n的某个函数。
    2. 一般情况下,随着n的增大,$T(n)$增长最慢的算法为最优算法。
  • 常见的时间复杂度

    $O(1) < O(logn) < O(n) < O(nlogn) < O(n ^ 2) < O(n ^ 3) < O(2 ^ n) < O(n!) < O(n ^ n)$

题目

解析

  1. 类似于 30. 三角形最小路径和
  2. 不同点:比 30. 三角形最小路径和难,**难于:** 都是一排排的数,而不是三角形,但是思路是一样的,最后看dp[0][6]的值(整体向右挪了一位,并且删除边缘效应,且从上到下,第0秒是最终结果)

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <bits/stdc++.h>
#include <algorithm>
using namespace std;

const int N = 100010;
int dp[N][13];


int main() {
int n;
while(~scanf("%d",&n)) {
if (n == 0) break;
int maxt = 0;
memset(dp, 0, sizeof(dp)); // 为什么不加这个会报错????
for (int i = 0; i < n; i++) {
int x, t;
scanf("%d%d", &x, &t);
dp[t][x + 1]++;
maxt = max(maxt, t);
}

for (int i = maxt - 1; i >= 0; i--) {
for (int j = 1; j < 12; j++) {
dp[i][j] += max(dp[i + 1][j - 1], max(dp[i + 1][j], dp[i + 1][j + 1]));
}
}

cout << dp[0][6] << endl;
}

return 0;
}

题目

解析

  1. 从第一个到最后一个字母进行遍历,父循环循环变量(i)决定子串的右端
  2. 其次,子循环循环变量(j)决定子串的左端
  3. 然后,若是j左侧不可拆分,那么就跳过(因为左边无法拆分,即便右边可以拆分也没有意义)
  4. 输出dpn

【释】:**dp** 负责记录 第n个之前(包括第n个)能否拆分

代码

1
2
3
4
5
6
7
8
9
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
#include <bits/stdc++.h>

using namespace std;

int main()
{
string s;
int n, nn;
cin >> s >> nn;
n = s.size();
vector<bool> dp(n + 1, false);
set<string> ss;
for (int i = 0; i < nn; i++) {
string t;
cin >> t;
ss.insert(t);
}

dp[0] = true;
for (int i = 0; i <= n; i++) {
for (int j = i; j > 0; j--) {
if (!dp[j - 1])
continue;
if (ss.find(s.substr(j - 1, i - j + 1)) != ss.end()) {
dp[i] = true;
break;
}
}
}

cout << boolalpha << dp[n];
return 0;
}

1. 基本术语


2. 二叉树性质

  1. 在二叉树得第i(i >= 1)层最多有$2^{i-1}$个节点
  2. 深度为k(k>=1)的二叉树上至多含$2^k-1$个节点
  3. 对任何一颗二叉树,若它含有$n_0$个叶子节点、$n_2$个度为2得节点,则必存在关系式:$n_0=n_2+1$
  4. 具有n个节点的完全二叉树的深度为$\lfloor{\log{_2n}+1} \rfloor$
  5. 若对含n个节点的完全二叉树从上到下且从左到右进行1至n的编号,则对完全二叉树中任意一个编号为i的结点(简称为结点i),有以下关系:
    1. 若i=1,则结点i是二叉树的根,无双亲节点;若i>1,则结点$\lfloor{i/2} \rfloor $为其双亲结点
    2. 若2i>n,则节点i无左孩子;否则结点2i为其左孩子;
    3. 若2i+1>n,则结点i无右孩子;否则,结点2i+1为其右孩子。

1. 节点

  1. 增加节点相当于在数据中切一刀
  2. 特征就相当于节点,越多的特征相当于越多的节点
  3. 根节点:可以把数据的分类分的更好(多)
  4. 次节点:类似于在其余的节点当中选择根节点,以此类推

2. 衡量标准-熵值

  1. 熵:表示随机变量不确定性的量度(说白了就是物体内部的混乱程度,比如:杂货市场里面什么都有那肯定混乱呀,专卖店里面只卖一个牌子的那就稳定多了)
  2. 公式: $H(x)=-\sum{p_i * \log{p_i}},i = 1, 2, 3, ……, n$