40分代码 TLE跪求大佬帮忙

P2119 [NOIP2016 普及组] 魔法阵

你的算法完全就是非正解 四重循环当然不会过这道题
by cszmc2004 @ 2017-08-18 14:19:48


```cpp #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <cmath> #include <string> #include <cmath> #include <queue> #include <stack> #include <set> #include <map> #include <vector> using namespace std; int f[15005][5]; int x[40005]; int main() { //freopen(".in","r",stdin); //freopen(".out","w",stdout); int n,m; cin>>n>>m; for(int i=1;i<=m;i++) scanf("%d",&x[i]),f[x[i]][0]++; for(int i=1;i<=n/9;i++) { int t=0,a=1; for(int d=9*i+2;d<=n;d++) { t+=f[a][0]*f[a+2*i][0]; a++; f[d][4]+=t*f[d-i][0]; f[d-i][3]+=t*f[d][0]; } t=0; int d=n; for(int a=n-9*i-1;a>=1;a--) { t+=f[d][0]*f[d-i][0]; d--; f[a][1]+=t*f[a+2*i][0]; f[a+2*i][2]+=t*f[a][0]; } } for(int i=1;i<=m;i++) printf("%d %d %d %d\n",f[x[i]][1],f[x[i]][2],f[x[i]][3],f[x[i]][4]); return 0; } ```
by CSZBA @ 2017-09-08 19:58:59


两重一定超时
by c919x919y919 @ 2017-09-27 21:13:57


|