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

做求职网站服装网站网络建设和硬件资源

做求职网站,服装网站网络建设和硬件资源,今天的新闻是什么,外贸怎样做网站解析 通配符匹配的经典题。 设单词串为 AAA,文章串为 BBB。 把 AAA 翻转一下#xff0c;判断问题就能转化为一个卷积的形式#xff1a; F(p)i0m−1match(Ai1,Bp−i)F(p)\_{i0}^{m-1}match(A_{i1},B_{p-i})F(p)i0m−1​match(Ai1​,Bp−i​) match(a,b)match(…解析 通配符匹配的经典题。 设单词串为 AAA,文章串为 BBB。 把 AAA 翻转一下判断问题就能转化为一个卷积的形式 F(p)i0m−1match(Ai1,Bp−i)F(p)\_{i0}^{m-1}match(A_{i1},B_{p-i})F(p)i0m−1​match(Ai1​,Bp−i​) match(a,b)match(a,b)match(a,b) 表示 a,ba,ba,b 两个字符是否互相匹配。 但是这么丑的东西显然难以优化我们需要更优美的表达形式。 考虑且运算的性质我们需要一个非法就能检测出非法那么我们考虑利用平方的非负性设计一个函数 C(a,b)(a−b)2C(a,b)(a-b)^2C(a,b)(a−b)2把函数改写成 F(p)∑i0m−1C(Ai1,Bp−i)F(p)\sum_{i0}^{m-1}C(A_{i1},B_{p-i})F(p)i0∑m−1​C(Ai1​,Bp−i​) 位置合法当且仅当对应函数值为0把平方拆开分别算再加起来即可。 现在考虑如何加入通配符。 只要 a,ba,ba,b 中有任意一个是通配符就应该是合法的。 利用 000 乘任何数都是 000 的性质对于 CCC 函数进行微调 C(a,b)(a−b)2jd(a)jd(b)C(a,b)(a-b)^2jd(a)jd(b)C(a,b)(a−b)2jd(a)jd(b) 其中 jd(a)jd(a)jd(a) 表示字符 aaa 是否不是 *。 这样就可以卷起来算了。 代码 #includebits/stdc.h using namespace std; #define ll long long #define ull unsigned long long #define debug(...) fprintf(stderr,__VA_ARGS__) inline ll read() {ll x(0),f(1);char cgetchar();while(!isdigit(c)) {if(c-)f-1;cgetchar();}while(isdigit(c)) {x(x1)(x3)c-0;cgetchar();}return x*f; } const int N2e6100; const int mod998244353; int n,m,k; inline ll ksm(ll x,ll k){ll res1;while(k){if(k1) resres*x%mod;xx*x%mod;k1;}return res; } int r[N]; void init(int n,int lim){lim1;int L0;while(limn) lim1,L;for(int i1;ilim;i) r[i](r[i1]1)|((i1)(L-1)); } void NTT(ll *x,int lim,int op){for(int i0;ilim;i) if(ir[i]) swap(x[i],x[r[i]]);for(int l1;llim;l1){ll wksm(3,(mod-1)/(l1));if(op-1) wksm(w,mod-2);for(int st0;stlim;st(l1)){for(ll i0,now1;il;i,nownow*w%mod){ll ux[sti],vnow*x[stil]%mod;x[sti]uvmod?uv-mod:uv;x[stil]u-v0?u-vmod:u-v;}}}if(op-1){ll niksm(lim,mod-2);for(int i0;ilim;i) x[i]x[i]*ni%mod;}return; } void copy(ll *a,ll *b,int n,int lim){assert(nlim);memcpy(a,b,sizeof(ll)*n);fill(an,alim,0);return; } void mul(ll *a,ll *b,ll *c,int n,int m){static ll u[N],v[N];static int lim;//for(int i0;in;i) printf(%lld ,a[i]);putchar(\n);//for(int i0;im;i) printf(%lld ,b[i]);putchar(\n);init(nm-1,lim);copy(u,a,n,lim);copy(v,b,m,lim);NTT(u,lim,1);NTT(v,lim,1);for(int i0;ilim;i) c[i]u[i]*v[i]%mod;NTT(c,lim,-1);//for(int i0;inm-1;i) printf(%lld ,c[i]);putchar(\n);//putchar(\n);return; } void inv(ll *h,ll *f,int n){static ll t1[N],t2[N];static int lim;if(n1){f[0]ksm(h[0],mod-2);return;}inv(h,f,(n1)1);init(n1,lim);fill(f((n1)1),flim,0);copy(t1,f,n,lim);copy(t2,h,n,lim);NTT(t1,lim,1);NTT(t2,lim,1);for(int i0;ilim;i) t1[i](2*t1[i]-t1[i]*t1[i]%mod*t2[i]%modmod)%mod;NTT(t1,lim,-1);memcpy(f,t1,sizeof(ll)*n);return; } //499122177 void Sqrt(ll *h,ll *f,int n){static ll t1[N],t2[N];static int lim;if(n1){f[0]1;return;}Sqrt(h,f,(n1)1);init(n1,lim);fill(f((n1)1),flim,0);inv(f,t1,n);fill(t1n,t1lim,0);mul(h,t1,t1,n,n);copy(t2,f,n,lim);NTT(t1,lim,1);NTT(t2,lim,1);for(int i0;ilim;i) t1[i](t1[i]t2[i]%mod)*499122177%mod;NTT(t1,lim,-1);memcpy(f,t1,sizeof(ll)*n);return; } void dao(ll *h,ll *f,int n){static ll t[N];static int lim;init(n1,lim);copy(t,h,n,lim);f[n-1]0;for(int i0;in-1;i) f[i]t[i1]*(i1)%mod;fill(fn,flim,0);return; } void jifen(ll *h,ll *f,int n){static ll t[N];static int lim;init(n1,lim);copy(t,h,n,lim);f[0]0;for(int i1;in;i) f[i]h[i-1]*ksm(i,mod-2)%mod;fill(fn,flim,0); } void Ln(ll *h,ll *f,int n){static ll t1[N],t2[N];static int lim;init(n1,lim);inv(h,t1,n);fill(t1n,t1lim,0);dao(h,t2,n);mul(t1,t2,t1,n,n);jifen(t1,f,n);return; } void Exp(ll *h,ll *f,int n){static ll t1[N],t2[N],t3[N];static int lim;if(n1){f[0]1;return;}Exp(h,f,(n1)1);init(n1,lim);fill(f((n1)1),flim,0);copy(t1,f,n,lim);copy(t2,h,n,lim);Ln(f,t3,n);fill(t3n,t3lim,0);NTT(t1,lim,1);NTT(t2,lim,1);NTT(t3,lim,1);for(int i0;ilim;i) t1[i]t1[i]*(1t2[i]-t3[i]mod)%mod;NTT(t1,lim,-1);memcpy(f,t1,sizeof(ll)*n);return; } ll a[N],b[N],c[N],res[N]; bool x[N],y[N]; char s1[N],s2[N]; int ans[N],tot; signed main() { #ifndef ONLINE_JUDGE//freopen(a.in,r,stdin);//freopen(a.out,w,stdout); #endif //printf(%d\n,sizeof(a1)/1024/1024);mread();nread();scanf( %s %s,s11,s21);for(int l1,rm;lr;l,r--) swap(s1[l],s1[r]);for(int i1;im;i) x[i](s1[i]!*),s1[i]-a-1;for(int i1;in;i) y[i](s2[i]!*),s2[i]-a-1;for(int i1;im;i) a[i]s1[i]*s1[i]*x[i];for(int i1;in;i) b[i]y[i];mul(a,b,c,m1,n1);for(int i1;in1;i) res[i]c[i];for(int i1;im;i) a[i]x[i];for(int i1;in;i) b[i]s2[i]*s2[i]*y[i];mul(a,b,c,m1,n1);for(int i1;in1;i) res[i]c[i];for(int i1;im;i) a[i]s1[i]*x[i];for(int i1;in;i) b[i]s2[i]*y[i];mul(a,b,c,m1,n1);for(int i1;in1;i) res[i]-2*c[i];for(int pm;pn;p) if(res[p1]0) ans[tot]p-m1;printf(%d\n,tot);for(int i1;itot;i) printf(%d ,ans[i]);return 0; } /* 4 0 1 1 */
http://www.pierceye.com/news/274827/

