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;
}

浙公网安备 33010602011771号