高精度运算 高精度加法: int main() { scanf("%s%s",&a1,&b1); if(a1[0] == '0' && b1[0] == '0') { cout << "0"; return 0; } for(int i = 0;i < strlen(a1);++i) a[strlen(a1) - i - 1] = a1[i] - '0'; for(i…
高精度运算 高精度加法: int main() { scanf("%s%s",&a1,&b1); if(a1[0] == '0' && b1[0] == '0') { cout << "0"; return 0; } for(int i = 0;i < strlen(a1);++i) a[strlen(a1) - i - 1] = a1[i] - '0'; for(i…
简介 朴素的算回文串的办法一般是O(n ^ 2) 或 O(n ^ 3)的。而Manacher发明的马拉车算法能将空间复杂度和时间复杂度均优化到O(n)的线性。 具体算法过程是: 1、将字符串中加入# 如 abcde -> ##a#b#c#d#e 举个例子 一个字符串s = abbahopxpo,转换为$#a#b#b#a#h#o#p#x#p#o#(这里的字符 $ 只是为了防止越界,下面代码会有说明),如此,s 里起初有一个偶回文abba和一个奇回文opxpo,被转换为#a#b#b#a#和#o#p#x#…
简介 Hash算法类似于给字符串进行加密的方式,方便判断重复 那字符串Hash就非常好理解了。就是把字符串转换成一个整数的函数。而且要尽量做到使字符串对应唯一的Hash值。 进制哈希是最常见(NOIP)的哈希方式 它的主要思路是选取恰当的进制,可以把字符串中的字符看成一个大数字中的每一位数字,不过比较字符串和比较大数字的复杂度并没有什么区别(高精数的比较也是O(n) 评测:洛谷P3370 模板 #include <cstdio> #include <cstdlib> #include <…
题目描述 C 市火车站最近出现了一种新式自动售票机。买票时,乘客要先在售票机上输入终点名称。一共有N 处:目的地,随着乘客按顺序输入终点名称的每个字母,候选终点站数目会逐渐减少。 在自动售票机屏幕上,有一个4 行8 列的键盘,如下图所示。 在乘客每输入一个字母后,键盘上只有有效字符是可选的(取决于还有哪些候选终点站),其余的字母会被字符'*' 取代。 告诉你N 处目的地的名称,以及乘客已经输入的若干字符,请你输出键盘目前的状态。 输入输出格式 输入格式: 第一行为一个整数N (1≤N ≤50)。接下来N 行,每行一…
声明方式 库:#include<string> string s;//声明一个string 对象 string ss[10];//声明一个string对象的数组 操作方式 s.begin() s.end为迭代器,类似指针的东西,没怎么搞清楚 1、substr(a,b) 返回从a到b的字符串 2、substr(a) 返回a及a以后的字符串 3、insert(a,str) 在a的位置插入str 4、erase(s.begin()+a) 删除a处字符 5、erase(s.begin()+a,s.begin()…
神楽坂 みずき
萌萌萌,好萌!