【Codeforces Gym】 100162G Lyndon Words
来源:互联网 发布:nginx php 张宴 编辑:程序博客网 时间:2024/05/01 09:29
大意:
一个字符串是合法的当且仅当这个字符串循环同构的其他串的字典序都比它大。例如”ababa”是不合法的,而”aabab”是合法的,”abab”是不合法的。输出长度小于等于n的由前m个字符构成的第l到第r个合法串。
数据范围:n <= 30, 2 <= m <= 26, 1 <= l <= r <= 10^7, r – l < 10^5.
Solution
暴力拓展,考虑压着边界拓展和偏离边界的拓展方式(边界即为和开头相同)
#include<stdio.h>#define cint const int &int a[35],n,m,L,R,cas;int dfs(cint dep,cint k,cint p){ int e=p==0?1:0; if (R<k+e) return 0; if (e && L<=k+e && k+e<=R) { for (int i=1;i<dep;i++) putchar(a[i]+'a'-1); putchar('\n'); } if (n<dep) return e; for (int i=1;i<=m;i++) { if ((a[dep]=i)==a[p+1]) e+=dfs(dep+1,k+e,p+1); else if (a[p+1]<a[dep]) e+=dfs(dep+1,k+e,0); } return e;}int main(){ a[0]=-233333333; while (~scanf("%d%d%d%d",&n,&m,&L,&R)) { int r=0; printf("Case %d:\n",++cas); for (int i=1;i<=m;i++) { a[1]=i; r+=dfs(2,r,0); } }}
0 0
- 【Codeforces Gym】 100162G Lyndon Words
- [Codeforces Gym] 100162G 爆搜+剪枝
- codeforces gym 100548G
- CodeForces Gym 100735G
- CodeForces Gym 100735G
- Codeforces-GYM-100923G
- codeforces [Gym-100814G]
- Codeforces Gym-101617G
- Codeforces gym 101350G 数学
- Codeforces gym 101149 G 想法
- Codeforces Gym 101164 G. Pokemons
- Codeforces Gym 100625G Getting Through
- codeforces Gym 100431G Persistent Queue
- Codeforces Gym 100543G Virus synthesis
- CodeForces Gym 100646G The Worm Turns
- 【模拟】NEERC15 G Generators (Codeforces GYM 100851)
- Gym 101341G I love Codeforces 模拟
- 【Codeforces Gym】100162 H Temperature
- Eclipse修改工程后项目无法启动
- JVM源码分析之Java类的加载过程
- SPF算法计算过程--例
- 基于flex弹性布局头尾固定,中间滚动效果实现
- 【算法和数据结构】1.8--数据结构之图(C++实现)
- 【Codeforces Gym】 100162G Lyndon Words
- Word中公式变量解释时破折号对齐方法
- Java8系列之重新认识HashMap
- 2005-《Anytime Dynamic A*: An Anytime, Replanning Algorithm》
- PKU 3468
- SpringBoot快速入门(一)
- Java网络爬虫--HTML DOM(HTML 基础)
- STM32L4超低功耗特性概述
- 函数:将网页提取的cookie转换成python用来模拟登录的cookie