进制

位运算卷积-FWT

穿精又带淫゛_ 提交于 2020-04-08 04:49:41
问题 给出两个幂级数 \(f,g\) ,求 \[h=\sum _i\sum _jx^{i\oplus j}f_ig_j \] 其中 \(\oplus\) 是可拆分的位运算。 算法 由于位运算具有独立性,可以一位位地考虑。 设 \(f=(f_0,f_1)\) ,即最高位为 0 的部分和最高位为 1 的部分。我们希望把这个卷积转化为点积来做。即 \[T\begin{bmatrix}f_0 \\f_1 \end{bmatrix}\cdot T\begin{bmatrix}g_0 \\g_1 \end{bmatrix}=T\begin{bmatrix}h_0 \\h_1 \end{bmatrix} \] 按照 \(f,g,h\) 的对应关系,对比系数容易得到 \(T\) 。 那么我们就可以先对 \(f,g\) 递归进行上述变换,然后再点积起来,逆变换回去,这样就能得到我们需要的 \(h\) 。显然逆变换可以直接用矩阵 \(T^{-1}\) 做同样的操作。 复杂度为 \(O(nk^2\log n)\) , \(k\) 为位状态数。 拓展 上面的过程只用到了位运算的可拆分性,所以可以尝试拓展一下。例如更高进制的位运算卷积,可以用完全一样的方法来做。做之前只要定义好位的运算即可。例如 [清华集训2016]石家庄的工人阶级队伍比较坚强 中的三进制卷积,类比二进制异或,定义三进制不进位加法

day02Java语言基础数量部分

有些话、适合烂在心里 提交于 2020-04-08 01:53:59
1.关键字 关键字 :被Java语言赋予特殊含义的单词 关键字的特点 : 组成关键字的字母全部小写 关键字的注意事项 :高级的编辑器或者专门的开发工具中,关键字会有高亮效果 goto和const作为保留字存在,目前并不使用 2.标识符 标识符(我们自己起的一个名字) 就是给类,接口,方法,变量等起名字时使用的字符序列 组成规则 英文大小写字母 数字字符 $和_ 注意事项 不能以数字开头 不能是Java中的关键字(保留字)   区分大小写   常见命名规则:驼峰命名 包命名:就类似于在操作系统中,以文件夹的形式组织文件,在java语言中,以包来组织java中的类 关于包来说,为了防止类的命名冲突,一个包下不可以定义同名的类,但是不同包可以定义同名的类 如果,不同的coder,定义了相同的类名此时,只要保证同名的类在不同的包下就可以 也就是说,解决类的同名问题依靠的是包名的不同 为了保证包名的唯一,以域名(唯一的)反转的形式来命名包 baidu.com com.cskaoyan.name com.zs.name 单级 test 一个全部小写的单词 多级包 com.cskaoyan.name 以域名反转的方式来命名,单词全部小写,单词之间以.分隔 类和接口命名 单个: 首字母大写,其余字母全部小写 Student 多个单词: 每个单词首字母大写,其余字母全部小写 JavaBasic

《30天自制操作系统》Day01

穿精又带淫゛_ 提交于 2020-04-05 17:54:05
我宣布,从今天开始,本懒狗正式踏入自制操作系统的大坑之中,内容将使用较现代的新工具和新思路来编写,会不定期更新(谁让我懒呢...) 当然,这个系列不会涉及太多理论,主要以我自己的实践过程为主,看理论请看书。 可以在 GitHub 跟进我的学习实践进度... 1. 工具准备 作者使用的工具,并不是我熟悉的,也不一定是最好的解决方案。 对于 16进制编辑器 ,你可以选用 WinHex ,我将采用开源免费的 wxMEdit : 文本编辑器 我首选 Visual Studio Code ,你可以选择自己喜欢的文本编辑器。 虚拟机 的话,你可以使用 Virtual Box 或者 VMware 。我将使用VMware Workstation 14,因为它更加强大。 汇编 的话,还是老老实实采用作者的 nask.exe 吧,我们并不需要自己写一个汇编器。 我们还需要一个 Bash环境 ,你可以选择 Git 的Bash,我这里使用 Cmder 。 2. 以16进制方式编辑image映像文件 2.1. Bash环境,dd命令,生成全0的image文件 软盘规定大小必须为 1440 KB ,也就是 1474560 字节(1440 * 1024 Bytes , 1 KB = 1024 Bytes )。 我们要制作的img文件中,由于只显示 hello,world ,所以很多空间中的值都是 0 。

