0217考试总结

今天做了一套奇奇怪怪的题。

T1

【题目大意】

规定将一个序列的权值为将其进行冒泡排序的最少交换次数,给定一个序列P,求字典序不大于P的序列的权值之和。

【吐槽】

我在场上写了一个和标算时间复杂度同阶的数位dp+线段树做法,然后。。。就爆栈空间了,50分gg

修改之后是70,后三组丧心病狂卡线段树的常数,蒟蒻只好去膜拜松爷的卡常技巧,硬是从3700ms卡到了1082ms,然而还是超时。。。

正解:把线段树换成树状数组。。。

出题人真是丧心病狂,先卡空间,再卡线段树常数,蒟蒻只能默默地念两句诗“苟......苟富贵,无相忘”

#include<iostream>
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<ctime>
#include<cmath>
#include<algorithm>
using namespace std;
typedef long long ll;
const int mod=998244353;
#define FILE "read"
#define MAXN 1000010
#define up(i,j,n) for(int i=j;i<=n;++i)
#define dn(i,j,n) for(int i=j;i>=n;--i)
namespace INIT{
	char buf[1<<15],*fs,*ft;
	inline char getc(){return (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<15,stdin),fs==ft))?0:*fs++;}
	inline int read(){
		int x=0,f=1;  char ch=getchar();
		while(!isdigit(ch))  {if(ch=='-')  f=-1;  ch=getchar();}
		while(isdigit(ch))  {x=(x<<3)+(x<<1)+ch-'0';  ch=getchar();}
		return x*f;
	}
}using namespace INIT;
ll ans,f[MAXN],p[MAXN],sum[MAXN];
int n,m,tr[MAXN*8],tag[MAXN*8],a[MAXN];
ll add(ll x,ll v){x+=v;return x>=mod?x-mod:x;}
ll dec(ll x,ll v){x-=v;return x<0?x+mod:x;}
ll mul(ll x,ll y) {return x*y%mod;}
void pre(){
	p[0]=1;  up(i,1,n)  p[i]=mul(p[i-1],i);
	up(i,1,n)  sum[i]=add(sum[i-1],i);
	f[1]=0;  up(i,2,n)  f[i]=add(mul(f[i-1],i),mul(p[i-1],sum[i-1]));
	//up(i,1,n)  printf("%lld\n",f[i]);
}
void pushdown(int p,int l,int r){
	if(!tag[p])  return;
	int temp=tag[p],mid=(l+r)>>1; tag[p]=0;
	tag[p<<1]+=temp;  tag[p<<1|1]+=temp;
	tr[p<<1]+=temp*(mid-l+1);  tr[p<<1|1]+=temp*(r-mid);
}
/*void updata(int p,int l,int r,int x,int y,int v){
	pushdown(p,l,r);
	if(x>r||y<l)  return;
	if(x<=l&&y>=r)  {tag[p]+=v;tr[p]+=(r-l+1)*v;return;}
	int mid=(l+r)>>1;
	updata(p<<1,l,mid,x,y,v);  updata(p<<1|1,mid+1,r,x,y,v);
	tr[p]=tr[p<<1]+tr[p<<1|1];
}*/
void updata(int p,int l,int r,int x,int y,int v){
	pushdown(p,l,r);
	if(l==x&&r==y)  {tag[p]+=v;tr[p]+=(r-l+1)*v;return;}
	int mid=(l+r)>>1;
	if(mid>=y) updata(p<<1,l,mid,x,y,v);  
    else if(mid<x)updata(p<<1|1,mid+1,r,x,y,v);  
    else updata(p<<1,l,mid,x,mid,v),updata(p<<1|1,mid+1,r,mid+1,y,v);  
}
/*ll find(ll p,ll l,ll r,ll x){
	pushdown(p,l,r);
	if(x>r||x<l)  return 0;
	if(l==r)  return tr[p];
	ll mid=(l+r)>>1;
	return find(p<<1,l,mid,x)+find(p<<1|1,mid+1,r,x);
}*/
int find(int p,int l,int r,int x){
	pushdown(p,l,r);
	if(l==r)  return tr[p];
	int mid=(l+r)>>1;
	if(x<=mid)  return find(p<<1,l,mid,x);
	else return find(p<<1|1,mid+1,r,x);
}
void build(int p,int l,int r){
	if(l>r)  return;
	if(l==r)  {tr[p]=l; return;}
	int mid=(l+r)>>1;
	build(p<<1,l,mid);  build(p<<1|1,mid+1,r);
}
ll dfs(int i){
	if(i==1)  return 0;
	updata(1,1,n,a[i],n,-1);
	ll t=dfs(i-1);
	updata(1,1,n,a[i],n,1);
	ll x=find(1,1,n,a[i]);
	ans=add(ans,add(mul(f[i-1],(x-1)),mul(p[i-1],sum[x>2?x-2:0])));
	ans=add(ans,mul((t+1),(x-1)));
	t=add(t,mul((x-1),p[i-1]));
	return t;
}
int main(){
	freopen(FILE".in","r",stdin);
	freopen(FILE".out","w",stdout);
	int __size__=80<<20;//20MB
	char *__p__=(char*)malloc(__size__)+__size__;
	__asm__("movl %0, %%esp\n"::"r"(__p__));
	n=read();  pre();
	up(i,1,n)  a[i]=read();
	for(int l=1,r=n;l<r;++l,--r)  swap(a[l],a[r]);
	build(1,1,n);  dfs(n);
	printf("%lld\n",ans);
	printf("%d\n",clock());
	return 0;
}



