GCD(ZYYS)
【问题描述】
在山的那边、海的那边有 n 个小矮人,他们生存的意义就是要保护他们的精
神领袖——GCD。有一天,他们收到了一封恐吓信,说要在一个遥远的地方用维
纳斯之箭射击 GCD,让他变成一根面条,n 个小矮人当然要保护 GCD,GCD 实在
是太高了,于是矮人们决定搭成一个不低于 GCD 的矮人塔,可他们智商很低,
于是就找到了你。
每个小矮人都有三个指数:h,w,s,分别代表身高,体重与承受力,每一个小
矮人上方所搭的矮人的体重之和不能超过他的承受力。
小矮人想问你他们能不能搭成一个符合要求的塔,如果能的话,他们还想问
你搭成的塔的最大的稳定性(塔的稳定性指的是还能在塔上方最多加的重量)。
【输入格式】
从 b.in 读入数据
两个正整数 n,H,H 表示 GCD 的身高。
接下来 n 行,每行三个正整数 h, w, s,意义如题中所述。
【输出格式】
输出到文件 b.out 中
如果不能,则输出 GCD is too tall
否则,输出一个正整数,表示塔的最大稳定性。
【样例输入 1】
4 10
941
335
5 5 10
445
【样例输出 1】
2
【样例解释】
从底向上分别放 3 号,4 号,二号
【样例输入 2】
4 100
941
335
5 5 10
445
【样例输出 2】
GCD is too tall
【数据规模和约定】对于 20%的数据,n<=10
对于 40%的数据,n<=20
对于 60%的数据,n<=25
对于 70%的数据,n<=30
对于 100%的数据,n<=50,H<=2147483647;h,w,s <= 10^9
其中有数据满足:
H <= 30000
H <= 40000
H <= 80000
H <= 130000
H <= 260000
保证数据随机生成~
我们考虑要选的小矮人 i,j,比较谁放在下面更优,当然是通过放了之后的
稳定值来比较,贪心地想,稳定值越大当然越好。
i 放在下面的稳定值为: s[i] - w[j];
所以,i 比 j 优的条件为: s[i] - w[j] > s[j] - w[i];
即: s[i] + w[i] > s[j] + w[j];
所以,我们开始把小矮人按 s + w 排序,对于选出来的小矮人,就不用枚举顺
序了
不过当然要加
上最优性剪枝(可行性剪枝好像没什么效果)。复杂度:O(???)
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
typedef long long lol;
struct Zt
{
lol h,w,s;
}a[];
lol n,h,ans=-,sumh[],sumw[];
bool cmp(Zt a,Zt b)
{
return (min(a.s-b.w,b.s)>min(b.s-a.w,a.s));
}
void dfs(int x,lol H,lol P)
{
if (H>=h)
{
if (P>ans) ans=P;
return;
}
if (x>n) return;
if (ans>=P) return;
if (H+sumh[n]-sumh[x-]<h) return;
if (a[x].w<=P)
dfs(x+,H+a[x].h,min(a[x].s,P-a[x].w));
if (P)
dfs(x+,H,P);
}
int main()
{int i;
cin>>n>>h;
for (i=;i<=n;i++)
{
scanf("%lld%lld%lld",&a[i].h,&a[i].w,&a[i].s);
}
sort(a+,a+n+,cmp);
for (i=;i<=n;i++)
{
sumh[i]=sumh[i-]+a[i].h;
sumw[i]=sumw[i-]+a[i].w;
}
dfs(,,2e9);
if (ans==-) cout<<"GCD is too tall";
else
cout<<ans;
}
GCD(ZYYS)的更多相关文章
- Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用
OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLin ...
- iOS 多线程之GCD的使用
在iOS开发中,遇到耗时操作,我们经常用到多线程技术.Grand Central Dispatch (GCD)是Apple开发的一个多核编程的解决方法,只需定义想要执行的任务,然后添加到适当的调度队列 ...
- 【swift】BlockOperation和GCD实用代码块
//BlockOperation // // ViewController.swift import UIKit class ViewController: UIViewController { @I ...
- 修改版: 小伙,多线程(GCD)看我就够了,骗你没好处!
多线程(英语:multithreading),是指从软件或者硬件上实现多个线程并发执行的技术.具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能.具有这种能力的系 ...
- GCD的相关函数使用
GCD 是iOS多线程实现方案之一,非常常用 英文翻译过来就是伟大的中枢调度器,也有人戏称为是牛逼的中枢调度器 是苹果公司为多核的并行运算提出的解决方案 1.一次性函数 dispatch_once 顾 ...
- hdu1695 GCD(莫比乌斯反演)
题意:求(1,b)区间和(1,d)区间里面gcd(x, y) = k的数的对数(1<=x<=b , 1<= y <= d). 知识点: 莫比乌斯反演/*12*/ 线性筛求莫比乌 ...
- hdu2588 GCD (欧拉函数)
GCD 题意:输入N,M(2<=N<=1000000000, 1<=M<=N), 设1<=X<=N,求使gcd(X,N)>=M的X的个数. (文末有题) 知 ...
- BZOJ 2820: YY的GCD [莫比乌斯反演]【学习笔记】
2820: YY的GCD Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1624 Solved: 853[Submit][Status][Discu ...
- BZOJ 2818: Gcd [欧拉函数 质数 线性筛]【学习笔记】
2818: Gcd Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 4436 Solved: 1957[Submit][Status][Discuss ...
随机推荐
- windows下apache报os 10048错误
在apache的bin目录下运行httpd -k install,报错os10048 (错误信息是跟443端口有关),网上的答案说的是改掉httpd.conf里的默认端口或者关闭占用端口的进程,默认端 ...
- 第一次作业:扑通扑通 我的IT
让我掉下眼泪的不止昨夜的酒,还有这满屏的代码. 第一部分:结缘计算机 你为什么选择计算机专业?你认为你的条件如何?和这些博主比呢? 在炎炎的夏日,伴随这高三的结束,我也面临大学专业的选择,我看着书里密 ...
- Beta冲刺 第三天
Beta冲刺 第三天 1. 昨天的困难 昨天的困难主要集中在对Ajax的使用上,不熟悉这种语法,所以也就浪费了时间,导致昨天的批量删除没有完全完成. 2. 今天解决的进度 潘伟靖: 1.完善了昨天没写 ...
- 冲刺NO.11
Alpha冲刺第十一天 站立式会议 项目进展 项目进入尾声,主要测设工作完成过半,项目总结也开始进行. 问题困难 项目的困难现阶段主要是测试过程中存在一些"盲点"很难发现或者发现后 ...
- 第一周-JAVA基本概念
1. 本周学习总结 本周学习内容: 1.JAVA的发展 2.JDK,JVM,JRE, 3.掌握JAVA的组成结构 4.掌握使用简单的编译器写javac与java命令, 关键概念之间的联系: JVM:将 ...
- 开始使用HTML5和CSS3验证表单
使用HTML5和CSS3验证表单 客户端验证是网页客户端程序最常用的功能之一,我们之前使用了各种各样的js库来进行表单的验证.HTML5其实早已为我们提供了表单验证的功能.至于为啥没有流行起来估计是兼 ...
- 《javascript设计模式与开发实践》阅读笔记(10)—— 组合模式
组合模式:一些子对象组成一个父对象,子对象本身也可能是由一些孙对象组成. 有点类似树形结构的意思,这里举一个包含命令模式的例子 var list=function(){ //创建接口对象的函数 ret ...
- 关于网页设计的css+html相对定位和决定定位的理解
css中有很多定位,其中最重要的是相对定位和绝对定位: 定位很重要,不搞好,网页就会很乱,显示的完全不是自己想要的效果,自己必须掌握: 首先说一个重要的结论:绝对定位,是不占位置的,总是相对离自己最近 ...
- Docker学习笔记 - Docker Compose 脚本命令
Docker Compose 配置文件包含 version.services.networks 三大部分,最关键的是 services 和 networks 两个部分, version: '2' se ...
- 新概念英语(1-107)It's Too Small.
Lesson 107 It's too small. 太小了. Listen to the tape then answer this question. What kind of dress doe ...