爸爸能说什么。

精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战 精灵王座:最后之战
【题目背景】
《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 《精灵王座》结尾的跑酷十分夺人眼球,虽然小鱼和莉雅成功了但情况也 非常凶险。让我们来帮他,看有没必胜策略:
影片段简述:小鱼一行人被已经黑化的玫拉困在了暗山谷,她目是 影片段简述:小鱼一行人被已经黑化的玫拉困在了暗山谷,她目是 影片段简述:小鱼一行人被已经黑化的玫拉困在了暗山谷,她目是 得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始得到生命宝玉。 为了击败玫拉,尔等人采纳小鱼的建议于是跑酷开始每个人都沿着峡谷上的一座桥跑,向对岸前进。玫拉已经被生命宝玉冲昏 每个人都沿着峡谷上的一座桥跑,向对岸前进。玫拉已经被生命宝玉冲昏 每个人都沿着峡谷上的一座桥跑,向对岸前进。玫拉已经被生命宝玉冲昏 了头脑,不停地向生命宝玉扑去。只有将玫拉吸引到峡谷对岸的熔炉旁小鱼才 了头脑,不停地向生命宝玉扑去。只有将玫拉吸引到峡谷对岸的熔炉旁小鱼才 了头脑,不停地向生命宝玉扑去。只有将玫拉吸引到峡谷对岸的熔炉旁小鱼才 了头脑,不停地向生命宝玉扑去。只有将玫拉吸引到峡谷对岸的熔炉旁小鱼才 能消灭她。于是, 众人轮番传递生命宝玉来吸引玫拉的注意并一步靠近对岸能消灭她。于是, 众人轮番传递生命宝玉来吸引玫拉的注意并一步靠近对岸能消灭她。于是, 众人轮番传递生命宝玉来吸引玫拉的注意并一步靠近对岸能消灭她。于是, 众人轮番传递生命宝玉来吸引玫拉的注意并一步靠近对岸能消灭她。于是, 众人轮番传递生命宝玉来吸引玫拉的注意并一步靠近对岸他们能成功吗?
【问题描述】
简化后的问题:现在,莉雅闪耀 简化后的问题:现在,莉雅闪耀 简化后的问题:现在,莉雅闪耀 了一下主角光环,现在他们可以防御玫拉的 了一下主角光环,现在他们可以防御玫拉的 一切物理攻击。几个人分别站在座桥的同端,每回合后向前最多进 一切物理攻击。几个人分别站在座桥的同端,每回合后向前最多进 一切物理攻击。几个人分别站在座桥的同端,每回合后向前最多进 Vi各 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 单位长度,当然也可以不走(保护队友)。在行动环节结束后拿着生命宝玉的 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 人可以选择将宝玉传给其他,前提是们之间的后距离不能超过 max_dis。 传递环节结束后,玫拉会攻击虽然发现自己的物理伤害失效但她并不气 传递环节结束后,玫拉会攻击虽然发现自己的物理伤害失效但她并不气 传递环节结束后,玫拉会攻击虽然发现自己的物理伤害失效但她并不气 传递环节结束后,玫拉会攻击虽然发现自己的物理伤害失效但她并不气 馁,她会向拿着宝玉的人所在桥进行法术攻击并造成 馁,她会向拿着宝玉的人所在桥进行法术攻击并造成 馁,她会向拿着宝玉的人所在桥进行法术攻击并造成 attack点伤害。每座桥 点伤害。每座桥 点伤害。每座桥 都有一个生命值 HPi,当生命值降到 ,当生命值降到 0及以下时,上面的人和生命宝玉就会坠入 及以下时,上面的人和生命宝玉就会坠入 深渊,显然我们不希望这样的情况发生。每 深渊,显然我们不希望这样的情况发生。每 深渊,显然我们不希望这样的情况发生。每 座桥的长度 len相同。请你帮他们求 相同。请你帮他们求 出他们将生命宝玉送至对岸所需的最短回合数;如果不行,输“ comeback”。
【输入格式】
从文件 elventhrone.in中输入 数据。
第 1行:四个整数 n,len,max_dis,attack。
第 2~n+1行:一个字符串 NAMEi和一个整数 Vi,Vi代表名叫 NAMEi的人 的速度。
第 n+2~2n+1行:一个字符串 行:一个字符串 行:一个字符串 NAMEi和一个整数 HPi,HPi代表名叫 代表名叫 NAMEi的人所在桥生命值。
【输出格式】
输出到 文件 elventhrone.out中。
NOIP2016 模拟考试——实验中学 第一试 精灵王座:最后之战
第 9 页 共 10 页
·若有必胜策略,输出一个整数表示通过的最小回合。
·若无必胜策略,输出“ comeback”。
【样例输入】
7 100 10 5
Leah 9
dogs 9
Lambert 13
Cale 12
Barna 8
Captain 5
Naierwen 6
Leah 6
Lambert 12
dogs 6
Cale 13
Barna 6
Naierwen 3
Captain 19
【样例输出】
8
【样例说明】
第一回合: 第一回合: Naierwen(玫尔)传给 (玫尔)传给 (玫尔)传给 Captain(精灵队长),回合末宝玉位置: (精灵队长),回合末宝玉位置: (精灵队长),回合末宝玉位置: (精灵队长),回合末宝玉位置: (精灵队长),回合末宝玉位置: (精灵队长),回合末宝玉位置: 2。
第二回合: Captain(精灵队长)传给 Leah(莉雅),回合末宝玉位置: (莉雅),回合末宝玉位置: (莉雅),回合末宝玉位置: 5。
第三回合: Leah(莉雅)传给 (莉雅)传给 dogs(小剑盾),回合末宝玉位置: (小剑盾),回合末宝玉位置: (小剑盾),回合末宝玉位置: 21。
第四回合: dogs(小剑盾)传给 (小剑盾)传给 Cale(凯尔),回合末宝玉位置: (凯尔),回合末宝玉位置: 40。
第六回合: Cale(凯尔)传给 Lambet(小鱼),回合末宝玉位置: (小鱼),回合末宝玉位置: 74。
第八回合: Lambet(小鱼)带“球”冲过终点线。 (小鱼)带“球”冲过终点线。
我可是尽量按照电影顺序的 ^_^,就最后差了点 O_O。
【样例输入】
7 1000 100 5
Leah 9
NOIP2016 模拟考试——实验中学 第一试 精灵王座:最后之战
第 10 页 共 10 页
dogs 9
Lambert 13
Cale 12
Barna 8
Captain 5
Naierwen 6
Leah 6
Lambert 12
dogs 6
Cale 13
Barna 6
Naierwen 3
Captain 19
【样例输出】
comeback
【样例说明】
这真是一个悲剧,但在我们的帮助下他机智退了回来都毫发无伤。 这真是一个悲剧,但在我们的帮助下他机智退了回来都毫发无伤。 这真是一个悲剧,但在我们的帮助下他机智退了回来都毫发无伤。 这真是一个悲剧,但在我们的帮助下他机智退了回来都毫发无伤。 相信他们会以别的方式脱险。
【数据规模与约定】
对于 30%的数据 n ≤ 10,len ≤ 1000;
对于 100%的数据 n ≤ 200000,0 ≤ attack, V ≤ 1000,0 < HP ≤ 1000, 0 < =len, max_dis < 109。
在跑酷开始时,宝玉可以任何人手中。
在回合的任意时刻,生命宝玉到达了对岸都算这个成功。
数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 数据保证名字没有重复,只包括英文母(大写或小),长度不超过 10。

