2017"百度之星"程序设计大赛
来源:互联网 发布:gdi 高级编程 pdf 编辑:程序博客网 时间:2024/06/05 18:15
题目:
618
思路:这道题也是坑,WA了好多次,做了一下午...建立两个数组,dp[i][j]表示表示消灭防御为j生命值为i的怪物需要消耗多少水晶,num[i][j]表示表示防御为j生命值为i的怪物有多少只。利用dp不断更新找到消耗水晶数的最小值。至于不能击败所有的怪兽,只需考虑不破防的情况就行了(最大攻击力<=最小防御力 or 最大攻击力<=最大防御力--->最大攻击力<=最大防御力)。由于数据问题,选用__int64或long long输出答案为佳,中间也可以加一些剪枝来节省时间。。。CODE:
#include<bits/stdc++.h>using namespace std;__int64 dp[1005][11],num[1005][11],sum;int sk[1005];struct node{ int k,p;}q[1005];int main(){ int n,m,i,j,l,a,b,len; while(~scanf("%d%d",&n,&m)){ memset(dp,0,sizeof(dp)); memset(num,0,sizeof(num)); memset(sk,0,sizeof(sk)); int min_b=15,max_a=0,max_b=0,max_p=0; for(i=0;i<n;i++){ scanf("%d%d",&a,&b); num[a][b]++; min_b=min(min_b,b); max_a=max(max_a,a); max_b=max(max_b,b); } len=0; while(m--){ scanf("%d%d",&a,&b); if(b<=min_b) continue; if(sk[b]&&sk[b]<=a) continue; sk[b]=a; q[len].k=a;q[len++].p=b; max_p=max(max_p,b); } m=len; if(max_p<=max_b){ puts("-1"); continue; } for(l=0;l<=10;l++){ for(i=1;i<=max_a;i++){ __int64 cnt=-1; for(j=0;j<m;j++){ int op=q[j].p-l; if(op<=0)continue; if(i-op<=0){ if(cnt==-1||cnt>q[j].k) cnt=q[j].k; continue; } if(cnt==-1||cnt>dp[i-op][l]+q[j].k) cnt=dp[i-op][l]+q[j].k; } dp[i][l]=cnt; } } sum=0; for(i=1;i<=max_a;i++) for(j=0;j<=10;j++) sum+=dp[i][j]*num[i][j]; printf("%I64d\n",sum); } return 0;}
阅读全文
0 0
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 【2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛
- 2017"百度之星"程序设计大赛-资格赛
- 2017"百度之星"程序设计大赛
- MySQL的数据库和数据表的简单操作
- 2017 多校训练第四场 HDU 6069 Counting Divisors
- struts2中s:iterator 标签的使用详解
- 权限的设计
- 2017"百度之星"程序设计大赛
- 最新解决方法:安装Discuz! X3.2/3.3模板插件提示对不起,您安装的不是正版应用
- JSP内置对象
- HDU.1846 Brave Game (博弈论 巴什博弈)
- build-tools\21.1.1\aapt.exe'' finished with non-zero exit value 1
- eclipse雕虫小技一:eclipse打开文件目录
- shell学习七-----通过取串长度压测命令执行时间
- 【OpenCV3.3】编译源码并搭建VS2017+Windows开发环境
- js 中的加法和乘法