MCの生存游戏(洛谷P1867题题解,Java语言描述)
生活随笔
收集整理的這篇文章主要介紹了
MCの生存游戏(洛谷P1867题题解,Java语言描述)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目要求
P1867題目鏈接
分析
先解決2n的數值問題,就打表吧……
寫個打表程序,覆蓋long的數值范圍:
public class Pow {public static void main(String[] args) {for (long i = 0; i <= 63; i++) {System.out.print((long)Math.pow(2, i) + "L,");}} }之所以寫L,是因為普通數值默認int,加L表示是long,好管理……
先看看經驗收益有多少。
能收獲多少注意生命,生命大于0才有效……
注意一個問題:生命不能大于10,我開始WA了一次就是沒注意這個問題,悲催……
算出收益以后就從小到大消耗經驗就好了,能到哪步就到哪步,Fine……
AC代碼
import java.util.Scanner;public class Main {public static void main(String[] args) {long[] pow_array = new long[] {1L,2L,4L,8L,16L,32L,64L,128L,256L,512L,1024L,2048L,4096L,8192L,16384L,32768L,65536L,131072L,262144L,524288L,1048576L,2097152L,4194304L,8388608L,16777216L,33554432L,67108864L,134217728L,268435456L,536870912L,1073741824L,2147483648L,4294967296L,8589934592L,17179869184L,34359738368L,68719476736L,137438953472L,274877906944L,549755813888L,1099511627776L,2199023255552L,4398046511104L,8796093022208L,17592186044416L,35184372088832L,70368744177664L,140737488355328L,281474976710656L,562949953421312L,1125899906842624L,2251799813685248L,4503599627370496L,9007199254740992L,18014398509481984L,36028797018963968L,72057594037927936L,144115188075855872L,288230376151711744L,576460752303423488L,1152921504606846976L,2305843009213693952L,4611686018427387904L,9223372036854775807L};Scanner scanner = new Scanner(System.in);int num = scanner.nextInt(), level;long exp = 0;double life = 10;for (int i = 0; i < num; i++) {life -= scanner.nextDouble();if (life <= 0) {break;} else if (life > 10) {life = 10;}exp += scanner.nextInt();}scanner.close();for (level = 0; level < pow_array.length; level++) {if (exp < pow_array[level]) {break;}exp -= pow_array[level];}System.out.println(level + " " + exp);} } 創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的MCの生存游戏(洛谷P1867题题解,Java语言描述)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构与算法】图结构最小生成树Kru
- 下一篇: 【Python】Matplotlib绘制