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

做消费信贷网站/网红营销

做消费信贷网站,网红营销,网站tag标签功能实现,wordpress左栏主题这是2013年长春区域赛的铜牌题。。。然而第一次做的时候一直觉得会超时的。。最后才知道并没有想象中的那么恐怖; 这题有两个注意的地方: (1)h[i] h[i-1] * seed s[i] - a 1;防止ab和aab的hash值相同;(后来感觉没必要&#xff…

这是2013年长春区域赛的铜牌题。。。然而第一次做的时候一直觉得会超时的。。最后才知道并没有想象中的那么恐怖;

这题有两个注意的地方:

(1)h[i] = h[i-1] * seed + s[i] - 'a' + 1;防止ab和aab的hash值相同;(后来感觉没必要,因为都是长度相等的串,但是长度不等的串就要注意了,所以还是写在这里吧);

(2)unsigned long long 会自动取模。所以即使乘上1e5次也不会爆orz。。这是组成原理的内容了。。我也是从别的大神那里听来的;

这到题的题意就是求有多少个连续的字子串,他由m*l个小子串组成,并且m个小子串两两互不完全相同,注意区分子串与小子串的概念;

思路是对每一个小子串赋予一个hash值,对于以ai开始的子串,如果他的小子串的hash值有m个不同值那么可以知道这个子串是符合要求的,ans++;

那么一次枚举子串的起始位置可不可以呢?可以看出肯定不行,o(n^2)的复杂度;

其实对于已经找到的一个子串,我们只需要除去他的最开头的那个小子串,加上它末尾后一个小子串,不断循环下去,就可以得到一系列的子串;

因此可以把原来的串分成l个系列,每一个系列中的子串,都是可以由第一个子串减去一个小子串,加上一个新子串得到;由此降到了o(n)的复杂度;

具体细节参考代码:

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
#include<map>
#define N 100005
#define lc rt<<1
#define rc rt<<1|1
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int maxn = 1e5+10;
const int seed = 31;char s[maxn];
int m,l;
int next[maxn];
ull h[maxn];
ull base[maxn];
map<ull, int> mp;ull string_hash(int l, int r)
{return h[r] - h[l-1]*base[r-l+1];//熟练掌握字符串哈希的写法,有点类似前缀和的思想;
}int main()
{//freopen("in","r",stdin);base[0] = 1;for(int i = 1; i < maxn; ++i) base[i] = base[i-1]*seed;//每一位的权重;while(~scanf("%d%d",&m,&l)){scanf("%s",s+1);int len = strlen(s+1);h[0] = 0;for(int i = 1; i <= len; ++i)h[i] = h[i-1]*seed + s[i] - 'a';//对整个字符串进行哈希;int ans = 0;for(int i = 1; i <= l&&i + m*l<= len; ++i)//注意循环条件的判断{mp.clear();for(int j = i; j < i + m*l ; j+=l){ull x = string_hash(j,j+l-1);//printf("%lld ",x);mp[x]++;}//printf("\n");if(mp.size() == m) ans++;//mp自带去重,好用啊!//printf("%d %d\n",i,ans);for(int j = i + m*l; j + l-1 <= len; j += l)//细细体会。。。。去头添尾;{ull x = string_hash(j,j+l-1);mp[x]++;ull y = string_hash(j-m*l,j-m*l+l-1);mp[y]--;if(mp[y] == 0) mp.erase(y);if(mp.size() == m) ans++;}}printf("%d\n",ans);}
}

 

转载于:https://www.cnblogs.com/Norlan/p/4886383.html

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

相关文章:

  • 网站2级目录怎么做/关键词推广排名软件
  • 河南科技网站建设/深圳发布最新通告
  • 株洲网站建设设计/新浪微指数
  • 如何在网盘上做网站/百度上海分公司
  • net网站开发技术方案/微信投放广告多少钱
  • 电商网页美工设计/seo管理平台
  • 做一名优秀网站设计师计划/简单网页制作成品免费
  • 源码网站跟自己做的网站区别/长沙seo管理
  • 建设银行纪念币网站/谷歌官方seo入门指南
  • 开发一个软件的流程/苏州关键词优化搜索排名
  • 宁夏住房和城乡建设厅门户网站/sem竞价托管代运营
  • 邮箱号怎么注册?/seo优化是啥
  • wordpress纯代码/泰安网站seo
  • 嘉兴制作网站企业/百度指数在线查询工具
  • 苏州做网站品牌公司/怎么做电商卖东西
  • 查看网站流量的工具/网络营销与策划试题及答案
  • 最简单的html代码/seo培训资料
  • 网页设计可以进怎样的公司/天津seo渠道代理
  • 西安做网站哪里便宜/代运营公司排行榜
  • js与asp.net做的网站/自己的网站怎么样推广优化
  • 番禺网站建设报价/最新国际军事动态
  • 网站开发毕设文献/广告代理公司
  • 超云建站/全自动推广引流软件免费
  • 郴州高椅岭/关键词的优化和推广
  • 代理商加盟项目网站/下载百度网盘app
  • 户外网站 整站下载/市场推广计划书
  • 网上做兼职做网站/网络公关公司联系方式
  • 如何做单位网站/深圳百度国际大厦
  • 做网站的收获及感想/网络seo优化推广
  • 现在还做自适应网站/seo蜘蛛屯
  • Matplotlib(六)- 坐标轴定制
  • tensorRT配合triton部署模型
  • 倒排索引:Elasticsearch 搜索背后的底层原理
  • JS--获取事件的子元素与父元素
  • 【BUUCTF系列】[SUCTF 2019]EasySQL1
  • Android UI 组件系列(九):ListView 性能优化与 ViewHolder 模式实战