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

合肥做兼职网站设计游戏开发工程师是什么专业

合肥做兼职网站设计,游戏开发工程师是什么专业,wordpress集成后台无法登录,泰国做性的短视频网站题目#xff1a; 样例解释#xff1a; 【样例 #1 解释】 从 (1,1) 出发将走 2 步#xff0c;从 (1,2) 出发将走 4 步#xff0c;从 (1,3) 出发将走 4 步。 从 (2,1) 出发将走 2 步#xff0c;从 (2,2) 出发将走 3 步#xff0c;从 (2,3) 出发将走 3 步。 从 (3,1) 出发将…题目 样例解释 【样例 #1 解释】 从 (1,1) 出发将走 2 步从 (1,2) 出发将走 4 步从 (1,3) 出发将走 4 步。 从 (2,1) 出发将走 2 步从 (2,2) 出发将走 3 步从 (2,3) 出发将走 3 步。 从 (3,1) 出发将走 1 步从 (3,2) 出发将走 1 步从 (3,3) 出发将走 1 步。 共计 21 步。   思路 先考虑O(nkw)O(nkw)的30分暴力。 显然每个维度上走过的位置是一个区间。 只要走的步数确定那么这个区间关于起点位置的相对位置也就确定了。 只要先算出每个循环向左/右所走的最远距离以及一个循环的移位即可。 这样考虑一个算法 枚举走了多少步结束并算出贡献就是算出满足条件的起点数目。 先枚举走出区域的上一步走到了循环节中的哪个位置以及走了多少循环节。 由于不能走出区域于是可以根据每个维度的区间来算出这个维度的起点所在区间。 设下一步修改的维度为cc。根据对应的dd容易算出这个维度的起点位置。 那么这个位置必须在起点区间内。 满足这个条件的基础上把其他维度的起点区间长度相乘就是起点数目。 考虑优化 这个算法的主要瓶颈在于对循环节数的枚举。 设走过的循环节数目为xx。 那么不难发现每个维度的区间的相对位置即左右端点与起点的距离是关于xx的一次函数。 由于这一维度的方案数等于w1w1减去区间长度因此这也是关于xx的一次函数。 根据这个区间长度为正数可以得出xx的取值范围。 同时维度cc的起点位置也是关于xx的一次函数。 根据这个位置必须在起点区间内部进一步缩小xx的取值范围。 这样答案就是对于每个xx这些一次函数在xx处的值的乘积的和。 暴力进行多项式乘法并用自然数幂前缀和即可。 时间复杂度O(nk2)O(nk2)。 注意这个写法可能要对x0x0进行特判。   代码 #include stdio.h #define inf 1999999999 #define md 1000000007 #define min(a,b) ab?a:b #define max(a,b) ab?a:b int az[12],al[12],ar[12],w[12],aa[500010][12]; int B[12],C[500010],D[500010],la[500010][12],ra[500010][12]; int ksm(int a,int b) {int jg1;while(b0) {if(b1)jg1ll*jg*a%md;a1ll*a*a%md;b(b1);}return jg; } int Cc[12][12],xs[12][12]; void GetB(int k)//伯努利数 {B[0]1;for (int i1;ik1;i) {for (int j0;ji;j) {if(j0||ji)Cc[i][j]1; else Cc[i][j](Cc[i-1][j]Cc[i-1][j-1])%md;}}for (int i1;ik;i) {int h0;for (int j0;ji;j)h(h1ll*Cc[i1][j]*B[j])%md;B[i]1ll*(md-h)*ksm(i1,md-2)%md;}for (int i1;ik;i) {int nyksm(i1,md-2);for (int j0;ji;j)xs[i][i1-j]1ll*Cc[i1][j]*B[j]%md*ny%md;} } struct SLi//一次函数 {int k,b;SLi() {}SLi(int K,int B) {kK;bB;}SLi(int Z) {k0;bZ;} }; SLi operator-(const SLi x,const SLi y) {return SLi(x.k-y.k,x.b-y.b); } int Sum(int k,int n) {if(k0)return n1;int jg0;for (int i0,j1;ik1;i) {jg(jg1ll*j*xs[k][i])%md;j1ll*j*(n1)%md;}return jg; } struct DXS//多项式 {int sz[12],n;void operator(const DXS a) {na.n;for (int i0;in;i)sz[i]a.sz[i];}void clear() {for (int i1;i10;i)sz[i]0;sz[0]1;n0;}int sum(int l,int r) {int ans0;for (int i0;in;i) {int t(Sum(i,r)-Sum(i,l-1)md)%md;ans(ans1ll*sz[i]*t)%md;}return ans;} }; DXS operator*(const DXSx,const SLiy) {DXS rt;rt.nx.n1;rt.sz[rt.n]0;for (int i0;ix.n;i)rt.sz[i]1ll*y.b*x.sz[i]%md;for (int i0;ix.n;i)rt.sz[i1](rt.sz[i1]1ll*y.k*x.sz[i])%md;return rt; } struct SQj//维护区间 {int l,r;SQj() {}SQj(int L,int R) {lL;rR;} }; SQj jiao(const SQja,const SQjb) {return SQj(max(a.l,b.l),min(a.r,b.r)); } int floor(int,int); int ceil(int x,int y) {if(y0)x-x,y-y;if(x0)return (xy-1)/y;return -floor(-x,y); } int floor(int x,int y) {if(y0)x-x,y-y;if(x0)return x/y;return -ceil(-x,y); } SQj Less(SLi a,SLi b) {int xa.k-b.k,yb.b-a.b;if(x0)return y0?SQj(-inf,inf):SQj(inf,-inf);if(x0)return SQj(-inf,floor(y,x));return SQj(ceil(y,x),inf); } SQj More(SLi a,SLi b) {int xa.k-b.k,yb.b-a.b;if(x0)return y0?SQj(-inf,inf):SQj(inf,-inf);if(x0)return SQj(ceil(y,x),inf);return SQj(-inf,floor(y,x)); } int cal0(int n,int i,int k) {int l[12],r[12],jg1;for (int c1;ck;c)l[c]la[i][c],r[c]ra[i][c];for (int c1;ck;c) {int zl1-l[c],zrw[c]-r[c];if(c!C[(i1)%n]) {int szr-zl1;if(s0)s0;jg1ll*jg*s%md;} else {int taa[i][c],s0;if(D[(i1)%n]1) {int ow[c]-t;if(ozlozr)s1;} else {int o1-t;if(ozlozr)s1;}jg1ll*jg*s%md;}}return 1ll*(i2)*jg%md; } int main() {int n,k;scanf(%d%d,n,k);GetB(k);for (int i1;ik;i)scanf(%d,w[i]);for (int i0;in;i) {scanf(%d%d,C[i],D[i]);if(i0) {for (int j1;jk;j)aa[i][j]aa[i-1][j];}aa[i][C[i]]D[i];//循环节中某一前缀的偏移量az[C[i]]D[i];if(az[C[i]]al[C[i]])//最左移位al[C[i]]az[C[i]];if(az[C[i]]ar[C[i]])//最右移位ar[C[i]]az[C[i]];for (int j1;jk;j) {la[i][j]al[j];ra[i][j]ar[j];}}bool zdfalse;for (int i1;ik;i) {if(az[i]!0||ar[i]-al[i]w[i]) {zdtrue;break;}}if(!zd)//走不出去 {printf(-1);return 0;}int ans1;for (int i1;ik;i) {if(i!C[0])ans1ll*ans*w[i]%md;}for (int i0;in;i) {ans(anscal0(n,i,k))%md;//特殊处理x0的情况SLi l[12],r[12],d[12];for (int c1;ck;c)//算出对应维度的一次函数 {if(az[c]0) {l[c]al[c];int taz[c]ra[i][c];if(ar[c]t)tar[c];r[c]SLi(az[c],t-az[c]);} else {r[c]ar[c];int taz[c]la[i][c];if(al[c]t)tal[c];l[c]SLi(az[c],t-az[c]);}d[c]r[c]-l[c];}int tcC[(i1)%n];SLi o;SLi tzSLi(az[tc],aa[i][tc]);if(D[(i1)%n]1)ow[tc]-tz; else o1-tz;SLi zl1-l[tc],zrw[tc]-r[tc];//tc这一维度起点的范围SQj qjjiao(More(o,zl),Less(o,zr));//tc这一维度起点是确定的需要满足条件for (int i1;ik;i) {d[i]w[i]-d[i];qjjiao(qj,More(d[i],1));//方案数0}qjjiao(qj,SQj(1,inf));if(qj.lqj.r)continue;DXS ji;ji.clear();jiji*SLi(n,i2);for (int c1;ck;c)//对应维度相乘 {if(c!tc)jiji*d[c];}ans(ansji.sum(qj.l,qj.r))%md;}printf(%d,(ans%mdmd)%md);return 0; }
http://www.dnsts.com.cn/news/63549.html

