1. 程式人生 > >長沙集訓day7

長沙集訓day7

今天 內容 意思 但是 -1 自然 -s for 操作

---恢復內容開始---

     這輸入法有毒哇。(XF剛剛筆記本卡了,沒有保存,還得在打QAQ)

    已經來著一個星期了,這星期的集訓又開始了,直接進入正題

    t1:

    給你一個長度為n的序列,讓你求出abs(a[i]-i)的最小值和。你可以對數列做一次操作,使得數列所有的數往前移動一個,第一項變為第n項。看到這道題想了一會,暴力分是很好拿的,但是優化沒有想出來,害怕後面的分拿不到,所以就先打了一個30分的暴力。就是將原序列的長度擴大一倍,使a[i+n]=a[i],這樣直接往後掃就可以了,不用考慮操作完後的數列了,所以直接依次求出序列的最小值就可以了。

    t2:

    給你n個點,每個點的度,讓你求出有多少種組成無向圖的情況。當時直接略過這道題了,沒有理解懂什麽意思。(這輸入法真的搞笑)

    先說t3:

    給了一個奇奇怪怪的公式,我LFY的電腦我還不會截屏QAQ,公式就先不站了,回來不上。這道題又和莫比烏斯函數有關,上星期考過一次莫比烏斯反演。當時考完之後還查了查,今天就又考了。

    他也給出了莫比烏斯函數的性質:

    (1)μ(1) = 1

    (2)當 n 存在平方因子時,μ(n) = 0

    (3)當 n 是奇數個不同素數之積時,μ(n) = ?1

    (4)當 n 是偶數個不同素數之積時,μ(n) = 1

    為防止拿不到分,現給出前 10 個自然數的 μ 值:{1, ?1, ?1, 0, ?1, 1, ?1, 0, 0, 1}

    然後就可以求出後面項的莫比烏斯函數,可以先求1-10000的素數,然後在判斷1-10000中每個函數的因數,如果有平方因子的話就為0(比方說:18的一個因子為9,9為平方數,所以18有平方因子)然後照著性質敲就好了。

    然後直接暴力求出函數的答案就好了。暴力30分。

    (暴力出奇跡)

    然後今天就拿到了60分。  

    然後今天又查了查莫比烏斯函數前n項的公式:

    m[1]=1;

    for(int i=1;i<=n;i++)

    {

      for(int j=2*i;j<=n;j+=i)

      {

        m[j]-=m[i];

      }

    }

    下午講了講DP入門的知識,和一些我們OJ上有的題,又理解理解了DP這個東西。因為畢竟學過DP,也都能聽懂。

長沙集訓day7