题目大意:给一个字符串,求字符串的所有前缀的最小后缀;

思路:主要还是要理解Lyndon串的算法的整一个过程

参考:搬运来自

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <cstdlib>
#define INF 0x3f3f3f3f3f3f3f3f
#define inf 0x3f3f3f3f
#define FILL(a,b) (memset(a,b,sizeof(a)))
#define re register
#define lson rt<<1
#define rson rt<<1|1
#define lowbit(a) ((a)&-(a))
#define ios std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
#define fi first
#define rep(i,n) for(int i=0;(i)<(n);i++)
#define rep1(i,n) for(int i=1;(i)<=(n);i++)
#define se second
#define scd(a) scanf("%d",&a)
#define scdd(a,b) scanf("%d%d",&a,&b)
#define scddd(a,b,c) scanf("%d%d%d",&a,&b,&c)
#define ac cout<<ans<<"\n"
#define F(x) ((x)/3+((x)%3==1?0:tb))
#define G(x) ((x)<tb?(x)*3+1:((x)-tb)*3+2)
#define pb push_back
using namespace std;
typedef long long  ll;
typedef unsigned long long  ull;
typedef pair<ll,ll> pii;
int dx[4]= {-1,1,0,0},dy[4]= {0,0,1,-1};
const ll mod=1e9+7;
const ll N =2e6+10;
const ll M =250000;
const double eps = 1e-4;
//const double pi=acos(-1);
ll qk(ll a,ll b){ll ans=1;while(b){if(b&1) ans=(ans*a)%mod;a=(a*a)%mod;b/=2;}return ans%mod;}
int n;
int d[N];
char s[N];
void sovle(){cin>>(s+1);n=strlen(s+1);int i=1;d[1]=1;ll ans=0;while(i<=n){int j=i,k=i+1;while(k<=n&&s[j]<=s[k]){if(s[j]==s[k]) d[k]=d[j]+(k-j),j++;else {d[k]=i;j=i;}k++;}d[k]=k;while(i<=j) i+=k-j;}for(int i=n;i>=1;i--) ans=(ans*1112%mod+d[i])%mod;cout<<ans<<endl;
}
int main()
{
#ifdef LOCALfreopen("in.txt", "r", stdin);
#elseiosint t=1;cin>>t;while(t--) sovle();
#endif // LOCALreturn 0;
}

HDU.6761.Minimum Index(Lyndon分解)相关推荐

  1. 【杭电多校2020】Minimum Index【Lyndon Word】

    题意:给定字符串,求所有前缀的最小后缀. n≤2×107n\leq 2\times10^7n≤2×107 最小后缀就是Lyndon分解的最后一段.而Duval本质上是可以重复修改的增量算法,所以是可以 ...

  2. HDU 1385 Minimum Transport Cost

    HDU 1385 Minimum Transport Cost 我的WA代码 AC的代码 我的WA代码 我的大概思路就是,如果i->j,如果找到一个中间点k就直接简单的将path[i][j]=k ...

  3. lyndon分解学习笔记

    Problem - H - Codeforces 假模板题,b站看jls用一个叫lyndon分解的神仙算法秒杀了此题,于是去学了lyndon分解,结果自己写完发现随便造了个数据就hack掉了(顺便去b ...

  4. hdu 5511 Minimum Cut-Cut——分类讨论思想+线段树合并

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=5511 题意:割一些边使得无向图变成不连通的,并且恰好割了两条给定生成树上的边.满足非树边两段一定在给定生成 ...

  5. HDU 1394 Minimum Inversion Number(线段树的单点更新)

    点我看题目 题意 :给你一个数列,a1,a2,a3,a4.......an,然后可以求出逆序数,再把a1放到an后,可以得到一个新的逆序数,再把a2放到a1后边,,,,,,,依次下去,输出最小的那个逆 ...

  6. C#LeetCode刷题之#599-两个列表的最小索引总和​​​​​​​​​​​​​​(Minimum Index Sum of Two Lists)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3802 访问. 假设Andy和Doris想在晚餐时选择一家餐厅,并 ...

  7. [Swift]LeetCode599. 两个列表的最小索引总和 | Minimum Index Sum of Two Lists

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★ ➤微信公众号:山青咏芝(shanqingyongzhi) ➤博客园地址:山青咏芝(https://www.cnblog ...

  8. hdu 3473 Minimum Sum 划分树

    http://acm.hdu.edu.cn/showproblem.php?pid=3473 对于xl,xl+1--xr,使得[xi-x]和最小,显然x应当为其中的中位数.中位数可以通过求K大数解决, ...

  9. HDU 3473 Minimum Sum 【划分树】

    题目来源:http://acm.hdu.edu.cn/showproblem.php?pid=3473 ★没想到划分树里面也可以加东西,wcsl 题意: 给你一个由n个数组成的序列,有m次询问,每次询 ...

最新文章

  1. 统计csv词频_中文词频统计
  2. 02HTML标签(上)
  3. 深入理解PHP之isset和array_key_exists对比
  4. Boost:mighty bimap强大的双图的测试程序
  5. HashMap之扰动函数和低位掩码
  6. 音游android平板,音游专题 - 有时候听歌远远不够,试试这些音游吧 - Android 应用 - 【最美应用】...
  7. MySQL学习之路 一 : MySQL 5.7.19 源码安装
  8. struts2 传递json对象时的延迟加载异常处理方法
  9. PHP将swf转为gif,swf怎么转换成gif 怎么把swf转换成gif
  10. win10 修改hosts文件
  11. python爬虫实例(一) b站篇
  12. Mac 安装的虚拟机win10系统,设置拥有各自的桌面
  13. AI人工智能基础之高等数学必知必会-张勇-专题视频课程
  14. 谷歌浏览器启动页被篡改为hao.7654.com的解决办法
  15. 用计算机进行几何证明属于,湖南省计算机二级精选选择题1
  16. protal认证的稳定性测试脚本
  17. 计算机应用专业职业价值观,计算机应用技术专业大学生职业生涯规划书.doc
  18. JS逆向之国家企业信用信息公示系统Cookie传递
  19. iOS — 百度地图 使用
  20. penInfra峰会回归线下,彭博、沃尔沃、Adobe等用户将进行演讲交流

热门文章

  1. 豆瓣评分9.4!这一部纪录片,探秘中国人迹罕至的未至之境!
  2. 研究表明,胸大无脑是不存在的......
  3. 岛国小姐姐来例假时,男朋友背着她偷偷查手机......
  4. 一只蝙蝠的自述在朋友圈火了:千万不要再吃野味了!
  5. 两年了,你还是那个你 | 今日最佳
  6. 快速入门深度学习,其实并不难!
  7. 扎克伯格做了26张PPT,员工效率提10倍,已被疯狂传阅!
  8. modbus 台达a2_驱控智造未来 台达重磅发布多款工业自动化新品
  9. java threadsafe 注解_Java 注解详解
  10. laya 怎么生成签名_PHP开发API接口签名生成及验证