当前位置: 首页 > news >正文

网页设计与制作实验报告心得体会seo实战培训学校

网页设计与制作实验报告心得体会,seo实战培训学校,jsp网站开发用到什么技术,自己建网站服务器题意 : 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的 串”。例如,BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、 CBABCBA都是困难的串。程序从输入中读取多行数据&#…

题意 : 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的 串”。例如,BB、ABCDACABCAB、ABCDABCD都是容易的串,而D、DC、ABDAB、 CBABCBA都是困难的串。程序从输入中读取多行数据,每行包括两个整数n和L(即按此顺序给出),其中n > 0,L的范围是1 ≤ L ≤ 26。根据这些输入,程序要按照字母表升序打印出第n个“hard”字串(由字母表中的前L个字母构成),并在接下来的一行打印这个串的长度。按照上述规则,第一个串应该是“A”。对于给定的n和L,保证第n个“hard”串是一定存在的。比方说,当L = 3时,头7个“hard”字串为:

A
AB
ABA
ABAC
ABACA
ABACAB
ABACABA

 

分析 : 考虑使用深搜暴力一个个构造出合法的困难串,在深搜时按字典序考虑构造序列的每一位即可。但是有个难点,就是如何判断是否有重复?紫书给出了很好的解释=》一种方法是检查所有长度为偶数的子串,分别判断每个字串的前一半是否等于后 一半。尽管是正确的,但这个方法做了很多无用功。还记得八皇后问题中是怎么判断合法性 的吗?判断当前皇后是否和前面的皇后冲突,但并不判断以前的皇后是否相互冲突——那些 皇后在以前已经判断过了。同样的道理,我们只需要判断当前串的后缀,而非所有子串。换句话说就是在每判断一个位置的时候,我们只要枚举并检查含有新添加字母的偶数串合法后缀(也就是串的长度不要超过总长),就像书上说的,因为是一个个字母递增添加构造的,所以每一个都有和前面的进行判断,故只考虑当前而不考虑之前。

#include<bits/stdc++.h>
using namespace std;
int k, L;
char * letter = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
int ans;
bool check(char *temp, int last)
{for(int j=1; 2*j<=last+1; j++){//->learnbool Equal = true;for(int k=0; k<j; k++){if(temp[last-j+1+k] != temp[last-2*j+1+k]) {Equal = false;break;}//if(temp[last-k] != temp[last-k-j]) {Equal = false;break;}//也可以
        }if(Equal) return false;}return true;
}
int cnt = 0;
inline void DFS(int num, char *temp)
{if(ans!=-1) return ;if(cnt==k) { temp[num]='\0';ans=strlen(temp);return ; }for(int i=0; i<L; i++){if(ans!=-1) return ;temp[num] = letter[i];if(check(temp, num)){cnt++;DFS(num+1, temp);}}
}
int main(void)
{
//    freopen("in.txt", "r", stdin);
//    freopen("out.txt", "w", stdout);while(~scanf("%d %d", &k, &L) && (k&&L)){ans = -1, cnt = 0;char temp[82];DFS(0, temp);int blank = 0;int tot_group = 0;for(int i=0; i<ans; i++){if(i != 0 && i % 64 == 0)printf("\n");else if(i != 0 && i % 4 == 0)printf(" ");printf("%c", temp[i]);}printf("\n%d\n", ans);}return 0;
}
View Code

瞎想 : 在考虑八皇后或此类深搜回溯进行构造的时候,如果需要有一些结合前面判断状态是否可行,那就多想想是否只考虑构成当前状态的新因素和已构造出的东西就可以判断状态是否可行,因为此类一个个递增构造的,每构造一个状态出来就要判别一次,当前状态的判别就不用理会之前的状态了,因为在做重复工作。

转载于:https://www.cnblogs.com/LiHior/p/7160305.html

http://www.lbrq.cn/news/2539225.html

相关文章:

  • 装饰公司做宣传网站宣传推广的十种方式
  • 外贸免费开发网站建设网络推广公司排行榜
  • 网站建设广州市软文营销案例分析
  • 做网站选云服务器内核百度知道首页官网
  • 网站怎么做动态背景图片深圳网络推广培训学校
  • 网络推广方案包括哪些内容网络seo哈尔滨
  • 个人网站可以做品牌推广好的产品怎么推广语言
  • 服装公司电商网站建设规划广州seo顾问
  • 北京网站建设推广服务优化最狠的手机优化软件
  • jsp网站建设项目实战添加友情链接的技巧
  • 网站建设现在什么服务器比较好信息流广告接单平台
  • 秦皇岛短视频优化百度seo排名如何提升
  • 写作网企业网站排名优化
  • 深圳建设网站网站流量数据
  • 网站 建设 汇报广州营销课程培训班
  • 像做网站平台取什么名字好搜狗搜索推广
  • 南通制作网站产品宣传方案
  • 安徽专业做网站的大公司推荐几个靠谱的网站
  • wordpress搭建nich站全球网站排名前100
  • 厦门网站建设策划鼓楼网站seo搜索引擎优化
  • 政府网站建设的突出问题百度关键词排名联系方式
  • pr免费模板网站河北seo网络优化师
  • 企业做网站预付账款会计分录想做一个网站
  • 同ip多域名做网站手机营销软件
  • 做公司网站的平台搜索引擎营销的模式有哪些
  • 搜狐综合小时报2022113011超级优化大师
  • 做网站怎么电话约客户怎么在百度打广告
  • 产品宣传型企业网站怎么建设百度sem竞价
  • 省建设安全监督站的网站希爱力双效片骗局
  • 免费b站推广网址有哪些新手如何做网上销售
  • 6.1、Redis多级缓存原理和优化、Redis部分参数优化调整
  • PPT自动化 python-pptx - 9: 图表(chart)
  • 驾驶场景玩手机识别:陌讯行为特征融合算法误检率↓76% 实战解析
  • 【RK3568 RTC 驱动开发详解】
  • Python科研数据可视化技术
  • C#常见的转义字符