google code jam 2014 RC_B
来源:互联网 发布:淘宝 折扇 编辑:程序博客网 时间:2024/05/22 12:46
dota都没落了,还出抢人头的题目。这是落后多少年呀。
主要思想,问题转换,将戴安娜射向其他的怪兽的子弹,存起来,到用的时候,再一起用了。
其他的就是DP了。
#include <cstdio>#include <cstring>using namespace std;int T,N,P,Q;int H[102],G[102];int A[102],B[102];int dp[102][2001];inline int max(int a,int b){return a>b?a:b;}int main(){freopen("B-large-practice.in","r",stdin);freopen("b.out","w",stdout);scanf("%d",&T);for(int cas=1; cas<=T; ++cas){scanf("%d%d%d",&P,&Q,&N);for(int i=1; i<=N; ++i){scanf("%d%d",H+i,G+i);}for(int i=1; i<=N; ++i){B[i]=H[i]/Q;if(H[i]%Q==0){B[i]--;}A[i]=(H[i]-Q*B[i])/P;}memset(dp,-1,sizeof(dp));int c=0;dp[0][1]=0;for(int i=1; i<=N; ++i){for(int j=0; j<2001; ++j){if(dp[i-1][j]<0) continue;int tmp2;dp[i][j+B[i]+1]=dp[i-1][j]; //ignore i-th oneint tmp;if(H[i]==A[i]*P+B[i]*Q) tmp=0;elsetmp=1;if(j+B[i]-A[i]-tmp>=0) dp[i][j+B[i]-A[i]-tmp]=max(dp[i][j+B[i]-A[i]-tmp],dp[i-1][j]+G[i]); //get the i-th one}}int ans=0;for(int i=0; i<2001; ++i){ans=max(ans,dp[N][i]);}printf("Case #%d: %d\n",cas,ans);}}
0 0
- google code jam 2014 RC_B
- Google Code Jam 2014 -- C
- google code jam 2014 RC_A
- google code jam 2014 RC_C
- google code jam 2014 RC_D
- google code jam 2014 RB_A
- google code jam 2014 RB_B
- google code jam 2014 RB_C
- Google Code Jam 2014 A. Magic Trick
- Google Code Jam 2014 A,B,D
- Google Code Jam 2006
- Google China Code Jam
- Google Code Jam
- Google Code Jam 130914
- Google Code Jam 2015
- Google Code Jam 2015
- 2016 google code jam
- Google code jam
- C#泛型详解
- Head First设计模式C++实现--第三章:装饰者(Decorator)模式
- Expires / Cache-Control / Last-Modified / If-Modified-Since / ETag / If-None-Match 区别使用
- 由易到难学习递归的精华
- wxWidgets中的类型转换
- google code jam 2014 RC_B
- Myeclipse报错Errors running builder 'DeploymentBuilder' on project 'xxx'
- 请对输入的一组数据(0~9)进行排序,规则:数据出现次数多的,数字大的排在前面。
- 【学习OpenCV】OpenCV起步--下载离线文档
- is too old (format 29) to work with client version '1.8.9 (r1591380)' (expects format 31).
- Git历险记(五)
- ehcache缓存同步配置
- C++小知识:C++类中成员的访问控制属性有哪些类型,什么区别
- 黑马程序员-day22-GUI