提示:注意 特判。


这道题一看标算就非常麻烦。那么怎么办呢。看提示!特判。在疯狂的特判了一坨comeback之后我又去看了看样例,发现似乎找到最大的vi然后除一下len好像就很接近答案了,因为当数据随机的时候回合数这个东西有很大的容错率。可能你的方案不是最优也是可以对的。而max_dis这个东西可以缩短路径。。。找最大的vi来除也会缩短回合,那么我们队max_dis置之不理然后用最大的vi来似乎也会更加接近答案。(一本正经胡说八道),然后就这么骗到90分的时候我已经笑到抽风。

#include <cstdio> 
#include <cmath> 
#include <ctime> 
#include <string> 
#include <cstring> 
#include <cstdlib> 
#include <iostream> 
#include <algorithm> 
   
#include <set>
#include <stack> 
#include <queue> 
#include <vector> 
#include <map>
 
#define pb push_back
#define lb lower_bound
#define sqr(x) (x)*(x)
#define lowbit(x) (x)&(-x) 
#define Abs(x) ((x) > 0 ? (x) : (-(x))) 
#define FOR(i,a,b) for((i)=(a);(i)<=(b);(i)++) 
#define FORP(i,a,b) for(int i=(a);i<=(b);i++) 
#define FORM(i,a,b) for(int i=(a);i>=(b);i--) 
#define ls(a,b) (((a)+(b)) << 1) 
#define rs(a,b) (((a)+(b)) >> 1) 
#define getlc(a) ch[(a)][0] 
#define getrc(a) ch[(a)][1] 
   
#define maxn 1000005
#define maxm 100005
#define INF 1070000000 
using namespace std; 
typedef long long ll; 
typedef unsigned long long ull; 
   
template<class T> inline 
void read(T& num){ 
    num = 0; bool f = true;char ch = getchar(); 
    while(ch < '0' || ch > '9') { if(ch == '-') f = false;ch = getchar();} 
    while(ch >= '0' && ch <= '9') {num = num * 10 + ch - '0';ch = getchar();} 
    num = f ? num: -num; 
}
int out[100];
template<class T> inline
void write(T x,char ch){
    if (x==0) {putchar('0'); putchar(ch); return;}
    if (x<0) {putchar('-'); x=-x;}
    int num=0;
    while (x){ out[num++]=(x%10); x=x/10;}
    FORM(i,num-1,0) putchar(out[i]+'0'); putchar(ch);
}
/*==================split line==================*/
int n,len,attack,Max_dis;
char s[maxn];
int use=0;
int main()
{
    read(n); read(len); read(Max_dis); read(attack);
    int Max_v = 0,sum_hp = 0;
    FORP(i, 1, n) {int x; scanf("%s",s); read(x); Max_v = max(Max_v, x);  }
    FORP(i, 1, n) {int x; scanf("%s",s); read(x); sum_hp = sum_hp + x; if (attack != 0) use = use + x / attack; }
    if (Max_v == 0) {printf("comeback");return 0;}
    if (attack == 0) {write(len/Max_v + ((len%Max_v) != 0),'\n'); return 0;}
    if(len / Max_v > sum_hp / attack)  {printf("comeback"); return 0;}
    if(use < len / Max_v) {printf("comeback");return 0;}
    write(len/Max_v + ((len % Max_v) != 0),'\n');
    return 0;
}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章