摘要:
给一个字符串,求该字符串的所有前缀在该字符串中出现的次数 分析:首先,每个前缀都至少出现一次,然后,每次用kmp匹配成功的时候,都至少会匹配一个前缀,以abab举例,ab匹配成功的时候的,ab出现一次,如果是abababab呢,那么abab匹配到最后,还多 匹配了一次ab,那么也要计算上 1 #in 阅读全文
摘要:
一个循环的串,选出一个开始位置,使得顺序表示的字符串字典序最小 想到最小表示法,说多了都是泪 如果判断两个循环字符串是否相等,那么只要比较他们的最小表示法是否相等就行了 1 //s为扩展了一倍的字符串,l为字符串的原长度 2 int minrepress(char s[],int l){ 3 int 阅读全文
摘要:
本周训练主要训练的知识点主要是并查集,线段树,RMQ,树状数组的以及字典树,ac自动机,二分图,树上dp的复杂形势,lca 开始在刷acm step,刷到并查集的时候,几道题目都不会做,没有学习过并查集,然后看kuangbin并查集,挑战程序设计和红书例题,带权并查集什么的,很简单,切了 然后是二分 阅读全文
摘要:
题意:给定两个十进制数x,y(y>=x&&y<=1e15),求转化为k进制后(2<=k<=10),区间数按位求和 分析:看的高逸涵的论文,思路无外乎就是根据1到K^x-1之间0-(k-1)所有数字出现的次数相同,以此快速求解,然后划分区间,合并答案 想了解可以自己看一下论文,很详细 1 #inclu 阅读全文
摘要:
题意:统计区间内t=B^n+.....+B^0,每项系数都为0或1,统计1的个数恰好为1的情况,这样的数有多少个 分析:看的刘聪的论文,分析很好,http://pan.baidu.com/s/1pL4FF4n,转化为统计二叉树上1的个数代码写的有点糙 1 #include<bits/stdc++.h 阅读全文
摘要:
题意:区间内有多少任意两位差不小于2的 分析:任意两位差不小于2,那么要记录上一位选的是什么,还要注意上一位如果是前缀0的情况,再加一个标记,还要记录前面是否达到上限,然后就ok了 1 #include<bits/stdc++.h> 2 using namespace std; 3 const in 阅读全文
摘要:
题意:求区间内不包含4和连续62的数的个数 分析:从高位向低位枚举,4的话,直接不枚举就行了,62用一个标志来记录上一个数是否是6,还要加一个表示上面是否达到上限,没有就可以枚举到9,否则枚举到liimt[len] 入门题,这个模型以后会经常用到 1 #include<bits/stdc++.h> 阅读全文
摘要:
题意:r*c的矩阵上,初始全部为0,有3中操作,子矩阵全部增加v,子矩阵值修改为v,查询子矩阵的最大值,最小值,和 分析:因为有setv和addv两种操作,那么需要开两个数组记录这个值,每次需要用到一个节点的儿子,那么就把该节点的setv,addv信息推过去,并且setv的优先级要高于addv,不过 阅读全文