测试46

Posted seamtn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了测试46相关的知识,希望对你有一定的参考价值。

T1:取模下性质。
T2:统计的小技巧。cnt++,cnt--.if(!cnt)id=lst,cnt=1;else cnt+=id==lst?1:-1;
T3:转化问题。大小关系只由最高的不同位决定。

T3发现转化问题方面要注意。

分析,转化。

技术图片
#include<bits/stdc++.h>
#define F(i,a,b) for(rg int i=a;i<=b;++i)
#define LL long long
#define il inline
#define rg register
#define pf(a) printf("%d ",a)
#define phn puts("")
using namespace std;
int read();
#define N 1000010
int n;
int a[N],T[N];
il int MO(int x)return x<n?x:x-n;
int main()
    n=read();
    F(i,1,n)
        a[i]=(read()+a[i-1])%n;
        if(a[i]==0)
            printf("%d\n",i);
            F(j,1,i)pf(j);phn;
            return 0;
        
        if(T[a[i]])
            printf("%d\n",i-T[a[i]]);
            F(j,T[a[i]]+1,i)pf(j);phn;
            return 0;
        
        T[a[i]]=i;
    
    

il int read()
    int s=0;rg char ch;
    while(ch=getchar(),!isdigit(ch));
    for(;isdigit(ch);s=s*10+(ch^48),ch=getchar());
    return s;

/*
g++ 1.cpp -g
./a.out
6
5 5 10 3 8 1
*/
View Code
技术图片
#include<bits/stdc++.h>
#define F(i,a,b) for(rg int i=a;i<=b;++i)
#define LL long long
#define il inline
#define rg register
#define pf(a) printf("%d ",a)
#define phn puts("")
using namespace std;
int read();
/*
最多4个1e6,15MB,濒临超限,不要开。
3.5e6max.
*/
#define MAXN 1005
int X[1010],Y[1010],Z[1010],Ct[1010],M,K;
il int max(const int& x,const int& y)return x>y?x:y;
int main()
    freopen("2b.in","r",stdin);
    M=read();K=read();
    F(i,1,M)Ct[i]=read();
    F(i,1,M)X[i]=read();
    F(i,1,M)Y[i]=read();
    F(i,1,M)Z[i]=read();
    rg int  S = (1 << K) - 1,id=0,cnt=0,n=0;
    rg LL lst;
    for (rg int i = 1; i <= M; ++i) 
        lst = X[i];
        if(!cnt)id=lst,cnt=1;
        else cnt+=id==lst?1:-1;
        n+=Ct[i];
        for (rg int j = 1; j < Ct[i]; ++j) 
            lst = (lst * Y[i] + Z[i]) & S;
            if(!cnt)id=lst,cnt=1;
            else cnt+=id==lst?1:-1;
        
    
    pf(n);
    cnt=0;
    for (rg int i = 1; i <= M; ++i) 
        lst = X[i];
        cnt+=lst==id;
        for (rg int j = 1; j < Ct[i]; ++j) 
            lst = (lst * Y[i] + Z[i]) & S;
            cnt+=lst==id;
        
    
    int ans=max(cnt*2-n-1,0);
    printf("%d\n",ans);

il int read()
    int s=0;rg char ch;
    while(ch=getchar(),!isdigit(ch));
    for(;isdigit(ch);s=s*10+(ch^48),ch=getchar());
    return s;

/*
g++ 2.cpp -g
time ./a.out
4 2
1 1 1 1
1 1 1 2
0 0 0 0
0 0 0 0
*/
View Code
技术图片
#include<bits/stdc++.h>
#define F(i,a,b) for(rg int i=a;i<=b;++i)
#define LL long long
#define il inline
#define rg register
#define pf(a) printf("%d ",a)
#define PF(a) printf("%lld ",a)
#define phn puts("")
using namespace std;
int read();
/*
调试信息
*/
#define N 200010
int n,m;
const int mod=1e9+7;
int a[N],b[N],c[N],val[N];
il int cmp(const int& x,const int& y)
    return b[x]>b[y];    

il void MO(int &x)x=x>=mod?x-mod:x;
il void work1()
    F(i,1,n)a[i]=read(),c[i]=i;
    int ed=(1<<m)-1;
    F(j,0,ed)
        F(i,1,n)b[i]=a[i]^j;
        sort(c+1,c+n+1,cmp);
        F(i,1,n)
            MO(val[c[i]]+=(i-1)*(i-1)%mod);
        
    
    int ans=0;
    F(i,1,n)ans^=val[i];
    printf("%d\n",ans);

int tr[6100010][2],tot,cnt[6100010];
il void insert(int x)
    int p=0,t=0;
    for(int i=m-1;~i;--i)
        t=(x>>i)&1;
        if(!tr[p][t])tr[p][t]=++tot;
        p=tr[p][t];++cnt[p];
    

int f[35],top;
il void ask(int id)
    int x=a[id];int p=0,t=0;top=0;LL w;
    for(int i=m-1;~i;--i)
        t=(x>>i)&1;
        if(tr[p][!t])
            w=f[++top]=cnt[tr[p][!t]];
            MO(val[id]+=w*w%mod*(1<<(m-1))%mod);
        
        p=tr[p][t];
    
    LL sum=0;
    F(i,1,top)
        MO(val[id]+=2ll*f[i]*sum%mod*(1<<(m-2))%mod);
        sum+=f[i];
    

int main()
    n=read();m=read();
    F(i,1,n)a[i]=read(),insert(a[i]);
    F(i,1,n)ask(i);
    int ans=0;
    F(i,1,n)ans^=val[i];
    printf("%d\n",ans);

il int read()
    int s=0;rg char ch;
    while(ch=getchar(),!isdigit(ch));
    for(;isdigit(ch);s=s*10+(ch^48),ch=getchar());
    return s;

/*
g++ 3.cpp -g
./a.out
6 3
0 2 3 4 6 7
*/
View Code

 $ \sum\limits_i=1^n $

以上是关于测试46的主要内容,如果未能解决你的问题,请参考以下文章

模拟测试46

Selenium:我正在使用 Firefox 版本 46.01 并在 eclipse 中测试显示错误消息

软件测试周刊(第46期):走好选择的路,别选择好走的路,你才能拥有真正的自己。

[考试反思]0918csp-s模拟测试46:残存

Vue 开发实战实战篇 # 46:如何做好组件的单元测试

去测试网站状态(ping)