个中模板

学习jjh同学搞个模板集合

后缀数组:

 1 int n,m;  char s[310000];
 2 int rank[310000];
 3 int cnt[310000],cnt_rank[310000];
 4 int rank1[310000],rank2[310000];
 5 int SA[310000],tempSA[310000];//应该是桶
 6 void get_suffix_rank(){
 7     memset(cnt,0,sizeof(cnt));
 8     //以下是对单个字母排序
 9     for(int i=0;i<n;i++)  cnt[s[i]]++;//计数
10     for(int i=‘a‘;i<=‘z‘;i++)  cnt[i]+=cnt[i-1];//把计数堆起来,这样后面搞名次直接用这个堆起来的数就行了
11     for(int i=0;i<n;i++)  rank[i]=cnt[s[i]]-1;//这里搞了个‘$‘,所以要-1,让‘$‘的名次为0
12     //因为名次是堆出来的,所以这个版本a,b,a,a对应的名次是1,4,1,1(单个字符名次)(不知道其他版本是不是一。一)
13     for(int l=1;l<n;l*=2){//倍增长度
14         for(int i=0;i<n;i++){//搞出rank[1]和rank[2]
15             rank1[i]=rank[i];
16             rank2[i]=(i+l<n) ? rank[i+l] : 0;
17         }
18         //基数排序排rank1和rank2
19         memset(cnt_rank,0,sizeof(cnt_rank));
20         for(int i=0;i<n;i++)  cnt_rank[rank2[i]]++;
21         for(int i=1;i<n;i++)  cnt_rank[i]+=cnt_rank[i-1];//还是堆名次
22         for(int i=n-1;i>=0;i--)  tempSA[--cnt_rank[rank2[i]]]=i;//应该是进桶
23         memset(cnt_rank,0,sizeof(cnt_rank));
24         for(int i=0;i<n;i++)  cnt_rank[rank1[i]]++;
25         for(int i=1;i<n;i++)  cnt_rank[i]+=cnt_rank[i-1];
26         for(int i=n-1;i>=0;i--)  SA[--cnt_rank[rank1[tempSA[i]]]]=tempSA[i];//rank1[tempSA[i]]应该相当于出桶
27         rank[SA[0]]=0;
28         for(int i=1;i<n;i++){
29             rank[SA[i]]=rank[SA[i-1]];
30             if(rank1[SA[i]]!=rank1[SA[i-1]] || rank2[SA[i]]!=rank2[SA[i-1]])  rank[SA[i]]++;
31         }
32     }
33 }
34 int main(){freopen("ddd.in","r",stdin);
35     cin>>n;
36     char ch=getchar();  while(ch<‘a‘||ch>‘z‘)  ch=getchar();
37     for(int i=0;i<n;i++){  s[i]=ch;  ch=getchar();}
38     s[++n]=‘$‘;//这应该是个记号,让a比a$小
39     get_suffix_rank();

时间: 2024-10-22 17:43:50

个中模板的相关文章

Django的模板系统

模板系统介绍 模板系统的组成:HTML代码和逻辑控制代码 逻辑控制代码可以理解是django模板语言 django的模板语言组成 变量(使用双大括号来引用变量): 标签(tag)的使用(使用大括号和百分比的组合来表示使用tag) 模板继承 模板语言之变量 语法: {{var_name}} var_name 指变量名 使用模板语言之前: 先介绍template对象和Context对象 进入django的项目的交互环境 python manange.py shell >>> from dja

Django项目实践2 - Django模板(常用语法规则)

http://blog.csdn.net/pipisorry/article/details/45727309 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签及属性]} Django 模板标签 if/else 标签 1. 基本语法格式如下: {% if condition %} ... display {% endif %} 或者: {% if condition1 %} ... display 1 {% elif con

第四章:Django 的模板系统(转)

在之前的章节中,你可能觉得例子中视图返回文本有点不妥.即是, HTML 是直接写在 Python 代码中的. 这种做法会导致这些问题: 要做任何设计上的更改就必须改写 Python 代码.网站的设计风格的更变一般来说会比更改后台的 Ptyhon 代码来得频繁,因此如果能够更改设计而不用更改 Python 变得尤为方便. 2 Python 代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML/CSS 编写人员都不应

Python+Django+SAE系列教程10-----Django模板

在本章中,我们开始模板,在前面的章节,您可能已经注意到,我们回到文本的方式有点特别的示例视图. 那.HTML直接在硬编码 Python 其中代码. 这的确是一个小BT. def current_datetime(request): now = datetime.datetime.now() html = "<html><body>It is now %s.</body></html>" % now return HttpResponse(

矿业大学论文模板

main.tex 1 \documentclass[preprint,authoryear,PhD]{cumtthesis} 2 \usepackage{fancyvrb}%----------------------------------------------------------用于代码排版 3 \DefineVerbatimEnvironment{shell}{Verbatim}% 4 {frame=single,framerule=0.3mm,rulecolor=\color{re

Django模板系统详解

你可能已经注意到我们在例子视图中返回文本的方式有点特别.也就是说,HTML被硬性地直接写入 Python代码之中. 这种处理会导致一些问题: § 对页面设计的进行任何改变都必须对 Python代码进行相应的修改.站点设计的修改往往比底层Python代码的修改要频繁得多,因此如果可以在不进行 Python代码修改的情况下变更设计,那将会方便得多. § Python代码编写和 HTML 设计是两项不同的工作,大多数专业的网站开发环境都将他们分配给不同的人员(甚至不同部门)来完成.设计人员和 HTML

2016/6/1 第九届ACM大赛前夕模板总结

 一.最小生成树...............................................................................................................2 1.最小生成树:v + v + value布线问题.................................................................2 3.prim算法之矩阵类型......................

Django项目实践2 - Django模板

http://blog.csdn.net/pipisorry/article/details/45061511 上篇:Django项目实践1 - 创建Django项目 Django模板 {视图和模板对逻辑和显示进行了分隔} 上面是使用 django.http.HttpResponse() 来输出"Hello World!".该方式将数据与视图混合在一起,不符合Django的MVC思想.或者HTML被直接硬编码在 Python 代码之中. html = "<html>

Django模板常用语法规则

Django 模板标签 if/else 标签 for 标签 ifequal/ifnotequal 标签 注释标签 过滤器 include 标签 URL标签 模板继承   if/else 标签1. 基本语法格式如下:{% if condition %} ... display{% endif %}或者: {% if condition1 %} ... display 1{% elif condiiton2 %} ... display 2{% else %} ... display 3{% end