【2017百度之星程序设计大赛 - 资格赛】 度度熊与邪恶大魔王
【Link】:
【Description】
【Solution】
因为技能的效果和花费是不会变的;
所以,考虑预处理m个技能达成一定的伤害最少需要的魔法石数量;
可以把对这m个技能做一个类似的完全背包就可以了.
(对11种不同的防御值都做一遍)
最后对每个怪兽,O(1)输出;
(分类输出)
【NumberOf WA】
0
【Reviw】
【Code】
#include <bits/stdc++.h>
using namespace std;
#define lson l,m,rt<<1
#define rson m+1,r,rt<<1|1
#define LL long long
#define rep1(i,a,b) for (int i = a;i <= b;i++)
#define rep2(i,a,b) for (int i = a;i >= b;i--)
#define mp make_pair
#define pb push_back
#define fi first
#define se second
#define ms(x,y) memset(x,y,sizeof x)
#define ri(x) scanf("%d",&x)
#define rl(x) scanf("%lld",&x)
#define rs(x) scanf("%s",x+1)
#define oi(x) printf("%d",x)
#define ol(x) printf("%lld",x)
#define oc putchar(' ')
#define os(x) printf(x)
#define all(x) x.begin(),x.end()
#define Open() freopen("F:\\rush.txt","r",stdin)
#define Close() ios::sync_with_stdio(0)typedef pair<int,int> pii;
typedef pair<LL,LL> pll;const int dx[9] = {0,1,-1,0,0,-1,-1,1,1};
const int dy[9] = {0,0,0,-1,1,-1,1,-1,1};
const double pi = acos(-1.0);
const int N = 10;
const int M = 1000;
const int INF = 0x3f3f3f3f;int n,m,cost[M+100];
LL f[N+10][M+100];
vector <int> v[N+10];int main(){//Open();//Close();while(~ri(n)){ri(m);rep1(i,0,N) v[i].clear();rep1(i,1,n){int x,y;ri(x),ri(y);v[y].pb(x);}ms(cost,255);rep1(i,1,m){int x,y;ri(x),ri(y);if (cost[y]==-1)cost[y] = x;elsecost[y] = min(cost[y],x);}bool solved = true;LL ans = 0;rep1(b,0,10){ms(f[b],INF);f[b][0] = 0;rep1(i,b+1,1000)if (cost[i]!=-1){// c = cost[i] w = i - b;rep1(j,0,1000)if (f[b][j]<INF){int nextj = j + i - b;if (nextj > 1001) nextj = 1001;f[b][nextj] = min(f[b][nextj],f[b][j] + cost[i]);}}rep2(i,1000,1)f[b][i] = min(f[b][i],f[b][i+1]);int len = v[b].size();rep1(i,0,len-1){int x = v[b][i];if (f[b][x] >= INF){solved = false;break;}ans += f[b][x];}}if (solved){ol(ans);puts("");}elseputs("-1");}return 0;
}
转载于:https://www.cnblogs.com/AWCXV/p/7626134.html
【2017百度之星程序设计大赛 - 资格赛】 度度熊与邪恶大魔王相关推荐
- 度度熊与邪恶大魔王(2017百度之星程序设计大赛 - 资格赛)
度度熊与邪恶大魔王 Accepts: 1764 Submissions: 10691 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: ...
- 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...
度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...
- 2017百度之星程序设计大赛-资格赛
ACM模版 忙里偷闲的写了几道题,这两天好忙啊--只过一道题就能通过资格赛,所以并没有什么签到题--但是的确有的题被我想难了~~~ 1002-度度熊的王国战略 >>>并查集<& ...
- 2017百度之星程序设计大赛 - 资格赛:1003 度度熊与邪恶大魔王
题目: Problem Description 度度熊为了拯救可爱的公主,于是与邪恶大魔王战斗起来. 邪恶大魔王的麾下有n个怪兽,每个怪兽有a[i]的生命值,以及b[i]的防御力. 度度熊一共拥有m种 ...
- 2018百度之星程序设计大赛 - 资格赛 hdu6345(找区间最小值)
子串查询 Time Limit: 3500/3000 MS (Java/Others) Memory Limit: 262144/262144 K (Java/Others) Total Sub ...
- 2017百度之星程序设计大赛 - 复赛 01,03,05
Arithmetic of Bomb Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Other ...
- HDU 6114 Chess 【组合数】(2017百度之星程序设计大赛 - 初赛(B))
Chess Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Subm ...
- [SinGuLaRiTy] 2017 百度之星程序设计大赛 初赛A
[SinGuLaRiTy-1036] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 小C的倍数问题 Time Limit: 2000/100 ...
- 2018百度之星程序设计大赛资格赛(4道题的答案)
目前是百度之星的资格赛比赛时间,写对一道题就可以进入后面的比赛了,我们初赛再见咯.明明昨天就上传该文章,可惜图片太多一直列为待审核,现在图片都删了,日后再来详细补充题目吧. ###调查问卷 #incl ...
最新文章
- SQL Server 数据库文件 4 点注意
- CocoaPods私有库创建
- java取路径含中文_java获取项目路径中文乱码
- 进fastreboot
- 20161228阅读笔记
- iOS中assign、copy 、retain等关键字的含义
- 前端学习(2463):vue中 关于$emit的用法
- 前端学习(1264):fetch响应结果
- codeforces B. The Fibonacci Segment 解题报告
- Spark内核源码学习(暂未学完)
- MySQL笔记-简单配置主从库
- Google 搜索的基本语法
- 从 Vue 的视角学 React(二)—— 基本语法
- [网络安全自学篇] 二十三.基于机器学习的恶意请求识别及安全领域中的机器学习
- AssertionError: Incompatible version of pycocotools is installed.
- 蛋白质组学数据分析——(1)原理
- Revit SDK 介绍:CompoundStructure 复合结构
- 什么是Flex布局?
- pytorch实现straight-through estimator(STE)
- The requested operation requires elevation问题解决