【hdoj_2100】Lovekey(大数+字符处理)

守給你的承諾、 提交于 2020-04-04 22:32:56
题目: http://acm.hdu.edu.cn/showproblem.php?pid=2100 根据题目意思,现将字符串转化为10进制,再采用10进制加法相加,再转化为26进制. 另一种直接的思路是:采用26进制,模拟加法过程. 思路:用字符串存储两个26进制的数,然后在前面补A(相当于十进制中的0),使两个数对齐,以便进行加法进位.对齐之后,采用26进制,进行加法运算,运算得到的数字,再转化为对应的字符,即可. C++代码如下: #include<iostream> #include<string> #include<string.h> using namespace std; int main() { string s1,s2; int i,j; while(cin >> s1 >> s2) { int len_1 = s1.length(); int len_2 = s2.length(); if(len_1<len_2) { s1.swap(s2); int temp = len_1; len_1 = len_2; len_2 = temp; } s1 = 'A' + s1; for(i=len_2;i<=len_1;i++) s2 = 'A'+ s2; //至此,s1和s2已经对齐了,并且前面至少都有一个A,用于进位 int len = s1.length();

HDU -2100-Lovekey

北慕城南 提交于 2020-04-04 22:30:14
题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=2100 这题开始一直想着先把26进制转换成10进制,在转换成26进制,又200个字符因而行不通, 直接卡死了,不会做,后来才知道因为是200的长度的字符串,所以啊,就是用到大数相加的思想了。 引用 http://blog.csdn.net/q3498233/article/details/4427447 的思路 解题思路:也是一道进制转换的问题啦,其实把字母转换成10进制后,再转换回26进制,本身就是一个逆过程。根本不用转换成10进制啦,就在26进制的基础上进行加法就是了,相加的和超过25,就进位啦,别被题目的提示给忽悠了。因为是200的长度的字符串,所以啊,就是用到大数相加的思想了 特别注意:数据如果给的是 AAAAAAAAA *的话最后结果就是*,*是任意一个字母,这是特殊情况,大家要注意啦。 将字符串逆序,为计算方便,将长度比较少的那个字符串后面补零,,最后逆序输出即可。 我的AC代码 #include<stdio.h> #include<string.h> char a[210],b[210],c[210],d[210]; int main(void) { int i,p,q,n,s; while(scanf("%s%s",c,d)==2) { p=strlen(c); q

Python_面向过程_内置函数

余生颓废 提交于 2020-04-04 06:57:58
--内建函数   abs 绝对值函数   round 四舍五入 (n.5 n为偶数则舍去.5 n为奇数,则进一!)   sum 计算一个序列得和   max 获取一个序列里边的最大值   pow 计算某个数值的x次方   range 产生指定范围内的数据的可迭代对象   bin 将10进制数据转化为二进制   oct 将10进制数据转化为八进制   hex 将10进制数据转化为16进制   chr 将ASCII编码转换为字符   ord 将字符转换为ASCII编码   eval 将字符串当作python代码执行   repr 不转义字符输出字符串   input 接受输入字符串 # 绝对值函数 a = -14 print(abs(a)) # 四舍五入 num = 3.2 # 3 num = 3.7 # 4 num = 4.9 # 5 num = 3.8 # 4 num = 4.5 # 4 num = 7.5 # 8 """    n.5 奇进偶不进 只能是n.5的时候 符合条件 """ print(round(num)) # 计算一个序列得和 listvar = [1,2,34,6,7] res = sum(listvar) print(res) # 获取一个序列里边的最大值 listvar = [77,12,-4,0,23] res = max(listvar) print

字符串格式化

