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

做网站容易挣钱吗企业网站做seo

做网站容易挣钱吗,企业网站做seo,开通微商城要多少钱,石家庄哪里有做网站题目大意 有一个排列 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1​,a2​,…,an​&#xff0c;我们现在进行如下操作&#xff1a; for(int i1;i<n-m1;i) sort(ai,aim);设最后的结果为 b 1 , b 2 , ⋯ , b n b_1,b_2,\cdots,b_n b1​,b2​,⋯,bn​&#xff0c;求满足条件的…

题目大意

有一个排列 a 1 , a 2 , … , a n a_1,a_2,\dots,a_n a1,a2,,an,我们现在进行如下操作:

for(int i=1;i<=n-m+1;i++) sort(a+i,a+i+m);

设最后的结果为 b 1 , b 2 , ⋯ , b n b_1,b_2,\cdots,b_n b1,b2,,bn,求满足条件的 a a a中字典序第 k k k小的 a a a

1 ≤ n ≤ 1 0 6 , m ≤ n , 1 ≤ k ≤ 1 0 18 1\leq n\leq 10^6,m\leq n,1\leq k\leq 10^{18} 1n106,mn,1k1018 b i b_i bi 1 1 1 n n n的一个排列。


题解

由题意可得 b i b_i bi a 1 , a 2 , … , a min ⁡ ( i + m − 1 , n ) a_1,a_2,\dots,a_{\min(i+m-1,n)} a1,a2,,amin(i+m1,n)中,满足不在 b 1 , b 2 , … , b i − 1 b_1,b_2,\dots,b_{i-1} b1,b2,,bi1中的最小的数。

那么,当 b i − 1 > b i b_{i-1}>b_i bi1>bi,就一定有 a i + m − 1 = b i a_{i+m-1}=b_i ai+m1=bi

把这些已经确定的 b i b_i bi去掉,剩下的问题等价于 n n n变小, m , k m,k m,k不变, b i = i b_i=i bi=i的子问题。

下面,我们假设 b i = i b_i=i bi=i

考虑从小到大将每一个 i i i填入 a a a中,易得 i i i需要填在 [ 1 , min ⁡ ( i + m − 1 , n ) ] [1,\min(i+m-1,n)] [1,min(i+m1,n)]中任意没填过的位置,那么填 i i i的方案数为 min ⁡ ( m , n − i + 1 ) \min(m,n-i+1) min(m,ni+1)

然而,因为方案数很大,而 k k k相对没那么大,所以 a a a有一个前缀都满足 a i = i a_i=i ai=i

f i f_i fi表示满足上面条件的前缀为 n − i n-i ni,也就是后面有最多 i i i个数不满足,那么

f i = f i − 1 × min ⁡ ( m , i ) f_i=f_{i-1}\times \min(m,i) fi=fi1×min(m,i)

m = 1 m=1 m=1时,显然只有一个答案。因为保证有解,这种情况下 k = 1 k=1 k=1

m > 1 m>1 m>1时, f i ≥ 2 i − 1 f_i\geq 2^{i-1} fi2i1,可得 f 62 ≥ k f_{62}\geq k f62k

那么,我们只需取最后 min ⁡ ( n , 62 ) \min(n,62) min(n,62)个位置,后面用一个状压维护状态,再枚举每一位填什么即可。细节见代码。

时间复杂度为 O ( n + v 3 ) O(n+v^3) O(n+v3),其中 v = min ⁡ ( n , 62 ) v=\min(n,62) v=min(n,62)

code

#include<bits/stdc++.h>
using namespace std;
int n,m,a[1000005],b[1000005],c[1000005],num[1000005],z[1000005];
long long k;
long long gt(int t,int w,long long now){long long re=1;for(int i=1;i<=t;i++){if((now>>i-1)&1){if(re>k/(min(i+m-1,t)-w)+1) return k+1;re=re*(min(i+m-1,t)-w);if(re>k) return k+1;++w;}}return re;
}
void dd(int l,int t){long long now=(1ll<<t)-1;for(int i=1;i<=l-t;i++) c[i]=num[i];for(int i=t;i>=1;i--){for(int j=1;j<=t;j++){if((now>>j-1)&1){long long vt=gt(t,t-i+1,now^(1ll<<j-1));if(k>=vt) k-=vt;else{c[l-i+1]=num[l-t+j];now^=(1ll<<j-1);break;}}}}
}
int main()
{scanf("%d%d%lld",&n,&m,&k);--k;for(int i=1;i<=n;i++){scanf("%d",&b[i]);}int lst=b[1],cnt=0;for(int i=2;i<=n;i++){if(lst>b[i]){a[i+m-1]=b[i];z[b[i]]=1;}else lst=b[i];}for(int i=1;i<=n;i++){if(!z[i]) num[++cnt]=i;}dd(cnt,min(cnt,62));int now=1;for(int i=1;i<=n;i++){if(!a[i]){a[i]=c[now];++now;}printf("%d ",a[i]);}return 0;
}
http://www.yayakq.cn/news/533455/

相关文章:

  • wordpress的用户名与密码做外贸seo优化的上市公司
  • 怎么看自己的网站是用什么做的医药行业网站建设
  • 网站优化建设安徽做儿童网站赚钱吗
  • 查工作单位的网站iis 没有新建网站
  • 手机网站怎么做seo苏州建设网站市政中标项目
  • 牛商网站建设腾讯网站站内面包屑导航
  • 网站建设维护方案阿坝住房和城乡建设厅网站
  • 金坛做网站做网站的公司名字
  • 可以做推广的网站入侵网站做排名
  • 做网站还能挣钱长沙网站维护
  • 外贸网站建设及优化ppt模块网站备案主体
  • 企业网站总承包建设模式关键步骤有哪些可以做兼职翻译的网站
  • 淘宝店铺 发布网站建设只有后端可以做网站吗
  • 苏州建设网站价格做h5好的网站
  • 苏州自助建站模板公司名怎么取名比较旺
  • 做贷款网站犯法吗网站主题和风格
  • 自己做网站是不是需要写代码苏州建设信息网
  • 镇江做网站要多少钱中山做网络推广的公司
  • 工信部网站实名认证怎么做做wap网站
  • 邯郸学校网站建设word上下页边距怎么设置
  • 个人网站建设方案书用备案的营销网站建设优化
  • mvc5网站开发之六网络科技公司项目加盟
  • 银川网站建设0951c2c网站代表和网址
  • 收费用的网站怎么做苏州企业网站建设服务中心
  • 网站部分乱码四川建设网站信息查询中心
  • 网站建设立项申请书优化网站制作公司好吗
  • 网站建设策划书格式php网站开发结构说明
  • 怎么样做企业网站广告图片网站
  • 源码网站python免费千城网站建设
  • 广东网站设计哪家好ppt自动生成器