现在来找找AC方式,首先,剖析题目,列出条件:Xa<Xb<Xc<Xd,Xb-Xa=2(Xd-Xc),Xb-Xa<Xc-Xb/3

        遇到这种有条件的题,通常把图形画出来比较直观。

        如图所示,若把d点确定,设c-d距离为i,则a,b的距离就是2i,则b,c的距离>2*(a-b)也就是>6i,总距离大于9i,那么我们的外层循环就枚举i,再枚举d的位置,d的方案数就等于(前面所有a的方案)*(前面所有b的方案)*(当前c的方案数),c的方案数=(前面所有a的方案)*(前面所有b的方案)*(当前d的方案数),同理,枚举a的位置,也可以得到a与b的方案数。

        当然,说了这么多估计你也可能是懵逼的,看看代码再结合一下分析吧。

[cpp] view plaincopy print?
  1. #include<cstdio>
  2. #define M 15005
  3. int a[M],b[M],c[M],d[M],w[3*M],h[3*M];
  4. int n,m,i,j,x,s;//s就是上面的y,累加和
  5. int main()
  6. {
  7. scanf("%d%d",&n,&m);
  8. for(i=1;i<=m;i++)
  9. {
  10. scanf("%d",&h[i]);
  11. w[h[i]]++;
  12. }
  13. for(i=1;9*i<n;i++)//注意是总长度>9*i,边界一定要考虑无误,想通为什么
  14. {
  15. x=9*i+1;s=0;//设边界最好画个草图自己算一算
  16. for(j=9*i+2;j<=n;j++)
  17. {
  18. s+=w[j-x]*w[j-x+2*i];
  19. d[j]+=s*w[j-i];
  20. c[j-i]+=s*w[j];
  21. }
  22. s=0;
  23. for(j=n-x;j>=1;j--)//注意循环不能顺序,因为s的累加和会改变,a[j]会加上后面的c,d,而不是前面的
  24. {
  25. s+=w[j+x]*w[j+x-i];
  26. a[j]+=s*w[j+2*i];
  27. b[j+2*i]+=s*w[j];
  28. }
  29. }
  30. for(i=1;i<=m;i++)
  31. printf("%d %d %d %d\n",a[h[i]],b[h[i]],c[h[i]],d[h[i]]);
  32. }

【NOIP2016】魔法阵(节选自冬雪_狂舞_桀骜-xmy的博客)相关推荐

  1. ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装

    ubuntu 安装Pangolin 过程_余辉亮的学习笔记的博客-CSDN博客_pangolin安装

  2. python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客

    python脚本监控网站状态 - 赵海华_运维之路 - 51CTO技术博客 python脚本监控网站状态 2013-01-09 09:21:02 标签:监控 python 原创作品,允许转载,转载时请 ...

  3. 酷绅下午茶:那些年 那些事(一)_型牌男装在线定做 - 阿里巴巴博客

    酷绅下午茶:那些年 那些事(一)_型牌男装在线定做 - 阿里巴巴博客 酷绅下午茶:那些年 那些事(一)_型牌男装在线定做 - 阿里巴巴博客 酷绅下午茶:那些年 那些事(一) (2010/01/08 1 ...

  4. 从头再来博客_免费课程:从头开始构建博客吗?

    从头再来博客 by ZAYDEK 由ZAYDEK 瓷砖... (TIL-) 免费课程:从头开始构建博客吗? (Free Course: Build A Blog From Scratch ?‍?) 可 ...

  5. django orm级联_第 03 篇:创建 Django 博客的数据库模型

    HelloGitHub-Team 成员--追梦人物 设计博客的数据库表结构 博客最主要的功能就是展示我们写的文章,它需要从某个地方获取博客文章数据才能把文章展示出来,通常来说这个地方就是数据库.我们把 ...

  6. 宝塔php安装那个合_通过宝塔面板一键搭建wordpress博客

    上篇文章: 雪影IP工作室:linux服务器搭建宝塔最全教程​zhuanlan.zhihu.com 一.前言 hello,欢迎大家观看本次教程,博主在这里教程大家怎么使用宝塔一键搭建wordpress ...

  7. 用户名或用户域名_给自己的Hexo+GitHub静态博客绑定自己的专属域名

    前言 GitHub+Hexo静态博客详细教程,介绍:对比:部署:发布 - 听海的博客​www.tsingsea.com 以上是Hexo+GitHub静态博客超级详细搭建教程的正文部分,也算是这个专题教 ...

  8. java 秒杀多线程_秒杀多线程系列 - 随笔分类 - Joyfulmath - 博客园

    随笔分类 - 秒杀多线程系列 秒杀多线程系列,该系列转载至CSDN MoreWindows: http://blog.csdn.net/morewindows/article/details/7392 ...

  9. 搭建github服务器_搭建一个属于自己的公网博客

    相信每一位程序员都喜欢拥有一个属于自己的博客. 当然,在我认为,内容以及模块都要自己进行可扩展定义才是真正属于自己的. 那么想要一个博客就必须要有一个服务器和一个域名,这样的话才能让自己的博文内容发扬 ...

  10. java字节流转字符流的步骤_字节流-java入门基础笔记-51CTO博客

    [14]字节流 一.字节流 1.什么是字节流是IO流中的一种, 可以用来读写字节数据. 2.字节流和字符流的区别计算机中存储任何数据都是以字节的形式, 所以字节流可以读写任意类型的数据. 在读写的数据 ...

最新文章

  1. 试验OSPF域内IP地址冲突会造成的安全问题
  2. STM32F103 SPI flash操作注意事项
  3. [导入]竟然支持OpenGL ES!
  4. 解决ubuntu和windows之间无法复制粘贴问题
  5. “等等党”的春天到了?高端显卡暴降35% 华强北商家:还会继续降
  6. Python自然语言处理学习笔记(30):4.2 序列
  7. eclipse——配置maven插件
  8. 5分钟快速了解区块链中的哈希值Hash(用户密码存储举例说明)?
  9. HDU-4622 Reincarnation (后缀自动机)
  10. python定时发送qq消息_自动给qq好友发消息
  11. H5页面手机端禁止缩放的正确方式
  12. C++ 不知算法系列之聊聊希尔、归并排序算法中的分治哲学
  13. vue表格(table)计算总计
  14. 特征选择(一)-维数问题与类内距离
  15. 【Vue】Vue 项目搭建
  16. 隐马尔可夫模型(背景介绍)
  17. 一周新闻纵览:法国破获国际黑客软件;YouTube侵犯儿童隐私;换脸软件ZAO修改用户协议
  18. 不想丧班?BOSS直聘包场邀你免费嗨唱一夜 | 互联网行业公会
  19. 数码管循环显示单个数字
  20. Cadence Allegro 如何批量替换过孔?

热门文章

  1. 关于《0bug》一书随机数的一处修订
  2. 优质的服务器机房有哪些表现
  3. 4826 Problem A 计算组合数
  4. class文件加密和解密
  5. 怎么用一个计算机控制两个屏幕,一台电脑控制多个led显示屏
  6. phpcms 会员头像h5上传_PHPCMS 在任意页面调取会员头像
  7. 好消息!这些城市个人手机、在家“刷脸”都能提取公积金,有你家吗?
  8. xp故障恢复控制台修复系统_自我修复系统
  9. 23 个学习 JavaScript 的地方
  10. [网络性能测试学习笔记] 测试AX3 Pro WiFi6无线路由器的系统转发能力(硬件转发交换能力L23吞吐量,L47应用层能力-最大可支持设备用户数,并发连接数等)