思路題 貪心 fzu oj 2197 最小花費

2021-07-02 04:57:08 字數 861 閱讀 2161

題意:

給乙個01串,相鄰的01交換代價為x,否則為y。

問把全部1變到0前面的最小費用。

思路:對於 01011->11100

如果只靠相鄰位移動是需要5步的。

然而不管怎麼移動,步數是固定的。

那我們就把最前面的0和最後面的1交換

假設0在i,1在j。我們交換的代價就是min(y,x*(j-i))

然後累加求和就好了!

很棒的腦洞題!

**:#include"cstdlib"

#include"cstdio"

#include"cstring"

#include"cmath"

#include"queue"

#include"algorithm"

#include"iostream"

#include"map"

#define ll __int64

using namespace std;

ll v1[123456];

char v[123456];

int main()

{ int t;

cin>>t;

while(t--)

{ll x,y;

scanf("%i64d%i64d",&x,&y);

scanf("%s",v);

int len=strlen(v);

int cnt=0;

for(int i=len-1;i>=0;i--) if(v[i]=='1') v1[cnt++]=(ll)i; //找全部1的位置

ll ans=0;

int j=0; //處理到第幾個1

for(int i=0;i

貪心 公式推導 思路

submit page time limit 1 sec memory limit 128 mb submitted 11 solved 8 zj開公司,年年榮登315晚會。315當天,一大幫員工來zj公司討工資。顯然又欠工資了囧 員工們圍成乙個圈,把zj圍在中間,打算用暴力手段討取工資。機智如zj...

演算法題思路

鍊錶反轉 思路雙鏈表頭插法 利用棧查詢陣列不重複的值 思路利用異或運算 相同數值為0 任何職異或0為他本身的特性 計算質數 思路首先依次判斷2 n的各個數是否是質數 在暴力解法上優化,判斷乙個數是否是質數 只需要不能整除2到根號n之間的數就不是質數 2 n n大於1的數可以直接跳過肯定不是質數 使用...

hdu 6301 思路貪心

這個題如果從直接的想法做很簡單,但是時間肯定過不去,難處理的在於如何把用完了的數字重新利用 這個題解是dls的 大體思路是用pre i 記錄i所在的區間的左端點,然後設定乙個標記用來記錄已經處理完的位置 不是填完數字的位置,是既填完了數字又將可利用的數字處理完了的位置 當標記小於pre i 時表明 ...