不充錢,你怎麼ac?
題目:用貪心的思想,木材當然要盡量分成多的木板,而大的木材能夠分成大木板,但是小的木材不一定能夠分成大的木板,所以木板和木材都是從小到大開始選,然後要保證剩餘的木材最少
那麼將木板和木材排序,對於每個木材,把能夠分的小木板盡量分掉,如果遇到更大的木板則把最小的木板騰出來,然後在加上,這樣保證剩餘的木材最少
因為是上午寫得這道題,思路可能不連貫了,**應該描述的很清楚
雖然貪心在codevs上可以過,但是它是有資料可以卡掉的,而正解是dfs
1 #include2 #include3 #include4 #include5 #include6 #include7using
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 #include7using
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,如果最後 ...