笔记-[AH2017/HNOI2017]礼物

[AH2017/HNOI2017]礼物


\[\begin{split}
ans_i=&\sum_{j=1}^n(a_j-b_j+i)^2\\
=&\sum_{j=1}^n(a_j^2+b_j^2+i^2-2a_jb_j+2ia_j-2ib_j)\\
=&\sum_{j=1}^na_j^2+\sum_{j=1}^nb_j^2+ni^2+2i\sum_{j=1}^na_j-2i\sum_{j=1}^nb_j-2\sum_{j=1}^na_jb_j\\
\end{split}
\]

  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. //Start
  4. #define lng long long
  5. #define db double
  6. #define mk make_pair
  7. #define pb push_back
  8. #define fi first
  9. #define se second
  10. #define rz resize
  11. const int inf=0x3f3f3f3f;
  12. const lng INF=0x3f3f3f3f3f3f3f3f;
  13. //Data
  14. const int N=3e5;
  15. int n,m;
  16. lng sa,saa,sb,sbb,sab[N+7],ans=INF;
  17. //FFT
  18. const db Pi=acos(-1);
  19. typedef pair<db,db> cp;
  20. cp operator+(const cp a,const cp b){return mk(a.fi+b.fi,a.se+b.se);}
  21. cp operator-(const cp a,const cp b){return mk(a.fi-b.fi,a.se-b.se);}
  22. cp operator*(const cp a,const cp b){return mk(a.fi*b.fi-a.se*b.se,a.fi*b.se+a.se*b.fi);}
  23. vector<cp> a(N+7),b(N+7);
  24. int lim=1,ln,r[N+7];
  25. void FFT(vector<cp>&f,int t){
  26. for(int i=0;i<lim;i++)if(i<r[i]) swap(f[i],f[r[i]]);
  27. for(int mid=1;mid<lim;mid<<=1){
  28. cp wn(mk(cos(Pi/mid),sin(Pi/mid)*t));
  29. for(int j=0;j<lim;j+=(mid<<1)){
  30. cp w(mk(1,0));
  31. for(int k=j;k<mid+j;w=w*wn,k++){
  32. cp x(f[k]),y(w*f[mid+k]);
  33. f[k]=x+y,f[mid+k]=x-y;
  34. }
  35. }
  36. }
  37. }
  38. //Main
  39. int main(){
  40. scanf("%d%d",&n,&m);
  41. for(int i=1,x;i<=n;i++)
  42. scanf("%d",&x),a[n+i].fi=a[i].fi=x,sa+=x,saa+=1ll*x*x;
  43. for(int i=1,x;i<=n;i++)
  44. scanf("%d",&x),b[n+1-i].fi=x,sb+=x,sbb+=1ll*x*x;
  45. while(lim<=((n<<1)+n)) lim<<=1,ln++;
  46. for(int i=0;i<lim;i++) r[i]=(r[i>>1]>>1)|((i&1)<<(ln-1));
  47. FFT(a,1),FFT(b,1);
  48. for(int i=0;i<lim;i++) a[i]=a[i]*b[i];
  49. FFT(a,-1);
  50. for(int i=0;i<lim;i++) sab[i]=a[i].fi/lim+0.5;
  51. for(int i=1;i<=n;i++)
  52. for(int j=-m;j<=m;j++)
  53. ans=min(ans,saa+sbb+n*j*j+2ll*j*sa-2ll*j*sb-2ll*sab[i+n]);
  54. printf("%lld\n",ans);
  55. return 0;
  56. }

