luogu p1867【Mc生存】经验值

原题链接:https://www.luogu.org/problem/show?pid=1867

今天看到这个题原来做过没A的时候,心里想:这不就是个模拟吗,看我2min切了它。。。

然后就硬生生调了0.5h,用出了各种大招,freopen,double,数组,中间结果,才将其拿下。。。。。。

思路应该没难度n<=20的数据o(n+玄学)复杂度,0ms跑过全部的点无压力,只是有几个细节。。。

用了double,按理说float也行的,不知道为啥不能A,而且hp赋初值的时候不要加小数点。。。

而且这个其实可以空间复杂度能减小的,但是我开了数组才解决了问题。。。

总之这个题各种玄学的细节,故归类到这个分类里

#include<cstdio>
int n,s=1,sum,lv,b[55];
double hp=10,a[55];
int main()
{
//    freopen("testdata.in","r",stdin);
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%lf %d",&a[i],&b[i]);
//    for(int i=1;i<=n;i++) printf("%lf %d\n",a[i],b[i]);
    for(int i=1;i<=n;i++)
    {
        if(hp>a[i])
        {
            sum+=b[i];
            hp-=a[i];
            if(hp>10) hp=10;
        }
        else break;
    }
    while(sum>=s)
    {
        sum-=s;
        lv++;
        s*=2;
    }
    printf("%d %d",lv,sum);
    return 0;
}
时间: 2024-10-06 15:10:53

luogu p1867【Mc生存】经验值的相关文章

P1789 【Mc生存】插火把

题目背景 初一党应该都知道...... 题目描述 话说有一天linyorson在Mc开了一个超平坦世界,他把这个世界看成一个n*n的方阵,现在他有m个火把和k个萤石,分别放在x1,y1...xm,ym和o1,p1...ok,pk的位置,问在这个方阵中有几个点会生成怪物?(没有光或没放东西的地方会生成怪物) P.S.火把的照亮范围是: |暗|暗| 光 |暗|暗| |暗|光| 光 |光|暗| |光|光|火把|光|光| |暗|光| 光 |光|暗| |暗|暗| 光 |暗|暗| 萤石: |光|光| 光 |

洛谷P1789【Mc生存】插火把 题解

题目传送门 这道题目可以纯暴力: #include<bits/stdc++.h> //Minecraft 666 using namespace std; int a[110][110]; int n,m,k,ans; int main(){ scanf("%d%d%d",&n,&m,&k); for(int i=1;i<=m;i++){ int x,y; scanf("%d%d",&x,&y); a[x-2

游戏数值策划经验篇:从多角度解读游戏经验值设计

GameRes游资网授权发布 文 / 张锋 有些时候我会静下心想:经验究竟是一条怎样的线? 玩家会问:我要多少天玩到100级? 主策会拍:日常产多少经验?用到哪里去了? 领导会问:几个月能回本?几个月能赚到XXX钱? 那么,经验,它是"领导"定的,"市场"定的,"营收"定的,还是"玩家感受"定的. 一. 从玩家的角度来看 笔者认为经验线并不能剥离游戏独立存在,它是和玩家升级时间,升级感受,休戚相关的.围绕着经验值做出的任何设计

luogu P3799 妖梦拼木棒

二次联通门 : luogu P3799 妖梦拼木棒 /* luogu P3799 妖梦拼木棒 用一个桶存下所有的木棒 美剧两根短的木棒长度 后随便乘一乘就 好了.. */ #include <algorithm> #include <cstdio> #define Mod 1000000007 #define Max 5000 void read (int &now) { now = 0; register char word = getchar (); while (wo

[luogu P1967][NOIp2013]P1967 货车运输

题目描述 A 国有 n 座城市,编号从 1 到 n,城市之间有 m 条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有 q 辆货车在运输货物, 司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物. 输入输出格式 输入格式: 输入文件名为 truck.in. 输入文件第一行有两个用一个空格隔开的整数 n,m,表示 A 国有 n 座城市和 m 条道 路. 接下来 m 行每行 3 个整数 x. y. z,每两个整数之间用一个空格隔开,表示从 x 号城市到 y 号城市有一条限重为 z

survival analysis 生存分析与R 语言示例 入门篇

生存分析,survival analysis,顾名思义是用来研究个体的存活概率与时间的关系.例如研究病人感染了病毒后,多长时间会死亡:工作的机器多长时间会发生崩溃等.  这里“个体的存活”可以推广抽象成某些关注的事件. 所以SA就成了研究某一事件与它的发生时间的联系的方法.这个方法广泛的用在医学.生物学等学科上,近年来也越来越多人用在互联网数据挖掘中,例如用survival analysis去预测信息在社交网络的传播程度,或者去预测用户流失的概率. R里面有很成熟的SA工具. 本文介绍生存分析的

luogu 3126 回文的路径

https://www.luogu.org/problem/show?pid=3126 考虑dp,从两头走到中间. f[i][j][k][l]表示从左上角走到(i,j),从右下角走到(k,l),路径长度相等,所经过路径相同的方案数. 方程不再赘述. 考虑步数要相同,所以只要枚举步数和行就好. f[i][j][k]表示第一个点在第j行,第2个点在第k行,走i步的方案数. 所以得出方程f[i][j][k]=(f[i-1][j-1][k]+f[i-1][j][k+1]+f[i-1][j-1][k+1]

luogu P2018 消息传递

二次联通门 : luogu P2018 消息传递 /* luogu P2018 消息传递 树形dp 原来用优先队列做了一下, T了俩点 MMP 去看正解.. 复杂度一样好不好.. 每次到达一个点,记录其子树中所有的dp值 优先向大的一边转移 */ #include <cstdio> #include <iostream> #include <algorithm> #include <cstring> #define INF 1e8 const int BUF

luogu P1966 火柴排队

二次联通门 : luogu P1966 火柴排队 /* luogu P1966 火柴排队 神TM逆序对... noip怎么这么坑啊.. 暴力都没得打 此题模拟考试时爆了0 做法 将A数组排序,由于B数组与A数组是一一对应的 那么B数组的位置也会发生相应的变化 此时B数组逆序数对数即为答案 */ #include <cstdio> #include <iostream> #include <algorithm> const int BUF = 123123123; cha