NOIP2005 篝火晚會

2021-07-06 02:49:24 字數 924 閱讀 4832

題目:

分析:置換群.

首先理解題意:b1,b2,..bn是無限制的,並非連續,並非遞增,隨便選。於是可以形成若干個環,乙個環的花費是這個環包含的元素個數。

所以,最小花費就是多少個人不在應在的位置上。

再,多少個人不在應在的位置上=n-最多多少人在應在的位置上。

然後,這個可以用偏移量求,求偏移量中包含元素最多的,這個就是最多多少人在應在的位置上。

用n減去這個值就是答案

因為是乙個環沒有方向,所以初始狀態1..n和n..1都要算一遍。

**:

#include 

#include

#include

using

namespace

std;

const

int tmax=1000005;

int n,m,w[tmax],v[tmax],l[tmax],r[tmax],tmaxw;

long

long

int s,sumn[tmax],sumv[tmax];

long

long

int check(int num)

for(i=1;i<=m;i++)

ans+=(sumn[r[i]]-sumn[l[i]-1])*(sumv[r[i]]-sumv[l[i]-1]);

return s-ans;

}void work()

printf("%lld",min(abs(check(l)),check(l+1)));

return ;

}int main()

for(i=1;i<=m;i++)

scanf("%d%d",&l[i],&r[i]);

work();

return

0;}

Noip2005 篝火晚會

佳佳剛進高中,在軍訓的時候,由於佳佳吃苦耐勞,很快得到了教官的賞識,成為了 小教官 在軍訓結束的那天晚上,佳佳被命令組織同學們進行篝火晚會。一共有nnn個同學,編號從111到nnn。一開始,同學們按照1,2,n1,2,n1,2,n的順序坐成一圈,而實際上每個人都有兩個最希望相鄰的同學。如何下命令調整...

NOIP 2005 篝火晚會

額 對這組題感興趣的具體的解題報告可以戳戳這裡 問題描述 佳佳剛進高中,在軍訓的時候,由於佳佳吃苦耐勞,很快得到了教官的賞識,成為了 小教官 在軍訓結束的那天晚上,佳佳被命令組織同學們進行篝火晚會。一共有n個同學,編號從1到n。一開始,同學們按照1,2,n的順序坐成一圈,而實際上每個人都有兩個最希望...

NOIp2005 篝火晚會

luogu1053 首先要發現乙個事實 對於每個不再正確位置上的人,我們都要花費1的代價來讓他正確 然而我沒有發現 todo 證明這個事實。然後就可以轉化問題為 最多有多少個人不用動。那麼那些人不用動呢?就是那些與目標位置距離相等的人的集合,即斷環為鏈之後,不用右移就在目標位置的人 右移一次到達目標...