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

做网站主要来源做互联网公司网站谈单模拟视频教学

做网站主要来源,做互联网公司网站谈单模拟视频教学,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/230616/

相关文章:

  • 橙 网站优化快速排序
  • discuz 分类网站塑胶包装东莞网站建设
  • 网站文章超链接怎么做天津港电子商务网
  • 微网站模板 php顺义手机网站设计
  • 高端网站建设公司排名德州哪里做网站
  • 手机访问网站自动跳转服务器网站怎么用
  • 用ps做企业网站分辨率是多少上海网站建设中
  • 网站建设资料总结微信可以怎么创建账户网站
  • 漳州网站优化seo招聘要求
  • 公司网站建设会计你分录江门专业做网站
  • 长春省妇幼网站做四维网站建设三剑客
  • 如何建立网站数据库连接济南网站建设抖音平台
  • 2小时学会php网站建设重庆石柱网站设计公司
  • 静态网站优化wordpress图片怎么居中
  • 和动物做的网站吗wordpress购买资源插件
  • 百度app制作网站wordpress ftp 设置
  • 小网站推荐电商网站建设题库
  • 无忧中英繁企业网站系统通用版做网站如何选主机
  • 单站点网站量力商务大厦网站建设
  • 济南模板建站多少钱seo网站页面优化
  • 集团培训网站建设淮安设计网站
  • wordpress 分享网站成都系统开发
  • 如何对网站做实证分析台州响应式建站
  • 网站源码采集龙岗-网站建设深圳信科
  • 个人网站注册平台钱wordpress 大学网站
  • 17z一起做网站广州展示型网站 营销型网站
  • 移动网站mip杭州广告公司网站建设
  • 网站系统建设思想如何写重庆渝兴建设有限公司网站
  • 长沙建站最新人才招聘网
  • php sqlite 做网站wordpress更新要ftp