Alice

TIOBE 9 月榜单:C++ 重振旗鼓

夙愿已清 提交于 2020-10-11 09:28:49
C++ 近期发展状态不错,依旧在榜单中排第四,但排名比率保持增长,本月为 7.11%。 2003 年是 C++ 的巅峰时期,当年 8 月,它的 TIOBE 排名峰值为 17.53%,接近第二名,并拿下了当年的年度编程语言奖。但 2005 年之后,C++ 的榜单排名再也没有超过 10%,甚至在 2017 年达到历史最低值 4.55%。但是,与去年相比,C++ 现在是榜单中增长最快(+1.48%)的语言。 TIOBE CEO Paul Jansen 认为,新的 C++ 20 标准带来了极大的正面影响。C++ 的积极趋势赶超了其他语言,例如 R(+1.33%)和 C#(+1.18%),以及与去年相比损失了 3.18% 排名率的 Java。 TIOBE 9 月 TOP 20 编程语言 单就名次来看,榜单前十变化不大,SQL 守住了第 10 名的位置。PHP 与 R 调换位置,上升到第 8 位,但从总体趋势来看,还是 R 语言增长率更高一些。 Groovy 上个月重回榜单后,名次又上升一位。上期卡住第 20 名,在榜单边缘徘徊的 Rust 也成功留了下来,本月排名 18。 另一个亮点是,常年排在第 24 或 25 名的 Dart(+0.77%)终于进入 top 20,本月排名 20。但第 21 名 Logo(+0.76%)和第 22 名 Classic Visual Basic(+0.75%

2019-2020 ICPC Asia Hong Kong Regional Contest B D E G J

丶灬走出姿态 提交于 2020-10-10 12:32:50
B.Binary Tree 题意 给定一个二叉树,每次Alice和Bob可以取走一个完全二叉树,直到完全不能取为止,第一个不能取得为输,求那个输 思路 这是一个博弈论,我们先分析他最基础的性质,一个完美二叉树是2 k -1,很明显他是一个奇数,最小的完美二叉树就是一个叶节点,所以最终结果必然是全部取完的,且每次取必然是奇数,所以我们就能得到如果是奇数,那么Alice 获胜,反之Bob 代码 # include <iostream> using namespace std ; int main ( ) { int T ; scanf ( "%d" , & T ) ; while ( T -- ) { int n ; scanf ( "%d" , & n ) ; for ( int i = 1 ; i < n ; i ++ ) { int a , b ; scanf ( "%d%d" , & a , & b ) ; } if ( n & 1 ) puts ( "Alice" ) ; else puts ( "Bob" ) ; } return 0 ; } D Defining Labels 题意 给定一个k,其中 10 - k <= x <= 9,他的表现形式为a,b,c,d,e,f,aa,ab,ac,ad,ae,af……ff,给定k求第i个这样的数 思路 我们可以把它看做k进制

字符串处理指令 sed,cut 详解

蹲街弑〆低调 提交于 2020-10-06 09:10:31
cut 语法 cut option... [file]... 理解 可以理解为 split 函数。 输入 文件 filename 标准输入 重定向或 - 下标选择 n 等价于 string.splite(regex)[n] n0,n1,n2... 先对下标进行排序,然后去重,再进行遍历输出。 n-m 范围内的输出,包含关系。 -n 从1到n n- 从n到末尾,不怕越界,越界为空。 选项 -b byte-list|--bytes=byte-list 按照字节处理 -c character-list|--characters=character-list 按照字符处理 -f field-list|--fields=field-list 按照自定义分隔符进行分割后的多个单词处理。 -d input_delim_byte |-d input_delim_byte 一般和 f 一起使用,用来声明分隔符的。 --output-delimiter=output_delim_string 输出的分隔符,默认使用 -d 的分隔符。 [root@localhost sed]# echo "hello world" | cut -d ' ' -f1- --output-delimiter='----' hello----world --complement 输出完整的,而不是残缺的。范围选中的不输出。

【密码学原理】Diffie-Hellman密钥交换算法与中间人攻击

