P2006 赵神牛的游戏

题目描述

在 DNF 中,赵神牛有一个缔造者,他一共有 kk 点法力值,一共有 mm 个技能,每个技能耗费的法力值为 a_ia**i,可以造成的伤害为 b_ib**i,而 boss 的体力值为 nn,请你求出它放哪个技能,才可以打死 boss。

当然,赵神牛技术很菜,他一局只放一个技能,不过每个技能都可以放无数次。

输入格式

第一行有三个整数,分别表示 k,m,nk,m,n

后面 mm 行,每行两个整数,第 (i + 1)(i+1) 行的整数表示耗费的法力值 a_ia**i 和造成的伤害 b_ib**i

输出格式

输出仅一行,既可以杀死 boss 的技能序号,如果有多个,按从小到大的顺序输出,中间用一个空格隔开;如果没有技能能杀死 boss,输出 -1

输入输出样例

输入 #1复制
100 3 5000
20 1000
90 1
110 10000
输出 #1复制
1
输入 #2复制
50 4 10
60 100
70 1000
80 1000
90 0
输出 #2复制
-1

说明/提示

数据规模与约定

对于全部的测试点,满足:

  • 0\le n,m,k\le 3\times 10^40≤n,m,k≤3×104,
  • 1 \leq a_i,b_i\le 21474836471≤a**i,b**i≤2147483647。

代碼

#include<stdio.h>
int main(){
	int k,m,n;//k點法力值,m個技能,n點血量 
	scanf("%d%d%d",&k,&m,&n);
	int factor[m][2];//0法力消耗 1造成傷害 
	for(int i=0;i<m;i++){
		for(int j=0;j<2;j++){
			scanf("%d",&factor[i][j]);
		}
	}
	int check=0;
	int temp=0;
	for(int i=0;i<m;i++){
	    if(factor[i][0]!=0){
	        temp=(k/factor[i][0])*factor[i][1];
	    }else{
	        temp=n;
	    }
		if(temp>=n){
			printf("%d ",i+1);
			check=1;
		}
		temp=0;
	}
	if(check==0){
		printf("-1");
	}
	return 0;
} 

注意技能花費存在0的情況,而花費爲零即一定能戰勝惡魔,因此直接賦值為怪物血量即可通過。

编程语言C++

代码长度502B

用时41ms

内存764.00KB

posted @ 2021-01-02 02:16  ExplodedVegetable  阅读(90)  评论(0编辑  收藏  举报