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

学院网站建设功能百度seo sem

学院网站建设功能,百度seo sem,南宁开发公司,大连建设网水电煤气费查询网从题解的角度来说,这是一道简单题。不过考场上在没有任何人提示的情况下要想出正确的结论其实并不容易。 我自己做这道题的时候,因为没有想清楚题目给出的下界能取到的充要条件是什么,所以到了很晚才猜到结论,以至于难以为继。 …

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

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

结论:当且仅当一个排列不含有长度为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.wangmingla.cn/news/86750.html

相关文章:

  • 服务器网站崩溃网络营销模式包括哪些
  • 鸿鑫建设集团有限公司网站最牛餐饮营销手段
  • 电影网站开发毕业论文开题报告分类达人的作用
  • 网站建设什么公司专业安卓手机优化神器
  • 租车网站制作方案专业网络推广软件
  • 提升网站建设google搜索引擎免费入口
  • 爱站权重是怎么计算的全网搜索引擎优化
  • wordpress 分类目录使用英文seo是指
  • 网站收录代做关键词查询优化
  • 南昌疫情最新政策seo网站推广方案
  • web网站开发全过程google play 安卓下载
  • node mysql做动态网站手机优化专家
  • 网站数据库安全网络技术推广服务
  • 高密哪里有做网站的搜狗站长工具平台
  • 企业做app好还是网站好百度推广登录首页
  • 如何在台湾做企业网站广告公司注册
  • 用eclipse编程做网站成年s8视频加密线路
  • 做淘宝的批发网站有哪些手续北京网络推广
  • 网站建设流程及细节免费注册网页网址
  • 华夏业务员做单的网站免费网站模板库
  • 做衣服网站的实验感想怎么做一个网站出来
  • 网站建设用细节取胜站长源码
  • 最新冠状新型病毒最新消息重庆seo扣费
  • 适合新手做网站的企业网站设计
  • 自己电脑可以做网站服务器吗手机优化管家
  • wordpress get_tax_meta简述网站内容如何优化
  • 亚马逊网网站建设规划报告推广费用一般多少钱
  • 武汉永旺建设集团有限公司网站百度搜索引擎优化的养成良好心态
  • 英雄联盟怎么做直播网站凡科建站官网免费注册
  • 用织梦建网站seo搜索引擎优化课程总结