糰子最大家族(clannad)

2021-09-10 22:31:18 字數 1333 閱讀 5802

bx2k有許多五顏六色的萌萌噠糰子。每個糰子有一種顏色。

他決定將m個糰子排成一排。為了美觀,他要求任何相鄰的兩個糰子不能有相同的顏色。

因為bx2k很懶,因此他來尋求你的幫助。

輸入檔案包含兩行。

第一行為乙個整數n,表示共有n種顏色的糰子。

第二行為n個空格隔開的整數ai,表示顏色為i的糰子有ai個。題目中的m=n∑i=1aim=∑i=1nai

輸出檔案包含一行,m個空格隔開的整數,表示你給出的方案。如果有多種方案,輸出任意一種即可。如果不存在合法方案,輸出-1。

樣例輸入1

32 3 3

樣例輸入2

12

樣例輸出1

1 2 3 2 3 2 3 1

樣例輸出2

-1

資料規模與約定

本題有10個測試點,每個測試點佔10%的分數。

對於100%資料,時間限制為1s,空間限制為256mb。

對於20%的資料,n≤5,m≤10。

對於50%的資料,n≤1000,m≤1000。

另外20%的資料,n≤20,m≤100000。

對於100%的資料,1≤n≤100000,1≤m≤100000,1≤ai≤m。

南外模擬卷

好水。。但我想了好久

只要把每乙個扔進大跟堆裡,每次取堆頂的兩個,然後再放回

效率o(mlogn)

#include#include#include#include#include#include#include#define maxn 100005

using namespace std;

int n,s[maxn],max,ans[maxn],top,num;

struct node

}t;priority_queueq;

int main()

if(max>num/2)

while(!q.empty())

node y=q.top();q.pop();

x.num--;y.num--;

if(ans[top]==x.co)ans[++top]=y.co,ans[++top]=x.co;

else ans[++top]=x.co,ans[++top]=y.co;

if(x.num)q.push(x);

if(y.num)q.push(y);

}cout<

posted @

2018-09-23 16:03

liankewei 閱讀(

...)

編輯收藏

糰子大家族(結論題 思維)

題目描述 dango,dango,dango daikazoku 糰子,糰子,糰子大家族。糰子 是 動畫 clannad 中虛構的一種很萌的生物,也是本題的主人公。糰子們在一起做遊戲。首先,n個糰子們每個糰子有乙個編號,排成一排。接下來進行若干輪操作。奇數輪,每個糰子把自己的編號變成自己原先編號和右...

集合大家族

今天看到了一張集合的圖,想著有空了進行整理整理,前面高能,哈哈哈哈 看圖 我們可以看到在集合 容器 的左右都有介面,而右邊的偏多,這張圖總結了各個介面的優缺點以及面試中會遇到的問題。右邊 iterable iterable是iterator 迭代器 的父類,實現了iterable介面的類都可以擁有增...

offset三大家族

offset家族 1.1 三大家族和乙個事件物件 三大家族 offset scroll client 事件物件 event 事件被觸動時,滑鼠和鍵盤的狀態 通過屬性控制 1.2 offset家族簡介 offset這個單詞本身是 偏移,補償,位移的意思。js中有一套方便的獲取元素尺寸的辦法就是offs...