雇佣兵
題目鏈接:http://noi.openjudge.cn/ch0105/37/
總時間限制:?1000ms內(nèi)存限制:?65536kB描述雇傭兵的體力最大值為M,初始體力值為0、戰(zhàn)斗力為N、擁有X個能量元素。
當(dāng)雇傭兵的體力值恰好為M時,才可以參加一個為期M天的戰(zhàn)斗期,戰(zhàn)斗期結(jié)束體力值將為0。在同一個戰(zhàn)斗期內(nèi),雇傭兵每連續(xù)戰(zhàn)斗n天,戰(zhàn)斗力就會上升1點(diǎn),n為當(dāng)前戰(zhàn)斗期開始時的戰(zhàn)斗力。
一個戰(zhàn)斗期結(jié)束后,雇傭兵需要用若干個能量元素使其體力恢復(fù)到最大值M,從而參加下一個戰(zhàn)斗期。每個能量元素恢復(fù)的體力值不超過當(dāng)前的戰(zhàn)斗力。每個能量元素只能使用一次。
請問:雇傭兵的戰(zhàn)斗力最大可以到達(dá)多少。
PS:這道題真沒看懂題目是什么意思,尤其能力元素x的消耗量是怎么定義的。
下面是別人的代碼,從代碼推銷題目意思,似乎題目意思也不是跟代碼一個樣啊……
哪位朋友理解了題目意思,還希望能給留言解析一下
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int m,n,x; 6 scanf("%d%d%d",&m,&n,&x);//體力、戰(zhàn)斗力、能量元素 7 //如果剛開始他的戰(zhàn)斗力大于m ,那么戰(zhàn)斗m天湊不夠n天,所以他的戰(zhàn)斗力值不會增加 8 //循環(huán)體中,能量減少(m/n向上取整),戰(zhàn)斗力增加(m/n向下取整),直到能量用完。 9 while(n<=m&&x) 10 { 11 x-=ceil( ((double)m)/n); 12 if(x<0) break; 13 n+=floor(((double)m)/n); 14 } 15 printf("%d\n",n); 16 }?
轉(zhuǎn)載于:https://www.cnblogs.com/huashanqingzhu/p/7269136.html
總結(jié)
- 上一篇: 免oracle客户端下载,Oracle免
- 下一篇: oracle 压缩导出 导入,EXP直接