拥有回忆 提交于 2020-03-29 23:04:16
字符串格式化 Python的字符串格式化有两种方式: 百分号方式、format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101] This PEP proposes a new system for built-in string formatting operations, intended as a replacement for the existing '%' string formatting operator. 1、百分号方式 %[(name)][flags][width].[precision]typecode (name) 可选,用于选择指定的key flags 可选,可供选择的值有: 右对齐;正数前加正好,负数前加负号; 左对齐;正数前无符号,负数前加负号; 空格 右对齐;正数前加空格,负数前加负号; 0 右对齐;正数前无符号,负数前加负号;用0填充空白处 width 可选,占有宽度 .precision 可选,小数点后保留的位数 typecode 必选 s,获取传入对象的__str__方法的返回值,并将其格式化到指定位置 r,获取传入对象的__repr__方法的返回值,并将其格式化到指定位置 c,整数:将数字转换成其unicode对应的值,10进制范围为 0 <= i <=

JavaScript中的16进制字符(改进)

半世苍凉 提交于 2020-03-23 14:56:19
后来经过自己的测试,发现将字符转换为十六进制的方法不完善。 原始的代码: //将文字转换为16进制 function textToSix(str) { return escape(str).replace(/%/g, function () { return "\\"; }).toLowerCase(); } 改进后的: //将文字转换为16进制 function textToHex(str) { //escape对0-255以外的unicode值进行编码时输出%u****格式,例如:%u6267%u624b%u6cea%u773c //将其中的%替换成\就是十六进制的 if (typeof str == "string") { return escape(str).replace(/%/g, function () { return "\\"; }).toLowerCase(); } else { return null; } } 主要是增加了一个验证是否为字符串的验证。 在完善了这个方法之后,我又觉得是不是要改进下面这个方法: //将16进制表示为文字 function sixToText(str) { return unescape(str); } 本意是将"\unnn"之类的字符转换回文字。其实,只需看看unescape这个方法的原理(工作原理:通过找到形式为 %xx 和

linux中的计算【转】

拟墨画扇 提交于 2020-03-14 23:48:42
shell中的赋值和操作默认都是字符串处理,在此记下shell中进行数学运算的几个特殊方法,以后用到的时候可以来看,呵呵 1、错误方法举例 a) var=1+1 echo $var 输出的结果是1+1,悲剧,呵呵 b) var=1 var=$var+1 echo $var 输出结果是1+1,依然悲剧,呵呵 2、正确方法 1)使用let var=1 let "var+=1" echo $var 输出结果为2,这次没有悲剧 注意: a)经我测试let几乎支持所有的运算符,在网上看到一篇文章说“let不支持++、--和逗号、(、)”,但经我测试自加、自减、以及括号的优先级都得到了很好的支持 b)方幂运算应使用“**” c)参数在表达式中直接访问,不必加$ d)一般情况下算数表达式可以不加双引号,但是若表达式中有bash中的关键字则需加上 e)let后的表达式只能进行整数运算 2)使用(()) var=1 ((var+=1)) echo $var 输出结果为2 注意: (())的使用方法与let完全相同 3)使用$[] var=1 var=$[$var+1] echo $var 输出结果位2 注意: a)$[]将中括号内的表达式作为数学运算先计算结果再输出 b)对$[]中的变量进行访问时前面需要加$ c)$[]支持的运算符与let相同,但也只支持整数运算 4)使用expr var=1

python chr函数

柔情痞子 提交于 2020-03-14 11:21:48
在python中 ord函数可以字符作为参数,返回对应的ascll码;其中内置函数chr 与 ord函数作用相反,chr函数可以将ascll码转为对应的字符; 一.chr函数简介 语法如下: chr(i) 参数: i : 可以是10进制也可以是16进制的形式的数字; 返回值:返回10进制或者16进制ascll码对应的字符; 二.chr函数使用 print(chr(97)) print(chr(105)) print(chr(65)) print(chr(0x65)) # 十六进制0x65 等于的 101 输出结果: a i A e    猜你喜欢: 1.python bytes和string相互转换 2.python bytearray/bytes/string区别 3.python str/bytes/unicode区别详解 转载请注明: 猿说Python » python chr函数 技术交流、商务合作请直接联系博主 扫码或搜索:猿说python 猿说python 微信公众号 扫一扫关注 来源: https://www.cnblogs.com/shuopython/p/12490824.html