Software Company LightOJ
来源:互联网 发布:javascript if 编辑:程序博客网 时间:2024/05/17 22:25
转自:http://blog.csdn.net/l123012013048/article/details/49538731
感悟:
感觉还是挺难想的,,
还以是背包。。
但是这个地方用的二分显然是因为满足单调性。。
还有,对于两个相同的东西,,把一个放到数组的状态表示中,另一个作为值的方式好像和之前的那个表达式的很像。。
#include<bits/stdc++.h>using namespace std;#define sf scanf#define pf printf#define mem(a,b) memset(a,b,sizeof(a));#define N 105#define M 105#define inf 0x3f3f3f3fint n,m;int dp[N];int a[N],b[N];int cas;bool judge(int mid){ mem(dp,-1); dp[0]=0; for(int i=1;i<=n;++i){ int all=mid/a[i]; for(int j=m;j>=0;j--){ for(int k=0;k<=all&&k<=j;++k)if(dp[j-k]!=-1){ dp[j]=max(dp[j],dp[j-k]+(mid-k*a[i])/b[i]); } } } return dp[m]>=m;}void solve(){ int l=0,r=50000; while(l<r){ int mid=(l+r)>>1; if(judge(mid))r=mid; else l=mid+1; } pf("Case %d: %d\n",++cas,l);}int main(){ int T;cas=0; sf("%d",&T); while(T--){ sf("%d%d",&n,&m); for(int i=1;i<=n;++i){ sf("%d%d",&a[i],&b[i]); } solve(); }}
0 0
- Software Company LightOJ
- LightOJ - 1180 Software Company(二分+dp)
- lightoj 1180 - Software Company 二分+DP
- pku1973 Software Company
- POJ 1973 Software Company 笔记
- lightoj 1036 - A Refining Company
- Poj 1973 Software Company(二分+并行DP)
- Oracle Becomes 2nd Largest Software Company
- Light OJ 1180 Software Company (二分+DP)
- LightOJ 1221 - Travel Company(SPFA判负环)
- LightOj 1221 - Travel Company(spfa判负环)
- lightoj 1036 - A Refining Company (dp)
- LightOJ - 1039 A Toy Company(BFS)
- LightOJ - 1221 Travel Company(负环)
- LightOJ 1036 - A Refining Company(dp)
- LightOJ 1036 - A Refining Company(dp)
- LightOJ 1036 - A Refining Company(DP)
- lightoj 1036 - A Refining Company DP
- JavaScript---对象学习(二)Array对象、Date对象及其重要函数学习
- VMware+ubuntu
- Windows8.1-KB2999226-x64安装提示 此更新不适用你的计算机
- 将博客搬至CSDN
- Fire(广搜里写广搜)
- Software Company LightOJ
- Zookeeper安装
- 漫步数理统计二十四——伽玛、卡方与贝塔分布
- 【Review】A Review on Deep Learning Techniques Applied to Semantic Segmentation
- TabHost、RadioGroup、ToolBar实现底部菜单导航
- codeforces788B Weird journey
- 区域生长算法原理以及Matlab实现
- hdu 1008 Elevator
- NYOJ-ACM-求转置矩阵问题