泪湿孤枕 提交于 2020-10-06 08:58:13
Diffie-Hellman密钥交换算法 Diffie-Hellman密钥交换算法的目的是使两个用户能安全交换密钥,以便在后续的通信中用该密钥对消息加密。所以这个算法本身只限于密钥交换。 Diffie-Hellman密钥交换算法的有效性建立在离散对数上,在计算离散对数是困难的才能确保秘密交换。 Diffie-Hellman密钥交换算法如图所示 有素数 和本原根 ,为公开的整数,Alice选择随机整数 ,Bob选择 ,分别计算,其中 和 保密,对算出的 和 公开。Alice和Bob通过计算 ,将 作为共享的密钥。这样Alice和Bob就完成了密钥的交换。 和 是私有的,攻击者只能通过 , 和 来攻击,所以只能求离散对数来确定密钥。 如果攻击者要对Bob进行攻击,攻击者就要求离散对数算出 ,然后算出密钥 。 Diffie-Hellman密钥交换算法的安全性建立在下列事实上: 计算素数模的幂运算相对容易,计算离散对数却非常困难 对大素数,求离散对数被认为是困难的 基于这样的事实,保证了Diffie-Hellman密钥交换算法的保密性。 中间人攻击 上图的协议,不能抵御中间人攻击,中间人攻击的过程如下图所示 通过上述协议,Bob和Alice以为各自共享了密钥,实际上他们都是与Darth共享密钥,所以如果Alice和Bob通过共享密钥加密传输,将会泄露各自的明文 密钥交换不能抵御上述攻击

redhat7学习笔记-rhce

我的梦境 提交于 2020-10-05 19:24:51
ssh f0 redhat begin_rhce_uplooking 30 ssh root@172.25.30.11 -X /etc/firewalld/zones/public.xml 1/2##################################2 echo uplooking |passwd --stdin root sed -i "s/SELINUX=permissive/SELINUX=enforcing/" /etc/selinux/config setenforce 1 3######################################2 firewall-config 选permanent public->servces->选ssh->rich rules-> add->ipv4->element->service->ssh->action->accept->source->172.25.0.0/24-> add->ipv4->element->service->ssh->action->reject->source->172.17.0.0/24->ok->reload firewall-cmd --list-all 4###################################### firewall-config

TIOBE 9 月榜单:C#上涨1.18,Java 同比下滑3.18

浪子不回头ぞ 提交于 2020-10-05 00:29:44
喜欢就 关注 我们吧! TIOBE 已公布 2020 年 9 月的编程语言排行榜。 C++ 近期发展状态不错,依旧在榜单中排第四,但排名比率保持增长,本月为 7.11%。 2003 年是 C++ 的巅峰时期,当年 8 月,它的 TIOBE 排名峰值为 17.53%,接近第二名,并拿下了当年的年度编程语言奖。 但 2005 年之后,C++ 的榜单排名再也没有超过 10%,甚至在 2017 年达到历史最低值 4.55%。但是,与去年相比,C++ 现在是榜单中增长最快(+1.48%)的语言。 TIOBE CEO Paul Jansen 认为, 新的 C++ 20 标准 带来了极大的正面影响。C++ 的积极趋势赶超了其他语言,例如 R(+1.33%)和 C#(+1.18%),以及与去年相比损失了 3.18% 排名率的 Java。 TIOBE 9 月 TOP 20 编程语言 单就名次来看,榜单前十变化不大,SQL 守住了第 10 名的位置。PHP 与 R 调换位置,上升到第 8 位,但从总体趋势来看,还是 R 语言增长率更高一些。 Groovy 上个月重回榜单后,名次又上升一位。上期卡住第 20 名,在榜单边缘徘徊的 Rust 也成功留了下来,本月排名 18。 另一个亮点是,常年排在第 24 或 25 名的 Dart(+0.77%)终于进入 top 20,本月排名 20。 但第 21 名

python学习之路-day7

