2020-9-20 标程

T1

#include<iostream>
#include<cstdio>

const int MOD=20200920,N=5050;
#define ll long long
#define ENDL putchar('\n')
using namespace std;
int n;
ll ans[N];

void print(ll x);
int read();
ll f(ll x);
int main()
{
    cin>>n;
    for(int i=0;i<N;i++) ans[i]=f(i);
    for(int i=1;i<=n;i++)
    {
        int x=read();
        printf("%lld\n",ans[x]);
    }
    return 0;
}
ll f(ll x)
{
    return (x*x*x+13*x*x+3*x)%MOD;
}
int read()
{
    int re=0; char c=getchar();
    while(!isdigit(c)) c=getchar();
    while(isdigit(c)) re=re*10+(c^48),c=getchar();
    return re;
}
void print(ll x)
{
    int st[70],top=0;
    while(x) st[++top]=x%10,x/=10;
    while(top) putchar(st[top--]+'0');
}

T2

#include<iostream>
#include<cstdio>

using namespace std;
int n,mode,cnt;

void print(int x);
int read();
int main()
{
    n=read();
    for(int i=1;i<=n;i++)
    {
        int a=read();
        if(a==mode) cnt++;
        if(cnt==0) mode=a,cnt++;
        if(a!=mode) cnt--;
    }
    print(mode);
    return 0;
}
int read()
{
    int re=0,w=1; char c=getchar();
    while(!isdigit(c))
    {
        if(c=='-') w=-1;
        c=getchar();
    }
    while(isdigit(c)) re=re*10+(c^48),c=getchar();
    return w*re;
}
void print(int x)
{
    int st[35],top=0;
    if(!x) putchar('0');
    if(x<0) putchar('-'),x=-x;
    while(x) st[++top]=x%10,x/=10;
    while(top) putchar(st[top--]+'0');
}

T3

#include<iostream>
#include<cstdio>

#define ll long long
#define ENDL putchar('\n')
const int N=100005;
using namespace std;
struct sgTree
{
    ll t[N<<2],add[N<<2];
    int n,m;
    void build()
        {
            for(m=1;m<=n;m<<=1) ;
            for(int i=m+1;i<=m+n;i++) t[i]=1000000;
            for(int i=m-1;i;i--) t[i]=t[i<<1]+t[i<<1|1];
        }
    void modify(int l,int r,int k)
        {
            ll len_l=0,len_r=0,len=1;
            for(l+=m-1,r+=m+1;l^r^1;l>>=1,r>>=1,len<<=1)
            {
                if(l&1^1) add[l^1]+=k,len_l+=len;
                if(r&1) add[r^1]+=k,len_r+=len;
                t[l>>1]+=k*len_l; t[r>>1]+=k*len_r;              
            }
            for(len_l+=len_r;l>1;l>>=1) t[l>>1]+=k*len_l;
        }
    ll query(int l,int r)
        {
            ll len_l=0,len_r=0,len=1,ans=0;
            for(l+=m-1,r+=m+1;l^r^1;l>>=1,r>>=1,len<<=1)
            {
                if(l&1^1) ans+=t[l^1]+len*add[l^1],len_l+=len;
                if(r&1) ans+=t[r^1]+len*add[r^1],len_r+=len;
                if(add[l>>1]) ans+=add[l>>1]*len_l;
                if(add[r>>1]) ans+=add[r>>1]*len_r;
            }
            for(len_l+=len_r,l>>=1;l;l>>=1)
                if(add[l]) ans+=add[l]*len_l;
            return ans;
        }    
    
}T;

ll gcd(ll x,ll y);
void print(ll x);
int read();
int main()
{
    int times;
    T.n=read(); times=read();
    T.build();
    while(times--)
    {
        ll opt,x,y,k,l,r;
        opt=read(); x=read(); y=read();
        if(opt==1) k=read(),T.modify(x,y,k);
        if(opt==2) k=read(),T.modify(x,y,-k);
        if(opt==3) print(T.query(x,y)),ENDL;
        if(opt==4) l=read(),r=read(),print(gcd(T.query(x,y),T.query(l,r))),ENDL;
    }
    
    return 0;
}
int read()
{
    int re=0,w=1; char c=getchar();
    while(!isdigit(c))
    {
        if(c=='-') w=-1;
        c=getchar();
    }
    while(isdigit(c)) re=re*10+(c^48),c=getchar();
    return w*re;
}
void print(ll x)
{
    int st[70],top=0;
    if(!x) putchar('0');
    if(x<0) putchar('-'),x=-x;
    while(x) st[++top]=x%10,x/=10;
    while(top) putchar(st[top--]+'0');
}
ll gcd(ll x,ll y)
{
    while(y^=x^=y^=x%=y) ;
    return x;
}
posted @ 2020-09-18 19:20  nenT  阅读(66)  评论(0)    收藏  举报