https://vjudge.net/problem/UVA-10154

↑Vjudge大法好

堆一个乌龟塔。每只乌龟有重量w和承重能力s(也要承受自己的重量,所以实际可托起s-w),问最多能堆几只乌龟

很明显是DP

从低往高堆不太好判断,因为不知道下面的乌龟还能不能承受得了。

切换到上帝视角,对于一个乌龟塔,我们可以直接把它托起来,然后在塔下面塞一只能承重的乌龟。

问题解决了。

 #include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<cmath>
using namespace std;
const int mxn=;
struct node{
int w,s;
}a[mxn];
int cmp(const node a,const node b){
return (a.s<b.s || (a.s==b.s && a.w<b.w));
}
int n;
int f[mxn],ans;
void solve(){
int i,j;
memset(f,0x3f,sizeof f);
f[]=;ans=;
for(i=;i<=n;i++){
for(j=n;j;j--){
if(f[j-]+a[i].w<=a[i].s){
f[j]=min(f[j],f[j-]+a[i].w);
}
if(f[j]<0x3f3f3f3f)ans=max(ans,j);
}
}
}
int main(){
int i,j;
n=;
while(scanf("%d%d",&i,&j)!=EOF){
if(i>j)continue;
a[++n].w=i;a[n].s=j;
}
sort(a+,a+n+,cmp);
solve();
cout<<ans<<endl;
return ;
}

最新文章

  1. xxxxxxxx
  2. Javascript本质第二篇:执行上下文
  3. vertical-align0 垂直对齐- 图片 兼容个浏览器
  4. ACM +-字符串
  5. SQLServer创建维护计划失败 错误c001f011
  6. ArrayList集合的语句示例
  7. android学习日记13--数据存储之SharedPreference
  8. 【web安全】第六弹:手工SQL注入详解
  9. 伪协议触发onbeforeunload
  10. HDU 2152 Fruit
  11. Float精度丢失
  12. PostgreSQL踩坑现场
  13. Nginx系列1:ubuntu16.04编译出适合自己的nginx服务器
  14. 在windows端使用jupyter notebook,服务器充当后台计算云端 简化描述
  15. Luogu P2279 [HNOI2003]消防局的设立
  16. C++ 引用 &amp; 的详解
  17. 牛客小白赛1 F题三视图
  18. redis 部署相关
  19. Linux CentOS更改文件的权限
  20. ThreaLocal

热门文章

  1. js开发中常用小技巧
  2. xml中encoding
  3. Docker使用入门
  4. protobuf-2.5.0的下载与安装
  5. [bzoj3371][poj2009][Usaco2004 Mar]Moo University - Emergency Pizza Order 定制比萨饼
  6. Ensure that you have installed a JDK (not just a JRE) and configured your JAVA_HOME system variable
  7. adnroid 打包问题 :compileReleaseJavaWithJavac
  8. CentOS 7.X 防火墙简单配置
  9. Pascal “内存病毒”(骗人的)
  10. 程序员必备PC维修法(软件篇)