Nov 25, 2019 ~ Dec 1, 2019

Algorithm

深度优先搜索--书籍分配

题目描述:有b1~b5五本书,要分配给五个学生,分别是a1~a5。但每个学生都有其喜欢的书,要检查是否可以让每位同学都获得自己喜欢的书。书籍喜好表如下(Y表示喜欢):

b1 b2 b3 b4 b5
a1 Y Y Y
a2 Y Y Y
a3 Y
a4 Y Y
a5 Y

思路

  1. 每本书对于每个人的状态都是“未分配”状态
  2. 为其中一个人分配一本他喜欢的书,分配后将该书标记为“已分配”,可能会出现以下两种情况:
  • 若分配完所有书,则说明产生了一个合理的方案。输出该方案,继续尝试有无新的方案。
  • 若分配到下一个人没有可控分配的他喜欢的书,则退回上一状态重新分配

实现

# 检查该学生是否喜欢这本书
def judge(j, k):
name = student[k]
book = books[j]
if book in like[name]:
return True
else:
return False # 打印一种结果
def answer(L):
print('一种分配方案为:')
for i in range(n):
print(student[i], '->', L[i]) # 深度优先搜索
def book_dfs(L, k):
if k == n:
answer(L)
else:
for j in range(n):
if judge(j, k) and visited[j] == 0:
# j本书分配给第k个人是否合理
L[k] = books[j]
visited[j] = 1
book_dfs(L, k+1)
visited[j] = 0 student = ['a1', 'a2', 'a3', 'a4', 'a5']
books = ['A', 'B', 'C', 'D', 'E']
like = {'a1':['A','B','D'], 'a2':['B','C','E'], 'a3':['B'], 'a4':['A','C'], 'a5':['D','E']}

Review

如何保护好自己的密码免遭侵害,可以阅读火狐给出的建议,英文原文

了解黑客的工作方式

  1. 最初的目标不是针对具体某个人的信息,而是许多人的信息。
  2. 所有的数据都是有价值的,信息可以被用来出售,尝试其他账户等
  3. 有的密码是很弱的,很容易被猜测出来,可以参考2018年最差的100个密码,密码123456位于榜首
  4. 一个密码可以解开多个账户。我相信大部分人总或多或少的账户密码是相同的。
  5. 黑客不在乎你有多少钱。参见第2条

数据泄漏后怎么办

  1. 阅读泄漏的时间,因为泄漏未必会被即时发现,有一定的滞后性,可能是几天几个月甚至几年
  2. 检查自己是否注册过该账户,虽然很少发生
  3. 尽快更改密码,不仅要更改被泄露账户的密码,也要修改密码相同的其他账户密码
  4. 如果收到了其他损失,比如金钱、信用,请及时联系相关部门处理

如何创建强密码

先查看2018年排名前25的弱密码

1 123456
2 password
3 123456789
4 12345678
5 12345
6 111111
7 1234567
8 sunshine
9 qwerty
10 iloveyou
11 princess
12 admin
13 welcome
14 666666
15 abc123
16 football
17 123123
18 monkey
19 654321
20 !@#$%^&*
21 charlie
22 aa123456
23 donald
24 password1
25 qwerty123
  1. 增加特殊字符,将英文字符替换为特殊字符,比如password->p@ssword!
  2. 避开具有个人信息或者名人信息的单词
  3. 尽量避免多个账号使用同一个密码
  4. 使用密码管理器,比如1Password, LastPass,Dashlane, Bitwarden
  5. 使用双重身份验证

采取步骤保护在线身份

  1. 警惕公共Wi-Fi网络
  2. 及时更新系统、软件
  3. 警惕钓鱼网站、钓鱼邮件
  4. 为每个帐号创建不同的密码
  5. 使用密码管理器

5个关于密码管理器荒诞的说法

  1. 密码管理器不值得信赖
  2. 密码管理器不是100%,所以我拒绝使用
  3. 将我所有的密码存储在一个地方使得他们更容易获得
  4. 记住我所有密码比信任技术更安全。当然,这个更好,前提是你能记住所有密码
  5. 设置密码管理器很麻烦,相信我,花一点儿时间去设置是值得的

采取进一步措施保护

通过定期查看信用,银行卡等信息来发现是否存在泄漏。

