read

字符编码,字符与字节,文件操作

北城以北 提交于 2020-03-08 09:38:27
一,复习 ''' 类型转换 1.数字类型:int() | bool() | float() 2.str与int: int('10') | int('-10') | int('0') | float('-.5') | float('3.14') | str(数字) 3.重点 - str与list:    'abc' => ['a', 'b', 'c']: list('abc') | ''.join(['a', 'b', 'c'])    'abc|def|xyz' => ['abc', 'def', 'xyz']: s.split('|') | '|'.join(ls) 4.list、set、tuple:类型() 5.list与dict:   a=1&b=2&c=3 <=> [('a', 1), ('b', 2), ('c', 3)] <=> {'a': 1, 'b': 2, 'c': 3}   dic = {}    for k, v in [('a', 1), ('b', 2), ('c', 3)]:   dic[k] = v    ls = []   for k, v in {'a': 1, 'b': 2, 'c': 3}.items():   ls.appen((k, v)) 6.可以通过字典构建任意数据的映射关系:    type_map = {    1: '壹',   

[SDOI2009]HH去散步(dp,矩阵乘法)

安稳与你 提交于 2020-03-05 08:24:47
[SDOI2009]HH去散步(luogu) Solution 考虑dp,设计状态 f[i][j] 为当前从起点走了 i 步,到达 j 点 但要避免走上一条走过的路,所以还要记录上一条走过的路是哪一条 可以将 f[i][j] 改为表示当前从起点走了 i 步,在编号为 j 的有向路的终点 转移为f[i][j]=$\Sigma$ f[i-1][k] (编号为 k 的有向路的终点是 j 的起点,且不是 j 的反边) 发现 t 过大,不过对于一个 j ,能转移到它的 k 是固定的 于是可以矩阵乘法 Code #include <cstdio> #include <cstdlib> #include <cstring> using namespace std; const int N=51,M=121,P=45989; int head[N],nxt[M],ver[M],tot; int n,m,t,a,b,u,v,ans[M][M],pre[M][M],now[M][M]; void mul1() { memset(now,0,sizeof(now)); for(int i=1;i<=tot;i++) for(int j=1;j<=tot;j++) for(int k=1;k<=tot;k++) now[i][j]+=ans[i][k]*pre[k][j]%P,now[i][j]%=P;

[转帖]Latency numbers every programmer should know

依然范特西╮ 提交于 2020-03-05 06:38:48
Latency numbers every programmer should know https://gist.github.com/hellerbarde/2843375 Latency numbers every programmer should know L1 cache reference ......................... 0.5 ns Branch mispredict ............................ 5 ns L2 cache reference ........................... 7 ns Mutex lock/unlock ........................... 25 ns Main memory reference ...................... 100 ns Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs SSD random read ........................ 150,000 ns = 150 µs Read 1 MB sequentially

P3386 【模板】二分图匹配(匈牙利&最大流)

牧云@^-^@ 提交于 2020-03-05 06:01:26
P3386 【模板】二分图匹配 题目背景 二分图 题目描述 给定一个二分图,结点个数分别为n,m,边数为e,求二分图最大匹配数 输入输出格式 输入格式: 第一行,n,m,e 第二至e+1行,每行两个正整数u,v,表示u,v有一条连边 输出格式: 共一行,二分图最大匹配 输入输出样例 输入样例#1: 复制 1 1 1 1 1 输出样例#1: 复制 1 说明 n,m \leq 1000 n , m ≤ 1 0 0 0 , 1 \leq u \leq n 1 ≤ u ≤ n , 1 \leq v \leq m 1 ≤ v ≤ m 因为数据有坑,可能会遇到 v>m v > m 的情况。请把 v>m v > m 的数据自觉过滤掉。 算法:二分图匹配 code 匈牙利 1 #include<cstdio> 2 #include<algorithm> 3 #include<cstring> 4 #include<cmath> 5 #include<cstdlib> 6 7 using namespace std; 8 9 const int N = 1010; 10 int e[N][N],vis[N],resut[N]; 11 int n,m,E; 12 13 inline int read() { 14 int x = 0,f = 1;char ch = getchar(); 15 for

zookeeper分布式锁实现原理

落爺英雄遲暮 提交于 2020-03-02 04:40:38
文章转载自 https://blog.csdn.net/koflance/article/details/78616206 1、互斥锁mutex lock 顾名思义就是排它锁,同一时间只允许一个客户端执行。 实现步骤: 首先,创建一个lock node,例如“ locknode ” 其次,客户端lock执行以下方式: 创建(create)一个有序临时节点,例如“ locknode /guid-lock-”,其中guid可以是你客户端的唯一识别序号,如果发生前面说的创建失败问题,需要使用guid进行手动检查。 调用getChildren(watch=false)获取获取子节点列表,注意wtach设置为false,以避免羊群效应(Herd Effect),即同时收到太多无效节点删除通知。 从这个列表中,判断自己创建的节点 序号是否是最小 ,如果是则直接返回true,否则继续往下走。 从步骤2中获取的list中选取排在当前节点前一位的节点,调用exist(watch=true)方法。 如果exist返回false,则回到步骤2; 如果exist返回true,则等待exist的哨兵(watch)回调通知,收到通知后再执行步骤2. 最后,客户端unlock只需要调用delete删除掉节点即可。 节点操作示意图: 流程图: 优点 : 避免了轮询和超时控制 每次一个子节点的删除动作

python中urllib.request对象案例

懵懂的女人 提交于 2020-03-01 19:58:10
刚刚接触爬虫,基础的东西得时时回顾才行,这么全面的帖子无论如何也得厚着脸皮转过来啊! 什么是 Urllib 库? urllib 库 是 Python 内置的 HTTP 请求库。urllib 模块提供的上层接口,使访问 www 和 ftp 上的数据就像访问本地文件一样。 有以下几种模块: 1.urllib.request 请求模块 2. urllib.error 异常处理模块 3. urllib.parse url 解析模块 4. urllib.robotparser robots.txt 解析模块 Urllib 库下的几种模块基本使用如下: urllib.request 关于 urllib.request : urllib.request 模块提供了最基本的构造 HTTP (或其他协议如 FTP)请求的方法,利用它可以模拟 浏览器 的一个请求发起过程。利用不同的协议去获取 URL 信息。它的某些接口能够处理基础认证 ( Basic Authenticaton) 、redirections (HTTP 重定向)、 Cookies (浏览器 Cookies)等情况。而这些接口是由 handlers 和 openers 对象提供的。 1.常用的方法有   read()==读取文件内容   geturl()==获取请求url   getheaders()==获取http请求头信息  

python学习笔记-文件操作

落爺英雄遲暮 提交于 2020-02-29 20:30:36
文件操作 1、打开文件,得到文件句柄并赋值给一个变量 2、通过句柄操作文件 3、关闭文件 #1. 打开文件,得到文件句柄并赋值给一个变量 f=open('a.txt','r',encoding='utf-8') #默认打开模式就为r #2. 通过句柄对文件进行操作 data=f.read() #3. 关闭文件 f.close() 常用读写方法: #####读##### #read() f=open("hello",encoding='utf-8') data=f.read() print(data) #readable() 是否可读,可读返回true print(f.readable()) #readline()一次读一行 print("第一行",f.readline()) print("第二行",f.readline(),end='') print("第三行",f.readline()) #readlines() 读取所有行的一个列表 data=f.readlines() print(data) f.close() #####写##### #w 文件存在时清空文件开始写,文件不存在时会新建一个文件 #文件内容只能是字符串,只能写字符串 #write() f=open("hello2",'w',encoding="utf-8") f.write("111111\n") f

Shell脚本入门-7

百般思念 提交于 2020-02-29 09:01:59
Shell echo命令 Shell 的 echo 指令与 PHP 的 echo 指令类似, 都是用于字符串的输出 。命令格式:echo string 您可以使用echo实现更复杂的输出格式控制。 1.显示普通字符串: echo "It is a test" ,这里的双引号完全可以省略, 以下命令与上面实例效果一致:echo It is a test 2.显示转义字符 : echo "\"It is a test\"" , 结果将是:"It is a test" , 同样,双引号也可以省略。 备注: \" \": 转移一对""符号。 3.显示变量: read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量 #!/bin/sh read name echo "$name It is a test" 以上代码保存为 test.sh,name 接收标准输入的变量,结果将是: [root@www ~]# sh test.sh OK #标准输入 OK It is a test #输出 4.显示换行:注意: echo -e echo -e "OK! \n" # -e 开启转义 echo "It it a test" 输出结果: OK! -- 备注:(有一空行) It it a test 5.显示不换行: 注意: echo -e #!/bin/sh echo -e