ⅰ.暴
力判
斷\colorⅰ.暴力判斷
ⅰ.暴力判斷直接
暴力就行
了,畢竟
所有數隻
可能是m
inn,
minn
+1,m
inn+
2直接暴力就行了,畢竟所有數隻可能是minn,minn+1,minn+2
直接暴力就行
了,畢竟
所有數隻
可能是m
inn,
minn
+1,m
inn+
2 當 最大
值減去最
小值為不
大於1時
,輸出原
數列就行
了(唯一
構造方法
)當最大值減去最小值為不大於1時,輸出原數列就行了(唯一構造方法)
當最大值減去
最小值為
不大於1
時,輸出
原數列就
行了(唯
一構造方
法) 否則,
列舉mi
nn+1
的個
數否則,列舉minn+1的個數
否則,列舉m
inn+
1的個數那麼
minn
和min
n+2的
個數其實
已經確定
了那麼minn和minn+2的個數其實已經確定了
那麼minn
和min
n+2的
個數其實
已經確定
了 打 擂台
得出最大
值即
可打擂台得出最大值即可
打擂台得出最
大值即可ⅱ.
貪心
\colorⅱ.貪心
ⅱ.貪心 記錄m
inn,
minn
+1,m
inn+
2的個數
設為a,
b,
c記錄minn,minn+1,minn+2的個數設為a,b,c
記錄minn
,min
n+1,
minn
+2的個
數設為a
,b,c2個
c可以換
成乙個a
和乙個b
,不同的
數加
22個c可以換成乙個a和乙個b,不同的數加2
2個c可以換
成乙個a
和乙個b
,不同的
數加2
一 個a
和乙個b
也可以換
成2個c
,不同的
數加
2乙個a和乙個b也可以換成2個c,不同的數加2
乙個a和乙個
b也可以
換成2個
c,不同
的數加2只需
要選最劃
算的即可
只需要選最划算的即可
只需要選最劃
算的即可
暴力
#include using namespace std;
const int maxn=2e5+10;
int n,a[maxn],minn=1e9,b[4],c[4];
void print(int n)
cout<>n;
for(int i=1;i<=n;i++)
for(int i=1;i<=n;i++)
if(b[1]&&b[2]&&b[3]) run();
else if(b[1]&&b[3]) run();
else print(n);
}
貪心
#include using namespace std;
const int maxn=1e5+10;
int a[maxn],b[maxn],minn=1e9,n;
void print()
for(int i=1;i<=n;i++) a[i]-=minn,b[a[i]]++;
sort(a+1,a+1+n);
if(a[n]<=1) print();
int num1 = b[1]/2;
int num2 = min(b[0],b[2]),ans=0;
if(num1 > num2)
else
cout
codeforces1141D題解 暴力 貪心
給出兩個長度為 n 1 n 150000 的僅含有小寫字母和 的字串,詢問兩個字串最多能有幾對匹配的字元。每個字母都可以與和它相同的字元匹配,可以與任意字元匹配,匹配與位置無關 輸出最大匹配對數,以及每一對中兩個字元在字串中的位置 cf1141d created by hao on 2019 4 1...
POJ 1226 字尾陣列 或 KMP 或 暴力
簡略題意 出現或反轉後出現在每個字串中的最長字串。先將每個串和自己的反轉串連線起來,隨後將這若干個串連線起來。二分答案,判定就分組看是否有一組字尾在所有原串或者原串的反轉串中出現。include include include include include include using namesp...
HDU 1394 暴力 或 歸併排序 或 線段樹
題意 給定n個數,乙個合法操作是每次可以將數列的第乙個元素放到數列的尾部,然後問你所有可能操作中的逆序對的個數最少是多少。乙個逆序對 ai,aj 的定義是數列a中下標 i 小於 j 同時 ai 大於 aj。思路 看到資料範圍只有5000,一開始就往暴力方面想了。然後模擬一下發現了乙個比簡單的規律。對...