打字机

回车和换行的区别

蹲街弑〆低调 提交于 2020-02-15 08:56:41
由来 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的机械打字机,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界,不卷动滚筒;另一个叫做“换行”,告诉打字机把滚筒卷一格,不改变水平位置。 这就是“换行”和“回车”的由来。 使用 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 回车 \r 本义是光标重新回到本行开头,r的英文return,控制字符可以写成CR,即Carriage Return 换行 \n 本义是光标往下一行(不一定到下一行行首),n的英文newline,控制字符可以写成LF,即Line Feed 符号 ASCII码 意义 \n 10 换行NL \r 13 回车CR 在不同的操作系统这几个字符表现不同,比如在WIN系统下,这两个字符就是表现的本义,在UNIX类系统,换行\n就表现为光标下一行并回到行首,在MAC上,\r就表现为回到本行开头并往下一行,至于ENTER键的定义是与操作系统有关的

稗官野史

ぐ巨炮叔叔 提交于 2020-01-18 00:51:09
一:在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符.但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符.要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失.于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符.一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行.这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二.后来,计算机发明了,这两个概念也就被般到了计算机上.那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以.于是,就出现了分歧.Unix系统里,每行结尾只有“”,即“\n”;Windows系统里面,每行结尾是“”,即“\n\r”;Mac系统里,每行结尾是“回车”。 来源: https://www.cnblogs.com/misakimei/p/12207966.html

打字机的打字效果

大憨熊 提交于 2020-01-13 04:31:55
#打字机效果 import time text = '我要实现打字机的打字效果,0.1秒打印一个字' for ch in text : print ( ch , end = '' ) time . sleep ( 0.1 ) 来源: CSDN 作者: abaodyb 链接: https://blog.csdn.net/abaodyb/article/details/103858244

阿狸的打字机

余生长醉 提交于 2020-01-10 23:10:28
题目描述 阿狸喜欢收藏各种稀奇古怪的东西,最近他淘到一台老式的打字机。打字机上只有 28 2 8 个按键,分别印有 26 2 6 个小写英文字母和 B 、 P 两个字母。经阿狸研究发现,这个打字机是这样工作的: 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 按一下印有 B 的按键,打字机凹槽中最后一个字母会消失。 按一下印有 P 的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不会消失。 例如,阿狸输入 aPaPBbP ,纸上被打印的字符如下: a aa ab 我们把纸上打印出来的字符串从 1 1 开始顺序编号,一直到 n n。打字机有一个非常有趣的功能,在打字机中暗藏一个带数字的小键盘,在小键盘上输入两个数 (x,y ),打字机会显示第 x 个打印的字符串在第 y 个打印的字符串中出现了多少次。 阿狸发现了这个功能以后很兴奋,他想写个程序完成同样的功能,你能帮助他么? 题解 直接暴力显然是不行的,这里我们要利用AC自动机一些优良的性质 我们发现,一个AC自动机上的点A,它的fail指向B,那B对应的字符串一定是A的子串,同时我们发现把每个点的fail和它自己连边,就形成了一棵有根树 我们建出fail树后,问题就变成了y字符串对应的节点有多少个在x末尾对应的节点的子树内 那我们对树记录dfs序,用树状数组记录子树权值和就可以了 1

回车与换行的区别

白昼怎懂夜的黑 提交于 2019-12-13 21:27:54
r,return n , new line 在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。 于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。 一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。 来源: https://www.cnblogs.com/clarkchen/archive/2011/06/02/2068609.html 来源: CSDN 作者: inch2006 链接: https://blog.csdn.net/inch2006/article/details/103530431

P1383 高级打字机

浪子不回头ぞ 提交于 2019-12-04 05:29:22
P1383 高级打字机 Description 早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x。(type操作) 2.U x:撤销最后的x次修改操作。(Undo操作) (注意Query操作并不算修改操作) 3.Q x:询问当前文章中第x个字母并输出。(Query操作) 文章一开始可以视为空串。 Input 第1行:一个整数n,表示操作数量。 以下n行,每行一个命令。保证输入的命令合法。 Output 每行输出一个字母,表示Query操作的答案。 Sample Input 7 T a T b T c Q 2 U 2 T c Q 2 Sample Output b c Data Size 【数据范围】 对于40%的数据 n<=200; 对于100%的数据 n<=100000;保证Undo操作不会撤销Undo操作。 对于200%的数据 n<=100000;Undo操作可以撤销Undo操作。 必须使用在线算法完成该题。 题解: 主席树。 一开始无脑水了个vector上去,80pts。爆空间了。如果全是插入操作的话,空间复杂度近似于O(n^2)。后来就敲了一发主席树就过了。原因是每次插入操作都只是开了一条链的空间而已。总体空间复杂度大概是O(nlogn)

UGUI 文本设置居中后的打字机效果

