首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏数据结构与算法

    2492 上帝造题的七分钟 2

    long long int 8 using namespace std; 9 const lli MAXN=1000001; 10 inline void read(lli &n) 11 { 12 char c='+';lli x=0;bool flag=0; 13 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 14 n=-x:n=x; 16 } 17 lli tree[MAXN]; 18 lli a[MAXN]; 19 lli f[MAXN]; 20 lli n,m,tmp; 21 lli lb(lli &x) 22 { 23 return x&-x; 24 } 25 void add_tree(lli pos,lli v) 26 { 27 while(pos<=n) 28 { 29 tree[pos]+=v; 30 pos+=lb(pos); 31 } 32 } 33 lli interval_sum(lli pos) 34 { 35 lli ans

    72370发布于 2018-04-12
  • 来自专栏数据结构与算法

    Codeforce GYM 100741 A. Queries

    long long int 8 using namespace std; 9 const lli MAXN=10001; 10 void read(lli &n) 11 { 12 char -x:x; 16 } 17 lli n,m; 18 struct node 19 { 20 lli a[MAXN]; 21 lli lowbit(lli x){return x&(-x) ;} 22 lli change(lli pos,lli val) 23 { 24 for(;pos<=n;pos+=lowbit(pos)) 25 a[pos]+=val; 26 } 27 lli query(lli l,lli r) 28 { 29 return ask(r)-ask(l-1); 30 } 31 lli ask(lli pos) 32 { 33 lli ans=0; 34 for(;pos;pos-=lowbit(pos)) 35

    925120发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1314 聪明的质监员

    long long int 8 using namespace std; 9 const lli MAXN=200001; 10 void read(lli &n) 11 { 12 char n=-x:n=x; 18 } 19 struct node 20 { 21 lli w,v; 22 }kuang[MAXN]; 23 struct xw 24 { 25 lli l,r, id; 26 }q[MAXN]; 27 lli n,m,s; 28 lli ans=0x7ffffff; 29 lli pos[MAXN]; 30 lli base; 31 lli num,va; 32 pd(lli need) 56 { 57 lli ll=1,rr=0; 58 lli now=0; 59 num=0;va=0; 60 for(lli i=1;i<=m id; 26 }q[MAXN]; 27 lli n,m,s; 28 lli ans=0x7fffffff; 29 lli sum[MAXN],num[MAXN]; 30 lli tot=0; 31 lli

    91940发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1474 货币系统 Money Systems

    long long int 7 using namespace std; 8 const lli MAXN=10001; 9 void read(lli &n) 10 { 11 char c='+';lli x=0;bool flag=0; 12 while(c<'0'||c>'9') 13 {c=getchar();if(c=='-')flag=1;} 14 n=-x:n=x; 17 } 18 lli dp[31][10001]; 19 lli v,n; 20 lli a[30]; 21 int main() 22 { 23 read(v);// 拥有的种类 24 read(n);// 需要构造的钱 25 for(lli i=1;i<=v;i++) 26 { 27 read(a[i]); 28 //dp [i][a[i]]=1; 29 dp[i][0]=1; 30 } 31 for(lli i=1;i<=v;i++) 32 for(lli j=1;j<=n

    72060发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1462 通往奥格瑞玛的道路

    long long int 7 using namespace std; 8 void read(lli & n) 9 { 10 char c='+';lli x=0; 11 MAXN=100001; 21 const lli maxn=0x7fffffff; 22 struct node 23 { 24 lli u,v,w,nxt; 25 }edge[MAXN ]; 26 lli head[MAXN]; 27 lli num=1; 28 lli dis[MAXN]; 29 lli vis[MAXN]; 30 lli n,m,maxnblood; 31 lli spend[MAXN]; 32 lli l=0x7fffffff,r=-1; 33 void add_edge(lli x,lli y,lli z) 34 { 35 edge[ (lli i=head[p];i!

    80880发布于 2018-04-13
  • 来自专栏数据结构与算法

    P3373 【模板】线段树 2 区间求和 区间乘 区间加

    long long 6 using namespace std; 7 const LLI MAXN=400001; 8 LLI read(LLI & n) 9 { 10 char 1].w)%mod; 25 } 26 void build_tree(LLI k,LLI ll,LLI rr) 27 { 28 a[k].l=ll;a[k].r=rr; 29 k,LLI ll,LLI rr,LLI mid) 42 { 43 a[k<<1].w*=a[k].fc;a[k<<1|1].w*=a[k].fc; 44 a[k<<1].w+=a k,LLI ll,LLI rr,LLI v) 53 { 54 if(a[k].l>rr||a[k].r<ll) 55 return ; 56 if(ll<=a[ k,LLI ll,LLI rr,LLI v) 71 { 72 if(a[k].l>rr||a[k].r<ll) 73 return ; 74 if(ll<=a[

    1.1K110发布于 2018-04-13
  • 来自专栏数据结构与算法

    09:LGTB 学分块

    1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #define lli long long int 6 using namespace std; 7 const lli MAXN=100000001; 8 void read(lli &n) 9 { 10 char c='+';lli x=0;bool flag=0; 11 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=1;} 12 while(c>= n=-x:n=x; 15 } 16 lli a[MAXN]; 17 lli l,r; 18 lli n; 19 bool pd(lli num) 20 { 21 lli now=0; 22 lli tot=0; 23 for(lli i=1;i<=n;i++) 24 { 25 if(now+a[i]<num) 26 now+=a[i]

    97270发布于 2018-04-12
  • 来自专栏数据结构与算法

    HDU 2669 Romantic

    long long int 7 using namespace std; 8 void read(lli &n) 9 { 10 char c='+';lli x=0;bool flag n=-x:n=x; 16 } 17 lli x,y; 18 lli exgcd(lli a,lli b,lli & x,lli & y) 19 { 20 if(b==0) 21 { 22 x=1;y=0; 23 return a; 24 } 25 lli r=exgcd(b,a%b,y,x); 26 y-=a/b*x; 27 return r; 28 } 29 int main() 30 { 31 lli a,b; 32 while(scanf("%lld%lld",&a,&b)==2) 33 { 34 lli d=exgcd(a,b,x,y); 35 if(1%d!

    64160发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1774 最接近神的人_NOI导刊2010提高(02)

    long long int 7 using namespace std; 8 const lli MAXN=2000001; 9 lli lowbit(lli p) 10 { 11 return p&-p; 12 } 13 void read(lli &n) 14 { 15 char c='+';lli x=0;bool flag=0; 16 while(c<'0'||c>'9 n=-x:n=x; 21 } 22 lli a[MAXN]; 23 lli tree[MAXN],mp[MAXN]; 24 lli n; 25 lli query(lli p) 26 { 27 lli tot=0; 28 while(p) 29 { 30 tot+=tree[p]; 31 p=p-lowbit(p); 32 } 33 ans=0; 63 for(lli i=1;i<=n;i++) 64 { 65 read(a[i]); 66 mp[i]=a[i]; 67 }

    67560发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1080 国王游戏

    long long int 8 using namespace std; 9 const lli MAXN=1001; 10 inline void read(lli &n) 11 { 12 n=-x:n=x; 16 } 17 struct node 18 { 19 lli a,b; 20 node(){a=0;b=0;} 21 }pep[MAXN]; 22 lli comp (const node &a,const node &b) 23 { 24 return (a.a*a.b<b.a*b.b); 25 } 26 lli now=1; 27 lli ans=0; 28 int main() 29 { 30 lli n; 31 read(n); 32 read(pep[1].a);read(pep[1].b); 33 for(lli i=2;i<=n+1;i++){read(pep[i].a);read(pep[i].b);} 34 sort(pep+2,pep+n+2,comp); 35 for(lli i=1;

    1.1K80发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1732 活蹦乱跳的香穗子

    n=-x:n=x; 18 } 19 lli n,m; 20 lli map[MAXN][MAXN]; 21 lli ans[MAXN][MAXN]; 22 lli xx[5]={-1,+1,0,0}; 23 lli yy[5]={0,0,-1,+1}; 24 lli M_S(lli x,lli y) 25 { 26 if(ans[x][y]) 27 return ans[x][ y]; 28 for(lli i=0;i<4;i++) 29 { 30 lli wx=x+xx[i]; 31 lli wy=y+yy[i]; 32 i=1;i<=n;i++) 41 for(lli j=1;j<=m;j++) 42 read(map[i][j]); 43 for(lli i=1;i< ans[i][j]) 46 M_S(i,j); 47 lli out=-1; 48 for(lli i=1;i<=n;i++) 49 for

    69370发布于 2018-04-12
  • 来自专栏数据结构与算法

    P2563 [AHOI2001]质数和分解

    iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #define lli long long int 7 using namespace std; 8 void read(lli &n) 9 { 10 char c='+';lli x=0;bool flag n=-x:n=x; 16 } 17 lli n,m; 18 lli a[10001]; 19 lli dp[10001]; 20 lli sum[10001]; 21 lli vis[10001]; 22 int main() 23 { 24 dp[0]=1; 25 vis[1]=1; 26 for(lli i=2;i<=201;i++) 27 if(! vis[i]) 28 for(lli j=i*i;j<=301;j+=i) 29 vis[j]=1; 30 for(lli i=2;i<=200;i++)

    890110发布于 2018-04-12
  • 来自专栏数据结构与算法

    2144 砝码称重 2

    <cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<map> 7 #define lli long long int 8 using namespace std; 9 void read(lli &n) 10 { 11 char c='+';lli x=0;bool flag n=-x:n=x; 17 } 18 lli n,p; 19 lli a[10001]; 20 lli sum2[10001]; 21 map<int,bool>mp; 22 lli comp(lli a ,lli b) 23 { 24 return a>b; 25 } 26 lli ans=0x7ffff; 27 void dfs(lli now,lli num,lli step,lli sum now+1]); 43 dfs(now+1,num,step,sum); 44 } 45 int main() 46 { 47 read(n);read(p); 48 for(lli

    1K60发布于 2018-04-12
  • 来自专栏数据结构与算法

    T7316 yyy的最大公约数(者)

    cmath> 5 #include<algorithm> 6 #include<queue> 7 #include<stack> 8 #include<cstdlib> 9 #define lli long long int 10 using namespace std; 11 const int mod = 998244353; 12 const lli maxn=0x7fffff; 13 14 const lli MAXN=10000001; 15 inline void read(lli &n) 16 { 17 char c='+';lli x=0;bool flag=0; 18 n=-x:n=x; 22 } 23 lli n,m; 24 lli ans=0; 25 lli now[MAXN]; 26 int main() 27 { 28 read(n); 29 now[i]=1ll*(n/i)*(m/i); 36 for(lli j=i+i;j<=n;j+=i) 37 now[i]-=now[j]; 38

    68050发布于 2018-04-12
  • 来自专栏数据结构与算法

    1102 A-B数对

    <cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<algorithm> 6 #include<map> 7 #define lli long long int 8 using namespace std; 9 const lli MAXN=200001; 10 lli n,c; 11 map<lli,int>mp; 12 lli a[MAXN]; 13 lli read(lli & n) 14 { 15 char c='.' ;lli x=0,flag=0; 16 while(c<'0'||c>'9') 17 { 18 c=getchar(); 19 if(c=='-')flag 38 for(lli i=1;i<=n;i++) 39 if(mp[a[i]-c]!

    948130发布于 2018-04-13
  • 来自专栏数据结构与算法

    #110. 乘法逆元

    long long int 9 using namespace std; 10 const lli MAXN=10001; 11 void read(lli &n) 12 { 13 char c='+';lli x=0,flag=1; 14 while(c<'0'||c>'9') 15 {c=getchar();if(c=='-')flag=-1;} 16 while (c>='0'&&c<='9') 17 {x=x*10+c-48;c=getchar();} 18 n=(x*flag); 19 } 20 lli n,mod; 21 lli fastpow (lli x,lli n) 22 { 23 lli ans=1; 24 for(;n;) 25 {if(n&1)ans=(ans*x)%mod;x=(x*x)%mod,n=n>> long long int 9 using namespace std; 10 const lli MAXN=10000001; 11 void read(lli &n) 12 { 13

    97550发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1982 小朋友的数字

    long long int 8 using namespace std; 9 const lli MAXN=1000001; 10 void read(lli &n) 11 { 12 char c='+';lli x=0,flag=1; 13 while(c<'0'||c>'9'){c=getchar();if(c=='-')flag=-1;} 14 while(c>='0' &&c<='9'){x=x*10+c-48;c=getchar();} 15 n=x*flag; 16 } 17 lli n,mod; 18 lli dptz[MAXN]; 19 lli dpfs [MAXN]; 20 lli a[MAXN]; 21 lli now=0;// 当前最大字段和 22 lli ans=-1270000; 23 int main() 24 { 25 read( n);read(mod); 26 for(lli i=1;i<=n;i++) 27 read(a[i]); 28 dptz[1]=a[1]; 29 for(lli

    65460发布于 2018-04-12
  • 来自专栏数据结构与算法

    P1832 A+B Problem(再升级)

    然后暴力求解 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<cmath> 5 #define lli long long int 6 using namespace std; 7 const int MAXN=100001; 8 lli vis[MAXN]; 9 lli dp[MAXN]; 10 int main() 11 { 12 lli n,q; 13 cin>>n; 14 dp[0]=1; 15 vis[1]=1; 16 for(lli i=2 ;i<=sqrt(n);i++) 17 { 18 if(vis[i]==0) 19 for(lli j=i*i;j<=n;j=j+i) 20 vis[j]=1; 21 } 22 for(lli i=2;i<=n;i++) 23 if(vis[i]==0) 24 for(lli j=i;j

    68250发布于 2018-04-13
  • 来自专栏数据结构与算法

    P2023 [AHOI2009]维护序列

    long long 7 using namespace std; 8 const int MAXN=500001; 9 lli n,m,mod,ans; 10 void read(lli (lli k,lli ll,lli rr,lli mid) 24 { 25 tree[k<<1].w*=tree[k].fc%mod; 26 tree[k<<1|1].w*=tree k) 49 { 50 tree[k].w=(tree[k<<1].w+tree[k<<1|1].w)%mod; 51 } 52 void build_tree(lli ll,lli rr k,lli ll,lli rr,lli v) 68 { 69 if(ll>tree[k].r||rr<tree[k].l) 70 return ; 71 if(tree k,lli ll,lli rr,lli v) 87 { 88 if(ll>tree[k].r||rr<tree[k].l) 89 return ; 90 if(tree

    831100发布于 2018-04-13
  • 来自专栏数据结构与算法

    P3819 松江1843路

    cstdio> 3 #include<cstring> 4 #include<cmath> 5 #include<queue> 6 #include<algorithm> 7 #define lli long long int 8 using namespace std; 9 const int MAXN=100001; 10 void read(lli &n) 11 { 12 char c='+';lli x=0;bool flag=0; 13 while(c<'0'||c>'9') 14 {c=getchar();if(c=='-')flag=1;} 15 n=-x:n=x; 18 } 19 lli l,n; 20 struct node 21 { 22 lli x,pep; 23 }a[MAXN]; 24 lli tot; 25 lli comp now=0; 42 lli mid=0; 43 for(lli i=1;i<=n;i++) 44 { 45 now+=a[i].pep; 46

    76560发布于 2018-04-12
领券