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

wordpress多网站建设广东省建设行业统一身份认证平台

wordpress多网站建设,广东省建设行业统一身份认证平台,公司注册免费吗,企业为什么要做建站从题解的角度来说,这是一道简单题。不过考场上在没有任何人提示的情况下要想出正确的结论其实并不容易。 我自己做这道题的时候,因为没有想清楚题目给出的下界能取到的充要条件是什么,所以到了很晚才猜到结论,以至于难以为继。 …

从题解的角度来说,这是一道简单题。不过考场上在没有任何人提示的情况下要想出正确的结论其实并不容易。

我自己做这道题的时候,因为没有想清楚题目给出的下界能取到的充要条件是什么,所以到了很晚才猜到结论,以至于难以为继。

结论:当且仅当一个排列不含有长度为333的下降子序列,冒泡排序的交换次数取到下界。这也非常好理解,因为如果一个位置存在前面一个数比它大,后面一个数比它小,那么至少会向左/向右移动一次,因此取不到下界。

证明需要运用Dilworth\text{Dilworth}Dilworth定理,我们可以把原序列划分成两个上升子序列 ,其中一个子序列的数只会往左移,另一个子序列的数只会往右移,然后就证完了。

先不考虑字典序的限制。我们将限制转化一下,变成不存在一个位置iii,使得存在前面的一个数比它大,后面的一个数比它小。这直接导出了下面的dpdpdp:设dpi,jdp_{i,j}dpi,j表示前iii个位置,最大值为jjj的方案数。如果[1:i−1][1:i-1][1:i1]的最大值为jjj,那么pip_ipi只能是[1:j][1:j][1:j]中没填的最小的那一个,方案数dpi−1,jdp_{i-1,j}dpi1,j。否则,若[1:i−1][1:i-1][1:i1]最大值为k(k<j)k(k<j)k(k<j),那么pip_ipijjj总是合法的。那么,dpi,j=∑k≤jdpi−1,k(i≤j)dp_{i,j}=\sum_{k\le j}dp_{i-1,k}(i\le j)dpi,j=kjdpi1,k(ij) 。我们发现这就是从(1,1)(1,1)(1,1)走到(n,n)(n,n)(n,n)且不穿过对角线x=yx=yx=y的方案数,也就是(2nn)−(2nn−1)\binom{2n}{n}-\binom{2n}{n-1}(n2n)(n12n)

回到原题,我们枚举lcp\text{lcp}lcp,然后就变成了求从(i,j)(i,j)(i,j)走到(n,n)(n,n)(n,n)的方案数,同样可以组合数计算。然后就做完了。

复杂度O(n)O(n)O(n)

#include<bits/stdc++.h>
#define ll long long
#define pb push_back
using namespace std;
const int mod=998244353;
const int N=2e6+5;
int T,n,p[N],vs[N];
ll fac[N],inv[N],bit[N],res;
void add(ll &x,ll y){x=(x+y)%mod; 
}
ll fpow(ll x,ll y=mod-2){ll z(1);for(;y;y>>=1){if(y&1)z=z*x%mod;x=x*x%mod;}return z;
}
void init(int n){fac[0]=1;for(int i=1;i<=n;i++)fac[i]=fac[i-1]*i%mod;inv[n]=fpow(fac[n]);for(int i=n;i>=1;i--)inv[i-1]=inv[i]*i%mod;
}
ll binom(ll x,ll y){return fac[x]*inv[y]%mod*inv[x-y]%mod;
} 
ll G(int a,int b,int c,int d){if(c>=a&&d>=b)return binom(c+d-a-b,c-a);return 0;
}
ll F(int a,int b,int c,int d){if(c>=a&&d>=b&&b>=a){return G(a,b,c,d)-G(b+1,a-1,c,d);}return 0;
}
int main(){    ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);init(2e6);cin>>T;while(T--){cin>>n;for(int i=1;i<=n;i++)cin>>p[i],vs[i]=0;res=0;int tp=0,j=1;for(int i=0;i<n;i++){add(res,F(i,max(tp,p[i+1])+1,n,n));while(j<=n&&vs[j])j++;if(j<tp&&j>p[i+1]){add(res,F(i+1,tp,n,n));}if(p[i+1]<tp&&p[i+1]!=j){break;}tp=max(tp,p[i+1]);vs[p[i+1]]=1;}cout<<(res+mod)%mod<<"\n";}
}
http://www.yayakq.cn/news/626061/

相关文章:

  • 帮公司做网站的外包公司九牛科技网站开发微信营销
  • 做ppt找图片在哪个网站好接推广是什么意思
  • jsp做网站怎么打开甘肃省城乡与住房建设厅网站
  • 爱聊网站郑州直播app开发
  • 成都网站优化教程docker wordpress安装
  • 淄博高端网站建设公司flash 做ppt的模板下载网站
  • 如何建网站赚钱php如何做音乐网站
  • 网站建设糹金手指花总wordpress主题用什么设计
  • 深圳市国外网站建设服务机构php网站开发 实战教程
  • 那种导航网站软装设计公司网站
  • 帝国建设网站建设银行网站扫码支付在哪里
  • 做投标的网站网页微信版官方下载
  • 如何做网站产品经理网站建设文化事业建设费
  • 淘宝做店招的网站网站建设与营销服务
  • 烟台网站排名优化梧州做网站建设
  • 通信工程企业网站建设深圳网站建设骏域网站建设
  • 公司英文网站建设WordPress 百度分享代码
  • 怎么给网站做自适应网站设置请求桌面网站
  • 网站设计基本步骤wordpress收费主题激活
  • 安全狗iis版删了以后 网站打不开网站开发者模式下载视频教程
  • 南昌网站设计网站开发制作网站公司选 择乐云seo
  • 如何制作一个单页网站怎么做网站免费的教程
  • 网站建设公告保定网站设计网站
  • 网站 关键字 标签怎么用阿里云做网站
  • 网站绩效营销一分钟建站
  • 河南省住建厅网站豫建设标艾艺的品牌网站设计
  • 如何选择郑州网站建设互联网技术培训学校
  • 学校网站查询宁波网络营销网站建设
  • 淘宝客 网站备案网站开发语言有哪几种
  • 青岛 网站科技公司网建科技北京有限公司