grace.cpp
題目描述
設乙個含有n個數的序列的優雅度為滿足ai<ai+1(1≤i輸入格式:
第1行:乙個整數n
第2行:n個整數,表示原始序列
輸出格式:
輸出1個整數,為新序列的最大優雅度
樣例輸入
樣例輸出
1 3 2 4 1
樣例解釋
排列方式不唯一,一種可行的排列方式為1、2、1、3、4,優雅度為3。可以通過窮舉法證明這是最優方案。
資料範圍
對於10%的資料,n≤10
對於40%的資料,n≤1000
對於100%的資料,n≤100000,序列中的每個數≤1000000000
水題,仔細觀察之後發現只要沒有重複的數,答案即為n-1。
那麼就把乙個數重複多次,對答案的貢獻度就是乙個數,所以答案為n-1-(這個數的個數-1)=n-這個數的個數。
再多新增別的數字,我們發現只要別的數的的個數比最多的數的個數少,就可以對答案產生貢獻,所以同理答案=n-出現最多的數的個數
#include#includeview code#include
#include
using
namespace
std;
int a[100031],dp[100031]=;
intmain()
int ans1=0
; sort(a,a+n+1
); a[
0]=a[1
];
int k=1
;
for(i=1;i<=n;i++)
dp[k]++;
ans1=max(ans1,dp[k]);
}intans;
ans=n-ans1;
cout
<
}
HNOI2009 夢幻布丁 D1 T1
n個布丁擺成一行,進行m次操作.每次將某個顏色的布丁全部變成另一種顏色的,然後再詢問當前一共有多少段顏色.例如顏色分別為1,2,2,1的四個布丁一共有3段顏色.第一行給出n,m表示布丁的個數和好友的操作次數.第二行n個數a1,a2.an表示第i個布丁的顏色從第三行起有m行,對於每個操作,若第乙個數字...
NOIP2018提高組D1T1 鋪設道路
題目描述 春春是一名道路工程師,負責鋪設一條長度為 n 的道路。鋪設道路的主要工作是填平下陷的地表。整段道路可以看作是 n 塊首尾相連的區域,一開始,第 i 塊區域下陷的深度為 d i 春春每天可以選擇一段連續區間 l,r 填充這段區間中的每塊區域,讓其下陷深度減少1。在選擇區間時,需要保證,區間內...
清北學堂模擬賽d1t1 位運算1 bit
題目描述 lyk擁有乙個十進位制的數n。它賦予了n乙個新的意義 將n每一位都拆開來後再加起來就是n所擁有的價值。例如數字123擁有6的價值,數字999擁有27的價值。假設數字n的價值是k,lyk想找到乙個價值是k 1的數字,當然這個答案實在太多了,lyk想使得這個價值為k 1的數字盡可能大。輸入格式...