博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
洛谷 P2119 魔法阵 题解
阅读量:4316 次
发布时间:2019-06-06

本文共 1356 字,大约阅读时间需要 4 分钟。

Analysis

这道题也是考试题,我也依然打了个n三次方暴力。正解是先枚举差,再枚举c和d,a和b用乘法原理优化,这样就能大大减少时间。

1 #include
2 #include
3 #include
4 #include
5 #define max_n 50010 6 using namespace std; 7 int n,m,maxn=0,minn=99999999; 8 int a[max_n],book[max_n],ansa[max_n],ansb[max_n],ansc[max_n],ansd[max_n]; 9 inline int read() 10 {11 int x=0;12 bool f=1;13 char c=getchar();14 for(; !isdigit(c); c=getchar()) if(c=='-') f=0;15 for(; isdigit(c); c=getchar()) x=(x<<3)+(x<<1)+c-'0';16 if(f) return x;17 return 0-x;18 }19 inline void write(int x)20 {21 if(x<0){putchar('-');x=-x;}22 if(x>9)write(x/10);23 putchar(x%10+'0');24 }25 int main()26 {27 n=read();m=read();28 for(int i=1;i<=m;i++)29 {30 a[i]=read();31 book[a[i]]++;32 }33 for(int cha=1;cha*9
=1;a--)47 {48 int b=a+2*cha;49 int c=b+6*cha+1;50 int d=c+cha;51 sum+=book[c]*book[d];52 ansa[a]+=sum*book[b];53 ansb[b]+=sum*book[a];54 }55 }56 for(int i=1;i<=m;i++)57 {58 printf("%d %d %d %d\n",ansa[a[i]],ansb[a[i]],ansc[a[i]],ansd[a[i]]);59 }60 return 0;61 }
请各位大佬斧正 (反正我不认识斧正是什么意思)

转载于:https://www.cnblogs.com/handsome-zyc/p/11264391.html

你可能感兴趣的文章
K-Means聚类和EM算法复习总结
查看>>
[转]Bat脚本处理ftp超强案例解说
查看>>
P3901 数列找不同
查看>>
利用无线网络数据包分析无线网络安全
查看>>
MEMBER REPORT
查看>>
[HAOI2006]受欢迎的牛
查看>>
使用jquery去掉时光轴头尾部的线条
查看>>
算法(转)
查看>>
网络字节顺序
查看>>
复制mueclipse项目到eclipse
查看>>
飞扬的小鸟
查看>>
玩转TypeScript(2) --简单TypeScript类型
查看>>
Asp.net 解析json
查看>>
程序猿崛起3——这一次,我用行动说话
查看>>
201521123038 《Java程序设计》 第一周学习总结
查看>>
每天一个linux命令(20):find命令之exec
查看>>
MVC HtmlHelper用法大全
查看>>
SQL分布式查询、跨数据库查询
查看>>
python国内豆瓣源
查看>>
redux、immutablejs和mobx性能对比(三)
查看>>