a. 午餐費
題目描述
現要對某班學生進行n天培訓,該班所有學生都訂了n天的午餐,所以我們知道他們每天要花多少錢。現在該班班主任需要決定如何使用班費。由於錢有限,他們不可能每天都吃免費午餐。因此,每天班主任可以選擇自己支付或使用班費支付當天午餐費。當然,班主任比較小氣,希望盡可能多地花掉班費,但是他太忙了,請你幫他計算他最多能夠花多少班費。
很玄學第一次想用貪心做
結果
**:
#includeusing namespace std;
const int m = 10005;
typedef long long ll;
ll a[m];
ll n,m;
int ans = 0;
int main()
ans = 0;//初始化
for(int i = 1;i <= n;i++)
else
} printf("%d",ans);
} return 0;
}當然,這水不了幾分。
因為不一定是小的就拿。
所以改了改
用了dfs
**:#includeusing namespace std;
int n,m,a[35],b[35];
bool cmp(int x,int y)
long long int ans = 0;
void f(int x,int sum,long long int ans)
if(a[x] == sum)
if(a[x] < sum) f(x+1,sum-a[x],ans+a[x]);
f(x+1,sum,ans);
}int main()
sort(a+1,a+n+1,cmp);
for(int i = n;i >= 0;i--)
f(1,m,0);
printf("%d\n",ans);
} return 0;
}
b. 生日快樂
題目描述
windy的生日到了,為了慶祝生日,
他的朋友們幫他買了乙個邊長分別為 x 和 y 的矩形蛋糕。
現在包括windy,一共有 n 個人來分這塊大蛋糕,
要求每個人必須獲得相同面積的蛋糕。
windy主刀,每一切只能平行於一塊蛋糕的一邊(任意一邊),
並且必須把這塊蛋糕切成兩塊。
這樣,要切成 n 塊蛋糕,
windy必須切 n-1 次。
為了使得每塊蛋糕看起來漂亮,
我們要求 n塊蛋糕的長邊與短邊的比值的最大值最小。
你能幫助windy求出這個比值麼?
輸入輸出格式
輸入格式
包含三個整數,x y n。1 <= x,y <= 10000 ; 1 <= n <= 10
輸出格式
包含乙個浮點數,保留6位小數。
這道題與之前做過的巧克力棒
極其的相似
只是要求每人分到的相同
用乙個暴力就可以過
我想水分,但
改了一下,**如下:
#includeusing namespace std;
int x,y,z;
double dfs(double x,double y,int n)
return ans;
}int main()
3月13日 函式
函式 能夠獨立完成某項功能的模組。函式四要素 輸入 輸出 函式體 函式名 函式定義 static public 返回型別 函式名 引數型別 引數名,引數型別 引數名 傳值 四種方式 1.沒有返回值,沒有輸入值 2.沒有返回值,有輸入值 3.有返回值,沒有輸入值 4.有返回值,有輸入值 以累加求和為例...
3月13日 異常處理
異常處理可用於處理系統級和應用程式級的錯誤狀態。try塊 包含有可能發生異常的 catch塊 包含出現異常時需要執行的響應 finally塊 包含確保一定要執行的程式 如資源清理操作 注意 try是必須的,乙個try塊可以不包含catch塊,也可以包含乙個或多個catch塊。乙個try塊可以不包含f...
3月13日 氣泡排序
氣泡排序 從大到小排列 foreach int a in shuzu 遍歷陣列 int也可以用object object是所有類的基類,可以接收任何資料型別 eg object a 1 object b 123 object c true object d 3.14 2.輸入人數,輸入每個人的成績 ...