求dalao们帮帮忙,55分超时

P2119 [NOIP2016 普及组] 魔法阵

怎么优化?
by 一只野生蒟蒻 @ 2017-10-29 19:21:58


@[一只野生蒟蒻](/space/show?uid=32315) [善意提醒]头像。。你怕是药丸。。 [redbag管理员](https://www.luogu.org/space/show?uid=2674)
by zengqinyi @ 2017-10-29 19:38:32


@[zengqinyi](/space/show?uid=47062) 喵喵喵?有很多人都用kkk头像的啊?
by liuli234——流离 @ 2017-10-29 20:11:04


```cpp #include<iostream> #include<cstdio> #include<algorithm> using namespace std; int a,b,c,i,j,k[15009]={0},m,n,f[15009],d[40009],ans[5][15009]={0},no; int main() { cin>>n>>m; for(i=1;i<=m;i++) { cin>>a; d[i]=a; k[a]++; } for(i=1;i<=n/9;i++) { int z,s;z=0;s=0; for(j=i*8;j<=n-i;j++) { if(k[j]!=0&&k[j+i]!=0) { z++; f[z]=j; s+=k[j]*k[j+i]; } } int tz=1,ss=0; for(j=1;j<=n-i*7;j++) if(k[j]!=0&&k[j+i*2]!=0) { while(f[tz]<=j+i*8 && tz<=z) { s-=k[f[tz]]*k[f[tz]+i]; ans[3][f[tz]]+=ss*k[f[tz]+i]; ans[4][f[tz]+i]+=ss*k[f[tz]]; tz++; } ans[1][j]+=s*k[j+2*i]; ans[2][j+2*i]+=s*k[j]; ss+=k[j]*k[j+i*2]; } for(;tz<=z;tz++) { ans[3][f[tz]]+=ss*k[f[tz]+i]; ans[4][f[tz]+i]+=ss*k[f[tz]]; } } for(i=1;i<=m;i++) { no=d[i]; cout<<ans[1][no]<<' '<<ans[2][no]<<' '<<ans[3][no]<<' '<<ans[4][no]<<endl; } return 0; } ```
by awask @ 2017-11-01 20:27:06


这题当年用暴搜的就骗到了55分......
by lemir3 @ 2017-11-02 13:23:48


@[上善若水丶](/space/show?uid=54986) 求大佬帮我看看我这个暴力为什么错了? ```cpp #include <bits/stdc++.h> using namespace std; int n,m,x[40009]; struct U { int yi; int er; int san; int si; }; U fj[40009]; int main() { scanf("%d %d",&n,&m); for(int i=1; i<=m; i++) { scanf("%d",&x[i]); double(x[i]); } for(int a=1; a<=m; a++) { for(int b=1; b<=m; b++) { for(int c=1; c<=m; c++) { for(int d=1; d<=m; d++) { if(x[a]<x[b]&&x[b]<x[c]&&x[c]<x[d]&&x[b]-x[a]==2*(x[d]-x[c])&&x[b]-x[a]<(x[c]-x[b])/3) { fj[a].yi++; fj[b].er++; fj[c].san++; fj[d].si++; } } } } } for(int i=1; i<=m; i++) { printf("%d %d %d %d\n",fj[i].yi,fj[i].er,fj[i].san,fj[i].si); } return 0; } ```
by si_zhong @ 2018-08-07 19:54:02


@[蒟蒻chi_chi](/space/show?uid=31728) 我又没说是我骗的.....
by lemir3 @ 2018-08-08 17:18:08


|