CodeVS沖杯之路 P2456

2022-05-18 04:42:08 字數 1300 閱讀 8581

不充錢,你怎麼ac?

題目:用貪心的思想,木材當然要盡量分成多的木板,而大的木材能夠分成大木板,但是小的木材不一定能夠分成大的木板,所以木板和木材都是從小到大開始選,然後要保證剩餘的木材最少

那麼將木板和木材排序,對於每個木材,把能夠分的小木板盡量分掉,如果遇到更大的木板則把最小的木板騰出來,然後在加上,這樣保證剩餘的木材最少

因為是上午寫得這道題,思路可能不連貫了,**應該描述的很清楚

雖然貪心在codevs上可以過,但是它是有資料可以卡掉的,而正解是dfs

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;89

const

int n=51,m=1024;10

inta[n],b[m],next[m];

11bool

f[m];

12int

main()

1336

else

3749}50

}51}52 printf("

%d\n

",ans);

53return0;

54 }

下面是dfs的正解,貼的別人的**

1 #include2 #include3 #include4 #include5 #include6 #include7

using

namespace

std;89

#define n 1100

1011

intn,m;

12int

sum1,ans;

13int

tim,res;

1415

inta[n],b[n],c[n],sum[n];

1617

int work(int x,int

k)18

34else

if (work(x-1,1

))35

return

true;36

if (a[i]1

])37 tim-=a[i];

38 a[i]+=b[x];39}

40return

false;41

}4243int

main()

4468 printf("

%d\n

",l);

69return0;

70 }

CodeVS沖杯之路 P1165

不充錢,你怎麼ac?題目 題目很簡單,最好寫樸實一點,不要想著哪些情況可以合併在一起啊等等 老老實實乙個個判斷,不然很容易出錯 細節很多,幸好樣例給的良心,可以檢測出很多細節 自己字串模擬即可,一定要細心!1 include2 include3 include4 include5 include6 ...

CodeVS沖杯之路 P1092

不充錢,你怎麼ac?題目 嗯,這道題有一定難度啊,需要先用擴充套件歐幾里得演算法求出逆元,然後按照大小構一顆帶邊權為小時數的樹 樹鏈剖分後在樹上dp,設f i j 為以 i 為根 j 為子樹的最小的那一天 注意dp方程是有單調性的,可以用動態仙人掌維護,最後答案容斥一下即可 目測 量8k 1 inc...

CodeVS沖杯之路 P1171

不充錢,你怎麼ac?題目 調了很久才調好啊,一開始題目都看錯了 要是真的noip肯定沒戲了quq 後面發現codevs上的資料輸入最後是沒有回車的,導致wa爛啊 給你兩個串,它們每個字母有一一對應的關係,如果遇到不同字母對應相同的就 failed 或者相同字母對應不同字母也 failed,如果最後 ...