时光总嘲笑我的痴心妄想 提交于 2020-10-03 01:55:53
文件读取 读取模式('r')、写入模式写入模式('w')、附加模式附加模式('a')或让你能够读取和写入文件的模式('r+' 如果要写入的文件不存在,函数open()将自动创建它。然而,以写入('w')模式打开文件时千万要小心,因为如果指定的文件已经存在,Python将在返回文件对象前清空该文件 python只能将字符串写入文本文件。要将数值数据存储到文本文件中,必须先使用函数str()将其转换为字符串格式。 1 # f=open('test.txt','r+') 2 # f.write('Avaya')#新内容会添加在文件的开头,并且会覆盖开头原有的内容 3 # f.close() 4 5 6 7 # f=open('test.txt','w') 8 # f.write('test') #w模式下使用write,会把文件内容清空然后在开头写入内容 9 # f.close() 10 11 # f=open('test.txt','w+') 12 # f.write('test1')#效果与上面一样 13 # f.close() 14 15 # f=open('test.txt','a') 16 # f.write('Hillstone') #会在文件末尾追加 17 # f.close() 18 19 # f=open('test.txt') 20 # print(f.closed)

2020百度之星程序设计大赛复赛

两盒软妹~` 提交于 2020-10-02 11:48:41
A. Battle for Wosneth (Hdu 6838) 题目大意 初始 \(Alice\) 有无限血, \(Bob\) 有 \(m\) 滴血。 \(Alice\) 有 \(p\%\) 命中 \(Bob\) ,并使 \(Bob\) 减少一滴血,自身回复一滴血。 \(Bob\) 有 \(q\%\) 概率命中 \(Alice\) ,并使 \(Alice\) 减少一滴血,但自身血不变。问当 \(Bob\) 血量减少为 \(0\) 时, \(Alice\) 的期望血量变化值是多少。结果对 \(998244353\) 取模。 解题思路 当 \(Bob\) 血量大于 \(1\) 时,设 \(Alice\) 命中一次 \(Bob\) ,自身血量变化的期望值为 \(x\) ,则(此处 \(p,q\) 为小数) \[x = p \times (1 - q) + ( 1 - p ) \times ( - q + x ) \] 解得 \[x = 1 - \frac{q}{p} \] 所以Bob从 \(m\) 滴血扣到 \(1\) 滴血时,Alice的血量变化期望值为 \[(m-1)\times x = (m - 1) ( 1 - \frac{q}{p}) \] 当 \(Bob\) 剩下一滴血时,由于如果 \(Alice\) 命中他,则Bob 不会反击 ,这是与上方的区别所在,设 \(Alice\

PostgreSQL的MVCC(4)--Snapshots

大城市里の小女人 提交于 2020-09-29 05:11:01
在讨论了隔离问题并离题讨论了底层数据结构之后,上次我们研究了行版本,并观察了不同的操作如何改变元组头字段。 现在我们来看看如何从元组中获得一致性数据快照。 什么是数据快照 数据页实际上可以包含同一行的多个版本。但是每个事务只能看到每一行的一个(或没有)版本,以便它们在特定时间点上构成数据的一致视图(按照ACID的意义)。 PosgreSQL中的隔离基于快照:每个事务都使用其自己的数据快照,该快照包含在创建快照之前提交的数据,并且不包含在该时刻尚未提交的数据。我们已经看到,尽管最终的隔离看起来比标准要求的严格,但仍然存在异常。 在“读提交”隔离级别,将在事务的每个语句的开头创建一个快照。在执行语句时,此快照处于活动状态。在该图中,快照创建的时刻(我们记得它由事务ID决定)以蓝色显示。 在可重复读和可串行化级别上,快照只在事务第一个语句的开头创建一次。这样的快照在事务结束之前一直保持活动状态。 快照中元组的可见性 可见性原则 快照当然不是所有必要元组的物理副本。快照实际上由多个数字指定,并且快照中元组的可见性由规则确定。 元组在快照中是否可见取决于header中的两个字段,即xmin和xmax,即创建和删除该元组的事务的ID。这样的间隔不会重叠,因此,每个快照中表示一行的版本不超过一个。 确切的可见性规则非常复杂,并考虑了许多不同的情况和极端情况。 你可以查看src/backend

PostgreSQL的MVCC(1)--隔离

大憨熊 提交于 2020-09-26 17:36:33
什么是隔离以及隔离为何重要 可能每个人至少都知道事务的存在,遇到过ACID,并且听说过隔离级别。但是我们仍可能认为这与理论有关,这在实践中是不必要的。因此,我将花一些时间来解释为什么这确实很重要。 如果应用程序从数据库中获取了不正确的数据,或者应用程序将错误的数据写入了数据库,你肯定会不高兴。 但是什么是“正确的”数据?众所周知,可以在数据库级别创建完整性约束,例如NOT NULL或UNIQUE。如果数据始终满足完整性约束,则它们是完整的。 正确和完整同一件事吗?不完全是。并非所有约束都可以在数据库级别上指定。有些约束过于复杂,例如,一次覆盖多个表。即使通常可以在数据库中定义约束,但由于某种原因,它也没有定义,但这并不意味着可以违反该约束。 因此,正确性比完整性要强,但是我们并不确切知道这意味着什么。我们只不过承认正确性的“黄金标准”是应用程序,正如我们希望的那样,它是正确编写的,绝不会出错。 在任何情况下,如果应用程序没有违反完整性,但是违反了正确性,DBMS将不会知道它,也不会“当场”捕获应用程序 此后,我们将使用术语一致性来指代正确性。 让我们假设应用程序仅执行正确的运算符序列。如果应用程序正确无误,DBMS的作用是什么? 首先,事实证明,正确的运算符序列可以暂时破坏数据一致性,这有点奇怪,但是也很正常。一个朴实却清晰的例子是将资金从一个帐户转移到另一个帐户