匿名 (未验证) 提交于 2019-12-03 00:26:01
由于项目需求,打字效果需要居中显示,传统的打字机效果都是从左到右逐字出现的,如果将文本居中后,发现打字效果很奇怪,所以新写了打字效果 private int mCurPos; private string mTypingText; private string mTempTypingText; private Text mTalkText; void Start( ){ mTalkText = gameObject.GetComponent<Text>(); mTypingText= "13241341131"; //测试文本,具体需求改变文本内容 InvokeRepeating("Typing", 0, 0.03f); } #region 打字效果 /// <summary> /// 打字效果 /// </summary> private void Typing() { if (mTypingText.Length - 1 == mCurPos) CancelInvoke("Typing"); mTempTypingText += mTypingText.Substring(mCurPos, 1); mTalkText.text = mTempTypingText + "<color=#13171800>" + mTypingText.Substring(mCurPos + 1)

【洛谷P1383 高级打字机】

匿名 (未验证) 提交于 2019-12-02 23:47:01
题目描述 早苗入手了最新的高级打字机。最新款自然有着与以往不同的功能,那就是它具备撤销功能,厉害吧。 请为这种高级打字机设计一个程序,支持如下3种操作: 1.T x:在文章末尾打下一个小写字母x。(type操作) 2.U x:撤销最后的x次修改操作。(Undo操作) (注意Query操作并不算修改操作) 3.Q x:询问当前文章中第x个字母并输出。(Query操作) 文章一开始可以视为空串。 输入输出格式 输入格式: 第1行:一个整数n,表示操作数量。 以下n行,每行一个命令。保证输入的命令合法。 输出格式: 每行输出一个字母,表示Query操作的答案。 输入输出样例 复制 7 T a T b T c Q 2 U 2 T c Q 2 复制 b c 说明 【数据范围】 对于40%的数据 n<=200; 对于100%的数据 n<=100000;保证Undo操作不会撤销Undo操作。 <高级挑战> 对于200%的数据 n<=100000;Undo操作可以撤销Undo操作。 <IOI挑战> 必须使用在线算法完成该题。 生硬的讲解 这题我一看就不会,所以直接运用数组强行模拟栈,轻松拿下50Pts( 然后就开始使劲颓废 ) 那么我们就先来讲一讲50Pts是如何拿下的吧QwQ 首先,看到这个题(前100%的数据点),果断想到了栈(这前100%和栈完全一样啊QwQ) 直接模拟 #include

P2414 [NOI2011]阿狸的打字机

六眼飞鱼酱① 提交于 2019-12-02 12:08:24
题意: 打字机上只有28个按键,分别印有26个小写英文字母和’B’、'P’两个字母。经阿狸研究发现,这个打字机是这样工作的: ·输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 ·按一下印有’B’的按键,打字机凹槽中最后一个字母会消失。 ·按一下印有’P’的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不会消失。 例如,阿狸输入aPaPBbP,纸上被打印的字符如下: a aa ab 我们把纸上打印出来的字符串从1开始顺序编号,一直到n。打字机有一个非常有趣的功能,在打字机中暗藏一个带数字的小键盘,在小键盘上输入两个数(x,y)(其中1≤x,y≤n),打字机会显示第x个打印的字符串在第y个打印的字符串中出现了多少次。 题解: 字符串总长1e5,如果我们在线做法,肯定会T到爆炸,因为每次询问都需要插入重建fail图,所以我们选择离线处理,把所有查询y中有多少个x的询问一起查询,即查询y中有多少个x1,x2,xn…,把所有操作形成的字符串全部放进去,但这样显然还是会超时,怎么办? 仔细想想,y中有多少个x,不就是求y的某个节点往上跳fail能不能到达x,因为每个节点的fail一定最多只有一条,所有我们完全可以反向建边,建出fail树,那么我们的问题不就是求x往下能到达多少个y的节点,那这就不是相当于求子树和了吗? 再想想

BZOJ 2434: [Noi2011]阿狸的打字机 ACAM+fail树

只愿长相守 提交于 2019-11-29 03:29:39
title BZOJ 2434 LUOGU 2414 Description 打字机上只有 \(28\) 个按键,分别印有 \(26\) 个小写英文字母和 B、P 两个字母,是这样工作的: 输入小写字母,打字机的一个凹槽中会加入这个字母(这个字母加在凹槽的最后)。 按一下印有 B 的按键,打字机凹槽中最后一个字母会消失。 按一下印有 P 的按键,打字机会在纸上打印出凹槽中现有的所有字母并换行,但凹槽中的字母不会消失。 例如,阿狸输入 aPaPBbP ,纸上被打印的字符如下: a aa ab 我们把纸上打印出来的字符串从 \(1\) 开始顺序编号,一直到 \(n\) 。 打字机有一个非常有趣的功能,在打字机中暗藏一个带数字的小键盘,在小键盘上输入两个数 \((x,y)\) (其中 \(1\leqslant x,y\leqslant n\) ),打字机会显示第 \(x\) 个打印的字符串在第 \(y\) 个打印的字符串中出现了多少次。 analysis 比较有意思的 \(ACAM\) 了,不再是套板子的题目。 和一般的 \(ACAM\) 相比,因为多了两个键,所以在建树的时候,就要额外两个操作了: P :说明已经组成了一个单词,所以记录一下这个单词的结束位置; B :就往当前节点的父亲走,因为把这个节点删了。 下面就是如何判断单词 \(x\) 是否是 \(y\) 的子串? 说两条性质: