hdu 5821 Ball 貪心(多校)

2022-08-12 12:30:16 字數 781 閱讀 1629

題目:

題意:

有n個盒子,每個盒子最多裝乙個球. 球的顏色不一定相同.

現在要進行m次區間操作:

每次操作 [l, r] 後可以隨意將區間內的球重新分配回去.

問經過上述操作後是否有可能達到給定的狀態.

分析:

官方題解:

假設有4個紅球,初始時從左到右標為1,2,3,4。那麼肯定存在一種方案,使得最後結束時紅球的順序沒有改變,也是1,2,3,4。 那麼就可以把同色球都寫成若干個不同色球了。所以現在共有n個顏色互異的球。按照最終情況標上1,2,。。,n的序號,那麼貪心的來每次操作就是把乙個區間排序就行了。

**:

using namespace std;

#define fi first

#define se second

typedef pairpii;

const int n=1e3+2;

pii q[n];

int n,m,x,l,r;

int main()

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

}while(m--)

bool flag=1;

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

if(q[i].fi!=i)

if(flag)puts("yes");

else puts("no");

}return

0;}

2016多校總結 hdu5821Ball

新套路get 首先要判斷a陣列可以不可以到達b陣列,如果是1 n那麼就是排序,然後看ab相不相等。但是這個是部分。這裡有兩點關鍵點 1.如果有三個1.位置在b陣列中是pa pb pc 那麼。由a b如果可以到達,那麼一定存在一種方法 是在a中依次遞增的1分別到依次遞增的b陣列。例如 1 1 0 0 ...

Hdu 5821 Ball 貪心 模擬

n個數的序列,給你m次操作,每次操作 l,r 中的數隨意調換位置,問能否變成目標序列。題解在最後 anthor wwq include include include include includeusing namespace std int n1 1005 int n2 1005 struct ...

HDU5821 Ball 2016多校第八場01

大意 給兩串序列,不同數字表示不同的球,0表示沒有,例如 1 0 0 0 0 0 0 1 再給定一組區間,例如 1 3 3 4 依次對區間內球重新放置,問最後能否從第一行變換成第二行序列。假設有4個紅球,初始時從左到右標為1,2,3,4。那麼肯定存在一種方案,使得最後結束時紅球的順序沒有改變,也是1...