P1867 【Mc生存】经验值
P1867 【Mc生存】經驗值
提交16.06k
通過6.39k
時間限制1.00s
內存限制125.00MB
提交答案加入題單復制題目
做題計劃(首頁)
個人題單
團隊題單
保存
選擇團隊
保存
題目提供者onlyme
難度入門
歷史分數100
?提交記錄??查看題解
標簽
洛谷原創
?查看算法標簽
進入討論版
相關討論
?查看討論
推薦題目
?查看推薦
?洛谷推薦關閉
?復制Markdown??展開
題目背景
初一福利第2彈。。。
題目描述
話說 clearman 在 MC 世界開了個祥藝奶牛場,用熔漿、TNT 等喪心病狂的折磨牛,獲取牛肉、牛奶等刷經驗。他想知道他到底達到什么層次。
他總共進行了?nn?項操作,每次操作要付出?xx?生命值(初始生命是?1010?點,初一黨都知道!并且要先計算付出的生命值,如果小于等于?00,則死亡,本次即以下操作都無效。但切記:付出生命值可以是負數,也就是說可以回復?-x?x?點生命值,但上限只能是?1010!切記!),每次操作可以獲得?aa?經驗值(不能為負),他最后能達到?mm?級?tt?經驗。
P.S. 關于等級
初始等級為?00。每加?2^m2m(mm?為當前等級)點經驗可升一級。
1、假設 clearman 一共得到?1515?點經驗,那么他應該為?44?級(?15-1-2-4-8=015?1?2?4?8=0)加?00?點經驗。
2、假設 clearman 一共獲得?3939?點經驗,那么他應該為?55?級(?39-1-2-4-8-16=839?1?2?4?8?16=8)加?88?點經驗。
輸入格式
第一行一個正整數?nn,表示操作個數。
接下來?nn?行,每行兩個數,為 clearman 的一次操作。
輸出格式
一行,為等級和經驗值。
輸入輸出樣例
輸入 #1復制
2 5.5 15 4.5 24輸出 #1復制
4 0說明/提示
數據很弱,人肉輸的,但是很坑。。。
【數據范圍】
對于?100\%100%?的數據,1\le n \le 201≤n≤20。
?【AC代碼】
#include<bits/stdc++.h> using namespace std; inline int fread() {char ch=getchar();int n=0,m=1;while(ch<'0'||ch>'9'){if(ch=='-')m=-1;ch=getchar();}while(ch>='0'&&ch<='9')n=(n<<3)+(n<<1)+ch-48,ch=getchar();return n*m; } int n,a,ans; double f=10,x; signed main(int argc,char **argv) {n=fread();while(n--){cin>>x>>a;f=min(f-x,10.0);if(f<=0)break;//這個地方很坑,血量有可能是零點幾......ans+=a;}cout<<floor(log(ans+1)/log(2))<<" "<<ans+1-pow(2,floor(log(ans+1)/log(2)));return 0; } R76479727 記錄詳情?
總結
以上是生活随笔為你收集整理的P1867 【Mc生存】经验值的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: (转)Thrift在Windows及Li
- 下一篇: kali字典_kali黑客系统wpsca