随笔分类 -  字符串

摘要:csp 201604-3路径解析一道简单模拟,主要是读入,这题如果会读入就太简单了用stringstreampath="/d1/d2/d3"stringstream ss(path);while(getline(ss,dir,'/'))的结果就是“”//第一次为空,因为上来就是‘/’d1d2d3就是 阅读全文
posted @ 2020-04-03 15:01 WeiAR 阅读(158) 评论(0) 推荐(0)
摘要:http://47.95.147.191/problem/R2D2-Amanacher模板题,当时没写出来真的是 #include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> 阅读全文
posted @ 2020-03-09 16:20 WeiAR 阅读(138) 评论(0) 推荐(0)
摘要:#include <iostream> #include <cstdio> #include <queue> #include <algorithm> #include <cmath> #include <cstring> #define inf 2147483647 #define N 41000 阅读全文
posted @ 2019-11-07 13:57 WeiAR 阅读(190) 评论(0) 推荐(0)
摘要:P3879 [TJOI2010]阅读理解做法1:map+vector(直接看代码,不解释)做法2:trie树,在每个单词的末尾标记上是属于哪个文章的就可以了 阅读全文
posted @ 2019-08-12 15:40 WeiAR 阅读(234) 评论(0) 推荐(0)
摘要:前缀数组O(n^3)做法 s.substr()的应用非常方便 阅读全文
posted @ 2019-07-29 10:52 WeiAR 阅读(204) 评论(0) 推荐(0)
摘要:poj2752找所有的前缀等于后缀,那就是找所有前缀等于后缀的前缀,递归再用栈存一下 阅读全文
posted @ 2019-07-10 19:43 WeiAR 阅读(112) 评论(0) 推荐(0)
摘要:poj1961主要是考察对next数组的理解,abaabaabaaba abaabaabaabaabaaba错开的部分便是循环节 7月29日更 如果n%(n-kmp[k])==0,那么n-kmp[k]便是循环节的长度,我来解释一下为什么 阅读全文
posted @ 2019-07-10 10:26 WeiAR 阅读(199) 评论(0) 推荐(0)
摘要:#include #include #include #include #include #include #include #include #include #include #define inf 2147483647 #define ls rt'9'){ if(c=='-')y=-1; c=g(); } while(c='0'){ ... 阅读全文
posted @ 2019-07-09 16:45 WeiAR 阅读(135) 评论(0) 推荐(0)
摘要:http://codeforces.com/gym/100623/attachments E题第一个优化它虽然是镜像对称,但它毕竟是一一对称的,所以可以匹配串和模式串都从头到尾颠倒一下第二个优化,与次数无关,所以排个序就完事了 1 #include<iostream> 2 #include<cstd 阅读全文
posted @ 2019-04-30 21:12 WeiAR 阅读(127) 评论(0) 推荐(0)
摘要:P2031 脑力达人之分割字串字符串dp,f[i]表示主串到第i个字符,最多能分割成多少子串。f[i]=max(f[i],f[k]+1);k是能匹配到的前一位。 阅读全文
posted @ 2017-10-29 09:50 WeiAR 阅读(233) 评论(0) 推荐(0)
摘要:P1279 字串距离一看就是字符串dp,然而并不会,骗分之后爆零了。以后dp题要好好想想转移方程。f[i][j]表示是a串选了前i个字符,b串选了前j个字符的距离。显然(QAQ)f[i][j]=min(min(f[i-1][j]+k,f[i][j-1]+k),f[i-1][j-1]+abs(a[i] 阅读全文
posted @ 2017-10-25 17:54 WeiAR 阅读(204) 评论(0) 推荐(0)
摘要:P1590 失踪的7进制转换的题目,如果把一个10进制的数当成9进制,相当于没有9这个数字,题目失踪了7,但是无所谓。如果当前的大于7,它就跳过了一个数字,向左移动1位。 阅读全文
posted @ 2017-10-24 07:49 WeiAR 阅读(539) 评论(0) 推荐(0)
摘要:P3719 [AHOI2017初中组]rexp一开始想的是类似计算式子的值的东西,用栈。然后发现处理最大值很麻烦,因为处理的很像子过程,所以考虑递归来做。碰到'('就递归一次,碰到'|'就取最大值再递归一次。 if(a=='(') { sum+=work(0); }要在 if(a==')') { r 阅读全文
posted @ 2017-10-23 12:01 WeiAR 阅读(464) 评论(0) 推荐(1)
摘要:P2246 SAC#1 - Hello World(升级版)典型的字符串dpf[i][j]表示a串匹配到i,b串匹配到j的方案数。if(a[i]==b[j])f[i][j]=f[i-1][j-1]+f[i-1][j];if(a[i]!=b[j])f[i][j]=f[i-1][j];显然可以用滚动数组 阅读全文
posted @ 2017-10-23 10:55 WeiAR 阅读(164) 评论(0) 推荐(0)
摘要:P2399 non hates math将分数化成小数的模拟题,把循环减掉就可以了。1.1(234)*10^4==11234.234*10^1==11.2349999*(1.1(234))==11223所以(1.1(234))==11223/9999 阅读全文
posted @ 2017-10-23 08:23 WeiAR 阅读(142) 评论(0) 推荐(0)
摘要:P1203 [USACO1.1]坏掉的项链Broken Necklace不错的断环为链的模拟题,开成三倍,有很多细节要考虑,比如总长度要<=n,开头第一个是w等等。 阅读全文
posted @ 2017-10-17 08:38 WeiAR 阅读(359) 评论(0) 推荐(0)
摘要:P2084 进制转换 注意处理末尾的0,否则会多输出+ 阅读全文
posted @ 2017-08-24 08:55 WeiAR 阅读(113) 评论(0) 推荐(0)
摘要:等价表达式 栈的经典题目,开两个栈,一个存符号,一个存数字; 分情况讨论: 1.如果当前读到的运算符优先级小于栈顶,就进行一次运算,直到大于等于; 2.如果读到数字用类似读入优化的方法读入进来; 3.如果当前符号为“(”则直接入栈; 4.如果当前符号为“)”则进行运算直到碰到“(”; 5.小技巧 在 阅读全文
posted @ 2017-08-05 09:59 WeiAR 阅读(564) 评论(0) 推荐(0)
摘要:void work(){ char c=getchar(); while(c=='\n') c=getchar(); while(c!='\n') { a[++len]=c; c=getchar(); }} 阅读全文
posted @ 2017-08-03 14:53 WeiAR 阅读(118) 评论(0) 推荐(0)