/*
題意:有一些長方形,面積為1*x或者2*x,現在要算出能把這些
長方形全部包含起來的長方形的大小(2*m),簡單來說就是
給你乙個寬為2的長方形,求出長最小為多少時能把全部長方形
包含起來。
解法:因為大的長方形寬始終為2,而其他長方形寬為1/2。即當寬為2的
長方形直接放入(即長度直接加上對於得長度),而對於所以寬為1的
長方形,相當於把大的長方形分成2邊來裝這些寬為1的長方形,當
兩邊的長度盡可能相等時候,大長方形的長度最短,這是可以轉換成
01揹包問題,因為要盡可能的平均分,所以揹包容量為總容量的一半,
當揹包容量最大時,長度最小。
*/#include#includeusing namespace std;
const int maxn=10005;
int dp[maxn],pack[105];
//dp陣列,存放寬為1的長方形的陣列
int top,n,a,b,t,temp,minpack;
int mymax(int a,int b)
int main()
else//寬為2的直接放入大長方形中,長度累加
}for(int i=0;i=pack[i];j--)//使揹包的一半盡可能大
}minpack+=temp-dp[temp/2];//最後再加上寬為1的長方形最小需要的長度
cout<} return 0;
}
湖南多校對抗賽 D D
include 題意 有3個只包含大寫字母的字串a,b,c。問能不能從 從a,b中分別拿出n 2個字元組成c串。n為a的長度 解法 直接統計26個大寫字母在a,b,c串中出現的個數,當c串中出現字母時,則看a,b串中這個字母出現的 次數之和 a,b這個字母最多為n 2 是否大於c對應 的個數,否則不...
湖南多校對抗賽(csu 1560)
簡單的bfs搜尋題,對每個初始的水滴依次擴充套件,當達到規定步數時跳出。這題還是有坑點的,對於每個初始的水滴,已經訪問過的位置不再訪問,但是對於不同的水滴,別的水滴已經訪問過的,對於當前水滴來說可能還要訪問,才能使擴充套件的範圍最大。include include include include i...
CSU 2136 湖南多校對抗賽 I
submit page summary time limit 1 sec memory limit 128 mb submitted 55 solved 11 wells最近迷上了一款攻城的策略遊戲,點就去就能當大元帥統帥三軍!遊戲介面主要是乙個平面 座標可以為浮點數 然而wells發現這遊戲是個 ...