相关文章:

  • 个人网站域名名字wordpress文章页获取目录名称
  • 新公司做网站有效果吗seo推广营销公司
  • 做网络推广要做网站吗网站建设首页模板
  • 陕西网站设计高端网站设计公司名单
  • 建设网站企业公众号wordpress
  • 个人的小说网站如何做北京网站制作收费标准
  • 做海报的素材哪个网站微信如何创建自己的公众号
  • 怎样进行网站后台管理网站内容做淘宝店铺链接影响排名吗
  • 重庆网站编辑职业学校苏州企业网站制作开发
  • 手机网站和电脑网站一样吗wordpress页面镶入文章
  • 深圳个人如何做网站设计用asp做网站题目
  • 视频做网站基础型网站
  • 企业网站外包建设长沙工商注册网上登记
  • 网站建设的费用是多少钱mysql php wordpress
  • 扫二维码做自己网站上海工商注册网官网
  • 阿里云做网站需要些什么软件做一个网站花费多少钱
  • 游戏充值网站怎么做网站被挂马怎么办
  • 电白网站建设代理平台手游
  • 如何让自己做的网页有网站吴江区城乡建设管理局网站
  • 江山网站设计建设银行住房公积网站
  • 网站建设需要注意哪些事项西宁哪里做网站
  • 那个网站做教学视频潍坊市城市建设官网站
  • 建网站有多少种方式玉林市网站开发公司
  • 微网站制作工具龙华新区网站建设
  • 一般做网站需要多少钱怎么免费制作公司网页
  • 网站主机空间网页模板是什么
  • 什么网站做美式软装设计方案深圳网站设计公司费用是
  • 网站制作+网站建设郑州网站建设公司电话多少
  • 网站建设市场需求分析谷歌浏览器最新版本
  • 做网站营销公司做辅食网站