T2、T3

由于写第一题的线段树花了3个小时,卡常数花了剩下的1个小时,然后。。。。。。就没有然后了


虽然最近在学了LCT和主席树后实力有所上涨,但是仍然智商堪忧。如何提高智商,这是一个永恒的问题。

一句话总结:

/*
                                    :Zu
                                   iB@B@i                                                                                      iGM;
                                  i@@B@@@B2                                                                                 7B@B@B@.
                                  @@@@B@B@B@u                                                                            iM@B@B@B@BL
                                 B@B@N  OB@@@BY                                                                        F@@@B@BMM@B@O
                                E@B@B    .O@B@B@:                                                                   :BB@@@B@0U7FB@B@
                               :@B@B.      .@B@B@O                                                                YB@B@B@OSYJjuU@B@B
                               @B@B5         rB@B@B7                                                            u@B@B@BNuYj1UFuuB@B@i
                              2@@@@            N@@@@M                                                         5B@B@BBkjYU252511JMB@B1
                              @@B@i             :@@@B@                                                      J@B@@@MFLju515151FUJE@B@M
                             F@B@B                @@@B@,                                                  iB@B@@B1YJ12F152F1511JPB@B@
                             @B@B:                 EB@@@.                            . .::::....         O@@B@BSLuU51F151F15152u2@B@B
                            L@@B@                   0B@B@        .:rLuk8MB@B@B@B@B@B@@@B@B@B@B@@@@@B@B@G@@@B@PuY2251F1F151F1F1Fu2B@B@.
                            B@@@Y                    @B@BB2MB@B@@@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@B@BMujU52F1F151525151511Y@@@Bi
                            @B@B                      @B@@@B@@@B@@@B@@@BBZNuu7ri:,,..        B@B@0kN88MB@BEYu252525151F252F1F15UJM@B@J
                           JB@B@                      0@B@@BE17i,.                           @B@BUvJYJLJjUj125151F152525151F1F55YO@@BX
                           B@B@v                                                            .B@B@jUU5252221212F2515251F15252F1F2JE@B@O
                           @B@B.                                                             @B@BFJF1F2F2F2F2515151F152F251F5515YEB@B@
                          .B@@@                                                              B@B@ELU52F152F251525151515252F1F2F2JX@B@B
                          v@B@B                                                              vB@B@uj255F15151F2F15252515151F1S15JNB@B@
                          PB@BX                                                               @B@BBYu2F1F1F2F15152F2515151F152F1jP@B@B
                          B@B@v                                                                @B@BBjJu5251S25151F15251515151F15JNB@@B
                          BB@@:                                                                 @B@B@XYL2UF151F15151F2F251F2F251j0@B@B
                          B@B@i                                                                  @B@B@BPJJJU251111152525152121Uuv1B@B@B.
                        FB@B@B                                                                    vB@B@B@ZSjjLujUu1U1u2u2uuJJLj2XZ@@@B@@:
                       @B@B@u                                                                       v@@@B@B@MOXkuujuJjJuu55qEMB@@@B@B@B@Bi
                     :@B@B@                                                                           :P@B@B@@@B@B@B@B@B@B@@@B@B@B@U L@B@Bi
                    r@B@BE                                                                               .vO@@B@B@B@B@B@B@B@B@MU:     Y@B@B,
                   r@B@Bu                                                                                      ,rL52F15Uv;:            k@B@B
                  ,@@@BJ                                                          :BB1                                                  B@B@M
      .           @B@BP                               .5X,                        @B@B@Bv                                                B@B@:
    r@B@@@@Mu:   BB@B@                               .B@B@                        .8B@B@B@BF,                                            uB@B@
    7B@B@B@@@B@B8B@@@                               7B@B@M                           iMB@B@@@B@Xr.                                        @B@B:
      .:iJZ@B@B@B@@@k                            :5@B@B@X                               ,SB@B@B@B@B@BPYi..                                P@B@Z
             .rB@B@B@BMi             r@BONE0EM@B@B@B@B@:                                    i5@B@@@B@B@B@@@B@                             :B@B@
               @B@B@B@B@O            @B@B@B@@@@@B@@@5.                                           :LEB@B@B@B@B:                             @B@B
              iB@B@ iB@B7            :ZM@B@B@BO57,                                                       .:i                               B@B@ii2OOk
              M@B@2                                                                                                                        @B@B@B@B@@@
              @B@B.                                                                   .jOM07                                           .UB@B@B@B@@@B@r
             .B@B@                                                                   MB@B@@@B7                                        M@B@B@B@Bi
             r@B@B                                7O@@BJ                            SB@B@B@B@B.                                       PB@BP@@B@
             uB@BO                               @@@B@B@Br                          8@@@B@B@B@:                                            @B@B
             S@@@F                              @B@B@B@B@@                          .B@B@B@B@B                                            ZB@Bk
             SB@B1                              B@B@B@B@@@                            5@B@B@7                                             B@B@.
             v@B@k                              .B@@@@@B@r                                                                               2@B@B
             vB@B@:r7;                            vBB@BF                                                                                 @B@B:
    :71Z@B@B@B@B@B@B@BM                                                                                                                 8B@BE
v@B@B@B@@@B@B@@@B@B@B@r                                                                                                            @B@B@B@@@:
@B@B@B@BMFJi: MB@BJ                                                                                                               .B@B@B@B@@@B@Ov
 .7:          :@B@@                                                                                                                  ;@@B@B@B@B@@@@2
               B@B@v                                                                                                                 Z@@@B  ,LMB@B@B@r
               rB@B@                                                                                                                B@B@B       .EB@B@
                @B@BM                                                                                                             .B@B@B          .M@j
                 @B@B1                                                                                                           rB@@@M
                 :@B@Bj                                              i8B@B@B@B@B@Bu                                             GB@B@F
                  i@B@BX                                            M@@@B@@@B@B@B@B@                                          :@@@B@i
                   i@B@B@                                           7B@BFri:,:ivOB@X                                        ,B@B@BM
                    .@B@B@L                                                                                               ,BB@@@Bi
                      qB@B@@7                                                                                           jB@B@B@L
                       :B@B@B@2.                                                                                     JB@@@B@Bv
                         :@B@B@B@u.                                                                              ,FB@B@B@BP,
                           .S@B@B@B@0r                                                                       :jBB@B@B@@@B.
                              :P@B@B@B@BOv,                                                          .:7kO@B@B@B@@@B@B@@@
                                 .vBB@B@B@@@B@ONjr:,                                       ,:rYXE@B@@@@@@@B@@@B@MEuri@@@B.
                                     J@B@B@B@B@B@@@@@B@B@B@@BM8ENFPFUuUuuuU5XFP0GOMB@B@B@B@B@@@B@B@B@B@B@BMX2vr::::,iB@B@
                                     rB@BM71NMB@B@B@@@B@@@@@B@B@B@B@B@@@B@@@B@@@B@B@B@B@@@B@@@B@BBZqULri:::::::;;rr:r@B@B.
                                     u@B@E.,::::iirvLJFFN0OOMM@B@BMO@B@B@@@B@B@@@@@B@MuL2JY77ii:::::::ii;irrrr7r7rr:iB@B@.
                                     1B@BZ,;rr;;ii:i::::::::::::,.:Z@@B@B@quLYJqB@B@B@q: ::::ii;;rrrr7rrr7r7rrii::::u@B@B.
                                     F@@@P.::i;rrrrrrrrrr;r;r;ri,7@@@@@u.         L@@B@BL,rr7r7r7r7rrrrrrii::::iLSBB@B@B@:
                                     OB@B@EF7;::,::ii;ir;rrrrr;:7@B@BO   .....      N@@@BL:rrrrri;ii:::::irLF8B@B@B@B@B@Bv
                                     Z@B@@@B@B@MZ5J7ri:::,:::::,@B@@E  .,,:,,..      N@B@B,.:::::i;7j2NO@B@B@B@B@B@E:F@B@P
                                     @B@BBB@@@B@B@B@@@B@MOqX1u7UB@B@  .:,,,,..  ,.    B@B@k1NOM@B@B@@@B@B@B@B@BSi    iB@B@
                                    iB@B@   iYG@@@@B@@@B@B@@@B@B@B@M  ,,:,,., rB@B@5. ZB@B@B@B@@@B@@@B@BBF7,          @B@B
                                    B@B@u          :rjSO@@B@B@B@B@B@  .,,,.,. r@@@@@B8M@B@B@B@BOFu;:.                 B@B@i
                                   S@B@B                        @B@@r  .......  :5@B@B@B@B                            5B@BB
                                  L@@@B,                        7@B@Bi   . . .     .B@B@Bu                             @B@@.
                                 G@B@B;                          q@B@Bk            7@B@BM                              G@B@@
                                B@B@B:                            L@B@B@O7.    .rOB@B@Bu                                B@B@B
                                qB@M                                ZB@B@@@B@@@B@B@B@Z                                  .B@@@B
                                                                      7MB@B@B@B@B@Mv                                      S@8.
                                                                          ,:7ri.


                         ...                    .                                     ..        ..
                  :7FB2  B@B   r.              :@B.                                  L@@        @B                      ,.,.,..
         .@@@@B@B@B@@@B  OB@  L@BO             j@@      B@B@B@B@B@B@@@B@     0PXSXSSJMB@L5FXSSuNB@u5SXSXXZi     ,,,,., iB@B@@@@ B@B@B@B@@@B@M
          @BOurE@B       F@B    M@@M:          O@i      :::,:,,..  :@B@O     @@@@B@@@B@B@B@B@B@@@B@B@@@B@B2     @B@B@B .@E  .B@ .,,.... @BL..
               rBB       rB@      B@Y      vEFL@BNuF2uj           u@BX               .B5        F5              B@  B@  BE  O@.         q@
               v@B       :@@               E@B@B@B@B@@@         XB@P           k1jujjSMG0qPqMB@BBB@B@B@v        @B  B@  @0  @B  iLUUuY. ZB,
         @B@B@B@B@B@B@@@B@B@B@B@B@B@B@B       L@u   .@B        @@@             @B@B@BBOMOM@E2PXqkLi:vi,.        @@  B@  Bq 0B,  B@@@@@Y N@:
         ii::,.S@B .:,:,.:@@i.::,.   ,i       @B.   JBq        0@1               iJ      r@Y        @@          @B  @B  @1 B@   MB  .B7 NB:
               7B@        @@      :@7        :@@    B@i.:::::: MBO ,::::i        MB@      B@O     E@B7          B@  B@  Bk @B:  O@  ,@r k@,
               r@M    r5  @Bu    5@Bk        M@v    @B B@B@B@B@B@@@B@B@B@:        5B@.     BE   r@@F            @B  @B  @E  @B  OB. :B7 PB:
             ,:MB@B@B@B@. U@B  .@@@.        .@B    PB8         E@q                 ;i     .O;    J              B@  B@  B8  :@q E@  .@r k@,
         B@B@@@B@BPu7,     B@ uB@5           v@@S  B@          E@E           UEkk5277J1YvrBB@r7LYrLUFFkkqE:     @B  MB  @Z   B@ PBi YBv NB:
         0Mui. LBB         MB@BB               7B@B@:          OBO           @B@B@B@B@O@B@B@B@B@O@B@B@@@B@;     @@  @@ .@0   @B P@B@B@v N@:
               v@B        qB@Br     iXi          B@BP          8@O                    7@@ iBX @Bi               @B@B@B  @B7v@BG @B:     OB:
               JB@     JB@B51@B     M@@        LB@:rB@Bi       GBM                 ,B@BL  r@8  vB@8,           .@@  5@ .@Gq@Bv   ,      Z@:
               L@B  PB@B@J   M@B.   @@7      i@B@    0@7       B@M              iO@@@r    YBB    r@B@BY.        :.     :@q              MB:
          G@N5S@BB  Z@S.      P@BZ.uB@     ,B@B7         UB@B@@@B:           OB@@@5       j@B       L@B@B@,            iBB         FMq1OB@
          2B@B@MJ              :@B@B@:      Sj            NFXF5i             ,@u          qB@          .Y.             i@O         Y@B@BZ.
                                  ..                                                      :Ur



                           k   :..,,       r  ii      v:   ir .L         E         ..,,:,iivv    :..   ,F      :  u   .:iu1
                        .u5BjL:i@@rB@     @k  :Bi    7@Bu. uMiNBuL ,@SSuEB5qZUO8  :qN1uM@7777:  :v@B i2X@vS@   Bv @ 7B7v7i:
                          .@   ,B  UB   v@:     BX   Li O O7u 2 O.  28 .Br,S :B.  r7vvrE@7vjLL   :B  Yiv@:7@j  BqiB 7B
                        :LuB27i8  uG  .B@r..:ii,,F@: JO1@ 0;F B7@:   Lr rOui k.    M1::2@:ii@   ,BqF  i7@,78   ON.. rB@Y7Z@
                         2 @r  NY55E:    r:@B77rBr   :2@.v1ik .@.,  uM ,OG:Bq Br   @5::2@,:iB,  ,, @ :;vBiii   @8ir vJY7 Mu
                         B 8E7 B   0O     .@    @i   :@B7  Mi 5B5: .P: i,BF j i2   5Yi:F@:ii8   .B7G 77J@rvJ:  B7 @ P7 BPG
                        :@k@.  @v7rO7    2B     B     B,  i@   @   iJujLr@G77uJU  .7r7iNBi;7rr   uBL :.:B  .. .@  B B  BBJ
                        @i 1ZXqkEq0X0  7@P  qk0B5    BE  7@    B         B7       ZXF2U8@j11k0r YB.rSuuuGjUkX 1P  @PXv@i X@:
                                            .,.                          .



*/


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值