笔记-[AH2017/HNOI2017]礼物的更多相关文章

  1. P3723 [AH2017/HNOI2017]礼物

    题目链接:[AH2017/HNOI2017]礼物 题意: 两个环x, y 长度都为n k可取 0 ~ n - 1      c可取任意值 求 ∑ ( x[i] - y[(i + k) % n + 1] ...

  2. 洛谷 P3723 [AH2017/HNOI2017]礼物 解题报告

    P3723 [AH2017/HNOI2017]礼物 题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手环,一个留给自己,一个送给她.每个手环上各有 \(n\) 个 ...

  3. [Luogu P3723] [AH2017/HNOI2017]礼物 (FFT 卷积)

    题面 传送门:洛咕 Solution 调得我头大,我好菜啊 好吧,我们来颓柿子吧: 我们可以只旋转其中一个手环.对于亮度的问题,因为可以在两个串上增加亮度,我们也可以看做是可以为负数的. 所以说,我们 ...

  4. [AH2017/HNOI2017]礼物(FFT)

    题目描述 我的室友最近喜欢上了一个可爱的小女生.马上就要到她的生日了,他决定买一对情侣手 环,一个留给自己,一 个送给她.每个手环上各有 n 个装饰物,并且每个装饰物都有一定的亮度.但是在她生日的前一 ...

  5. [AH2017/HNOI2017]礼物

    题解: 水题 化简一波式子会发现就是个二次函数再加上一个常数 而只有常数中的-2sigma(xiyi)是随移动而变化的 所以只要o(1)求出二次函数最大值然后搞出sigma(xiyi)就可以了 这个东 ...

  6. 【文文殿下】[AH2017/HNOI2017]礼物

    题解 二项式展开,然后暴力FFT就好了.会发现有一个卷积与c无关,我们找一个最小的项就行了. Tips:记得要倍长其中一个数组,防止FFT出锅 代码如下: #include<bits/stdc+ ...

  7. BZOJ4827:[AH2017/HNOI2017]礼物——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4827 https://www.luogu.org/problemnew/show/P3723 题面 ...

  8. Luogu 3723 [AH2017/HNOI2017]礼物

    BZOJ 4827 $$\sum_{i = 1}^{n}(x_i - y_i + c)^2 = \sum_{i = 1}^{n}(x_i^2 + y_i^2 + c^2 - 2 * x_iy_i + ...

  9. 【[AH2017/HNOI2017]礼物】

    题目 又是我不会做的题了 看看柿子吧 \[\sum(a_i+c-b_i)^2\] 最小化这个柿子 之所以不写下标是因为我们这个\(\{a\},\{b\}\)可以循环同构 那就开始化吧 \[\sum(a ...

随机推荐

  1. Apache POI读写Excel

    Apache POI是Apache软件基金会的开放源码函式库,POIAPI给Java程序对Microsoft Office格式档案读和写的功能. 官方文档 [https://poi.apache.or ...

  2. 玩转 Comparator 和 Comparable 两接口

    最近项目中有排序的需求,就查看了一下Java文档,发现有两个接口都可以进行排序,Comparable 和 Comparator 两接口到底有啥区别?何时用?怎么用?使用场景我都在底下一一研究分享出来: ...

  3. powertool

    powertool简介 PowerTool 一款免费强大的进程管理器,支持进程强制结束,可以Unlock占用文件的进程,查看文件/文件夹被占用的情况,内核模块和驱动的查看和管理,进程模块的内存的dum ...

  4. 思维导图软件iMindMap制作技巧有哪些

    iMindMap11是iMindMap全新的版本.它可以提供给我们更好的灵活性以便我们将我们的思维进行可视化,并进一步的呈现和开发出属于自己的想法以及思维方式.在iMindMap中我们可以利用思维导图 ...

  5. FL Studio通道常规设置

    每个通道设置窗口都包含声相.音量.音高和混音音轨等.刚学习FL Studio的同学可能对这些旋钮的功能还不是很了解,所以也就直接导致了不能很好的运用.为了帮助同学进一步熟悉这款软件,小编今天将为大家详 ...

  6. nginx学习http_access_module模块

    location ~ ^/1.html { root /opt/app/code; deny XXXXX; #这个ip不能访问1.html allow all; #其他的可以访问这个页面1.html ...

  7. Redis 基础设计结构之三 hash(哈希)

    Redis 有 5 种基础数据结构,分别为:string (字符串).list (列表).set (集合).hash (哈希) 和 zset (有序集合). 今天来说一下hash(哈希),hash的数 ...

  8. 解决linux挖矿病毒(kdevtmpfsi,sysupdate, networkservice)

    突然发现公司测试服务器CPU过高,是这两个sysupdate, networkservice进程,很明显是被挖矿了,记录下来以供参考. 病毒会把一些文件给加i锁或a锁,导致无法修改数据,所以某些操作需 ...

  9. C#中的WinForm问题——使用滚动条时页面闪烁及重影问题

    当使用鼠标进行滚动查看页面时,由于页面会频繁刷新,如果页面中控件较多会导致页面出现闪烁.重影等问题,如下图所示: 在网上搜索过该问题,大部分都说使用双缓冲可以解决此类问题,即通过设置DoubleBuf ...

  10. 17.java设计模式之观察者模式

    基本需求: 气象站可以将每天测量到的温度,湿度,气压等等,以公告的形式发布出去(比如发布到自己的网站或第三方) 需要设计开放型API,便于其他第三方也能接入气象站获取数据 提供温度.气压和湿度的接口 ...