[NOIP2016普及组]魔法阵

技术[NOIP2016普及组]魔法阵 [NOIP2016普及组]魔法阵不是枚举暴力,也不是推式子 $\mathcal{O(1)}$,而是两者的有机结合——通过数学推导减少枚举量,满足时间复杂度要求。很大

【NOIP2016普及组】魔法阵

不是枚举暴力,也不是公式$\mathcal{O(1)}$,而是两者的有机结合。——通过数学推导减少了枚举量,满足时间复杂度要求。

很大程度上借鉴了Henry_y的博客,把一些地方改成了你能看懂的版本。

当我得到这个问题时,我遇到了暴力。因为取得了不错的成绩,我得了65分。具体操作如下:

记录和排序(可以通过对数组实现),\(b\)可以从\(a 1\)枚举,\(c\)可以从\(b 1\)枚举,以此类推;

枚举\(b,c,d\)后,if立即判断是否满足\(x _ ax _ bx _ CX _ d \);

枚举完\(c\)后,立即判断\(3(X_b-X_a)X_c-X_b\),注意乘除。

似乎还有闲荡的空间。比如枚举\(a,b,c\)后,\(d\)已经确认,可以通过记录一些奇怪的东西来继续卡片。然而,暴力有时会结束。让我们看看正解。

反正是要列举的。让我们从三个公式开始,看看是否有任何属性。设\(X_d-X_c=t\),则有\(X_b-X_a=2t,X_c-X_b6t\)。如果您制作\(X_c-X_b=6t k\)(组成剩余部分),关系图如下:

枚举\(t\)自然就想到了,因为\(k\ge 1\)就足以保证\(1\le 9tn\)。枚举\(d\)以确定\(c\): \(c=d-t\)的位置。对于这组\(c,d\),最大值\(a,b\)为\(d-9-1,d-7t-1\)。让\(cnt_x\)表示值\(x\)(即桶)的出现次数,那么这组解对答案的贡献就是\(CNT _ a \乘以cnt_b\),乘法原理。

如果\(a,b\)较小,则必须为真(满足\(X_c-X-b6t\))。不难想到前缀和优化。每次C [C]=sum * CNT [d],d [d]=sum,累加a \ (sum=\ sum _ {a \阿乐_ {max},b \ le b _ {max}} CNT _ a \乘以CNT _ b \。很好。

计算\(a,b\)同样,将其更改为枚举\(a\),向后运行,并记录后缀sum (\(cnt_c\times cnt_d\))。

以下是空调代码:

int main(){ 0

int n,m;读(n),读(m);

for(int I=1;I=m;i) read(x[i]),CNT[x[I]];

for(int t=1,sumt * 9nt){ 0

sum=0;

for(int d=t * 9 ^ 2;d=n;d){

int a=d-t*9-1,b=d-t*7-1,c=d-t;

sum=CNT[a]* CNT[b];//前缀和

C[c]=sum*cnt[d],D[D]=sum * CNT[c];//乘法原理,下同

}

sum=0;

for(int a=n-t * 9-1;a;-a){ 0

int b=a t*2,c=a t*8 1,d=a t * 9 1;

sum=CNT[c]* CNT[d];//后缀和

A[a]=sum*cnt[b],B[B]=sum * CNT[a];

}

}

for(int I=1;I=m;I){ 0

写(A[x[i]]),PT,写(B[x[i]]),PT,

写(C[x[i]]),PT,写(D[x[i]]),EN;//注意ABCD的出现次数作为此时的值,而不是数字。

}

返回0;

}

THE END

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/81989.html

(0)

相关推荐

  • python模块shutil函数怎么用

    技术python模块shutil函数怎么用小编给大家分享一下python模块shutil函数怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!本文大纲os模块是Python标准库中一个重要的模块,里面

    攻略 2021年10月27日
  • css中下划线样式怎么设置长度

    技术css中下划线样式怎么设置长度这篇文章主要介绍“css中下划线样式怎么设置长度”,在日常操作中,相信很多人在css中下划线样式怎么设置长度问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”

    攻略 2021年11月30日
  • 香港服务器建站哪些参数会影响SEO的效果

    技术香港服务器建站哪些参数会影响SEO的效果很多用户在网站SEO的时候经常关注内容和代码的优化更新,但是却忽略服务器的性能也会对网站的SEO效果有影响,特别是对于在香港服务器上建站的用户而言,由于香港地区的网络特殊性不同

    礼包 2021年12月16日
  • 内衣码数对照表,胸罩分为哪几个等级,哪个最大

    技术内衣码数对照表,胸罩分为哪几个等级,哪个最大1.罩杯尺寸罩杯尺寸=胸围-下胸围(例如内衣码数对照表:10cm=A罩杯.13cm=B罩杯.15cm=C罩杯18cm=D罩杯.20cm=E罩杯)
    胸罩罩杯尺寸说明表
    罩杯型

    生活 2021年10月24日
  • Eos离线密钥生成的PHP代码怎么写

    技术Eos离线密钥生成的PHP代码怎么写Eos离线密钥生成的PHP代码怎么写,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。虽然EOS的密钥算法类似于比特

    攻略 2021年10月23日
  • 四氯化碳的密度,甲苯与四氯化碳的密度关系

    技术四氯化碳的密度,甲苯与四氯化碳的密度关系Br溶于水呈橙黄色四氯化碳的密度,溶于四氯化碳呈橙红色, 由于水的密度比四氯化碳的要小,所以四氯化碳在下面, 渐渐水中的BR就溶到四氯化碳了,
    所以上层无色,下层橙色。

    生活 2021年10月23日