hdu 6082 2017百度之星资格赛
2017-08-07 17:27
323 查看
#include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> #include<queue> #include<vector> #include<set> #include<map> using namespace std; long long n,m; long long a[200005],b[200005]; long long k[20050],p[20050]; long long d[5005][21]; void dp() { memset(d,0x7f,sizeof(d)); for(int i=0;i<=10;i++) d[0][i]=0; for(int s=0;s<=10;s++) { for(int i=1;i<=2001;i++) { for(int j=0;j<m;j++) { if(p[j]<=s)continue;//no damage if(i-(p[j]-s)<0) d[i][s]=min(d[i][s],k[j]); else d[i][s]=min(d[i][s],d[i-p[j]+s][s]+k[j]); } } } } int main() { //freopen("in.txt","r",stdin); while(~scanf("%lld %lld",&n,&m)) { for(int i=0;i<n;i++) { scanf("%lld %lld",a+i,b+i); } for(int i=0;i<m;i++) scanf("%lld %lld",k+i,p+i); long long res=0;bool flag=true; dp(); long long f=0x7fffffffffffffff; for(int j=0;j<=10;j++) { f=0x7fffffffffffffff; for(int i=2001;i>=0;i--) { f=min(f,d[i][j]); d[i][j]=f; } } for(int i=0;i<n;i++) { long long r=d[a[i]][b[i]]; if(r>=0x7f7f7f7f7f7f7f7e) { flag=false; break; } res+=r; } if(!flag) printf("-1\n"); else printf("%lld\n",res); } return 0; }
相关文章推荐
- 【2017百度之星资格赛 1003】hdu 6082 完全背包
- HDU 6084 | 2017百度之星资格赛 1005 卡特兰数 + 分块打表
- 百度之星资格赛,hdu 4825 XOR SUM
- hdu 5685 2016"百度之星" - 资格赛(Astar Round1)Problem A
- HDU 6108 2017 百度之星 初赛A 1001 小C的倍数问题
- hdu 5688 2016"百度之星" - 资格赛 Problem D
- 2017百度之星 资格赛 1003 度度熊与邪恶大魔王(dp)
- 2017百度之星资格赛:1003. 度度熊与邪恶大魔王
- 百度之星资格赛1003 度度熊与邪恶大魔王(dp)--2017
- 2017百度之星资格赛 1003 度度熊与邪恶大魔王(DP)
- HDU 6146 && 2017 百度之星复赛 1003 Pokémon GO(递推)
- 2017百度之星资格赛 1003 度度熊与邪恶大魔王(DP 完全背包)
- HDU 2015百度之星资格赛—大搬家
- 2014 百度之星 资格赛 Xor Sum hdu 4825
- 2017百度之星资格赛(A)1005 今夕何夕(日期计算)
- 【2017百度之星资格赛】1004.度度熊的午饭时光思路及代码
- 2017百度之星资格赛:1002. 度度熊的王国战略
- 2017百度之星资格赛 1004 度度熊的午饭时光(01背包)
- 【2017百度之星】HDU 6114 Chess 【组合数取模,Lucas定理】
- HDU 6148 && 2017 百度之星复赛 1005 Valley Numer(数位dp)