Tips

  1. Python中自带的列表操作,大部分都是在原列表上操作。而不会返回产生新的列表。
  2. Review提到的密码管理器的主密码一定要采取高强度的密码,同时要加强保管!

Share

推荐一个网站,可以检查邮箱注册帐号是否存在泄漏,链接。若想提高自己的密码的安全性,可以参考本文的Review部分

ARTS Week 5的更多相关文章

  1. KDE声音服务器 arts

    KDE声音服务器 arts arts介绍arts是KDE的核心声音系统,支持多音频流.全双工.网络声音请求.ALSA与OSS驱动后端.JACK声音服务器后端等扩展,它既是声音服务器,也 提供一套音频软 ...

  2. 【ARTS】01_21_左耳听风-201900401~201900407

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  3. 【ARTS】01_20_左耳听风-20190325~20190331

    zz## ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 ...

  4. 【ARTS】01_19_左耳听风-20190318~20190324

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  5. 【ARTS】01_18_左耳听风-20190311~20190317

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  6. 【ARTS】01_17_左耳听风-20190304~20190310

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  7. 【ARTS】01_16_左耳听风-20190225~20190303

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  8. 【ARTS】01_15_左耳听风-20190218~20190224

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  9. 【ARTS】01_14_左耳听风-20190211~20190217

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

  10. 【ARTS】01_13_左耳听风-20190204~20190210

    ARTS: Algrothm: leetcode算法题目 Review: 阅读并且点评一篇英文技术文章 Tip/Techni: 学习一个技术技巧 Share: 分享一篇有观点和思考的技术文章 Algo ...

随机推荐

  1. 关于ESP8266 NodeCMU固件无法刷入新代码的解决方法

    在玩ESP8266时,有时候会无意中写了导致死循环的代码,或都某些函数传递了不合适的参数导致系统崩溃,这可能会导致ES8266不停地重启,这时我们发现无法刷入新的代码,也无法删除8266中的原代码.我 ...

  2. PHP实现取得HTTP请求的原文【转】

    本文实例讲述了PHP实现取得HTTP请求的原文的方法,具体步骤如下: 1. 取得请求行:Method.URI.协议 可以从超级变量$_SERVER中获得,三个变量的值如下: $_SERVER['REQ ...

  3. 在A卡下的 Matlab 运行C/C++混编的GPU程序

    首先将你的.MEX文件和matlab脚本放在一个文件夹下开始运行 如果出错查看是那个.MEX文件出错 用depends这个软件查看他的依赖dll文件下载对应文件 放到当前文件夹下,运行成功.

  4. 悄摸直播(三)—— 搭建rtmp服务器(smart_rtmpd - rtmp服务器搭建)

    悄摸直播 -- javaCV实现本机摄像头画面远程直播 搭建rtmp服务器 一.素材 rtmp服务器:smart_rtmpd ffmpeg工具:ffmpeg.exe 二.搭建 1.下载smart_rt ...

  5. H5录音音频可视化-实时波形频谱绘制、频率直方图

    这段时间给GitHub Recorder开源库添加了两个新的音频可视化功能,比以前单一的动态波形显示丰富了好多(下图后两行是不是比第一行看起来丰满些):趁热打铁写了一个音频可视化相关扩展测试代码,下面 ...

  6. 2018 Multi-University Training Contest 10

      Recently, TeaTree acquire new knoledge gcd (Greatest Common Divisor), now she want to test you. As ...

  7. 存储过程带参数和sqlcommand

    public DataSet SelectBillNo(string CarrierCode, string Date, string CompanyCode) { System.Collection ...

  8. (转)GET来的漏洞

    转自呆子不开口在wooyun知识库的文章 0x00 前言 这篇文章主要讲目前互联网上get方法被不规范使用带来的一些安全漏洞.其中重点会讲get请求在账号登陆体系中被滥用的场景和攻击方式. 0x01 ...

  9. 现在啊还不太清楚 nodejs和coffeescript 的关系

    我怎么会思考这个问题,今天看到用coffeescript做的一个服务引导 挺好 看博客里提 安装node之后 呢 npm 可以安装coffeescript 难道 coffee 是 node的 一个方言 ...

  10. Ubuntu16手动安装OpenStack

    记录大佬的博客全文转载于https://www.voidking.com/dev-ubuntu16-manual-openstack-env/ 前言 <Ubuntu16安装OpenStack&g ...