EZOJ #385 排列
2024-09-05 22:50:37
分析
对于第一问我们直接从上到下枚举所有横边
每一次交换两边的列标号即可
对于第二问我们发现答案就是最终序列的逆序对数量
代码
#include<bits/stdc++.h>
using namespace std;
int n,m,ans[],d[],sum;
inline int lb(int x){return x&(-x);}
inline void add(int x){while(x<=n)d[x]++,x+=lb(x);}
inline int q(int x){int res=;while(x)res+=d[x],x-=lb(x);return res;}
int main(){
int i,j,k;
scanf("%d%d",&n,&m);
for(i=;i<=n;i++)ans[i]=i;
for(i=;i<=m;i++){
int x,y;
scanf("%d",&x);
swap(ans[x],ans[x+]);
}
for(i=;i<=n;i++)printf("%d ",ans[i]);
puts("");
for(i=;i<=n;i++){
sum+=q(n)-q(ans[i]);
add(ans[i]);
}
printf("%d\n",sum);
return ;
}
最新文章
- ffmbc——广播电视以及专业用途量身定制的FFmpeg
- KinectV2+Ubuntu 14.04+Ros 安装教程
- jquery取消选择select下拉框
- constructor
- .net 实现Office文件预览,word文件在线预览、excel文件在线预览、ppt文件在线预览
- Java部分总结图片版2(已加上原图链接!!!)
- 给 Android 初学者的 Gradle 知识普及
- (转)重置Mac OS X管理员密码
- $.getjson方法配合在url上传递jsoncallback=?参数,实现跨域获取指定网站某商品访问量
- SecureCRT 7.3注册机激活
- GlitchBot -HZNU寒假集训
- 阿里云Ubuntu安装图形界面与中文语言包
- web设计工具
- 在java服务端判断请求是来自哪个终端
- JDBC - Mysql 8.0.13 连接测试
- Spring的AOP配置文件和注解实例解析
- ubuntu系列-安装jdk以及eclipse(for C++)
- 关于 lerp();
- MySQL Metadata
- unity震动效果