相关文章:

  • 网站建设方案详解百度站长工具怎么推广网站
  • 小学门户网站建设中国国家住房和城乡建设部网站首页
  • 后台网站模板 html襄阳网站建设的公司
  • wordpress 直播网站吗设计常用的几个软件
  • 网站建设软件定制开发app定制开发的公司
  • 百度快照 查看指定网站商务网站建设策划书2000字
  • 企业网络营销网站线上商城是什么软件
  • 还没有做网站可以先备案域名吗高端 网站
  • 怎么做网站动图网站策划制作公司
  • 预约网站制作安徽淮北发现一例
  • 域名备案网站备案网站建设硬件设备
  • 青岛网站建设与设计制作宝安建网站
  • 旅游公司网站难做吗制作游戏的网站
  • 网站制作零基础学习2345官网
  • 做搜狗网站优化点击软网站建设的理由
  • 网站建设吴江网站生成器怎么做
  • 做化工类网站内容为什么选php语言做网站
  • 建网站的每年有费用建设网站目的及功能定位是什么
  • 网站开发流程详解套模板做网站电话
  • 投放广告的网站南宁在哪里可以做网站
  • 余姚本地网站排名页游排行榜2022
  • 界面漂亮的网站网站备案证书在哪里下载
  • 长宁建设机械网站水产食品企业网站模板
  • 设计网站外网网站权重高+做别的关键词
  • wap建站教程网站建设项目目标描述
  • 新密网站建设我赢seo
  • 济南市住房建设网站网站如何带来流量
  • 腾讯广告投放端提供的建站工具有有哪些网站是cms
  • 房地产公司网站源码深圳十大品牌策划公司
  • dede手机网站360网址导航上网