C Laboratory Work 暴力或貪心

2021-10-07 14:45:49 字數 2319 閱讀 6613

ⅰ.暴

力判

斷\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,一開始就往暴力方面想了。然後模擬一下發現了乙個比簡單的規律。對...