hdu 6058
来源:互联网 发布:淘宝虚拟变实物 编辑:程序博客网 时间:2024/06/11 21:51
#include<cstdio>#include<cstring>using namespace std;int pre[500010],next[500010],pos[500010],n,k;long long l[50010],r[500010];void init(){for(int i=1;i<=n;i++){int t;scanf("%d",&t);pos[t]=i;}for(int i=0;i<=n+1;i++){pre[i]=i-1;next[i]=i+1;}pre[0]=0,pre[n+1]=n+1;}long long cal(int x){int num1=0,num2=0;for(int i=x;i&&num1<=k;i=pre[i])l[++num1]=i-pre[i];for(int i=x;i<=n&&num2<=k;i=next[i])r[++num2]=next[i]-i;long long ans=0;for(int i=1;i<=num1;i++){if(k-i+1<=num2&&k-i+1>=1)ans+=l[i]*r[k-i+1];}return ans;}void del(int x){pre[next[x]]=pre[x];next[pre[x]]=next[x];}int main(){int T;scanf("%d",&T);while(T--){scanf("%d%d",&n,&k);init();long long res=0;for(int i=1;i<=n;i++){res+=cal(pos[i])*i;del(pos[i]);}printf("%lld\n",res);}}
阅读全文
0 0
- hdu 6058
- hdu 6058
- hdu 6058 暴力枚举
- hdu 6058 链表 枚举
- hdu 6058 链表
- HDU 6058 枚举
- 【思维-链表】hdu 6058
- HDU 6058 链表
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- [Lintcode] 632. Binary Tree Maximum Node
- java序列化和反序列化
- jqueryday01
- IntelliJ Idea编译报错,解决方法
- 逻辑卷环境下修复开机启动环节故障
- hdu 6058
- 多路复用
- 27-SpringBoot——核心-声明式事务
- lua 实现面向对象
- 获取网络字符串及图片
- linux内存管理之伙伴系统
- 引导页
- Python3之无法在进程池中使用队列Queue的解决方案
- 幻方判定