NYOJ心急的C小加——贪心

这个题会联想到拦截导弹的题目http://codevs.cn/problem/1044/
首先用动态规划,利用Dilworth定理解题,然而超时了(╥╯^╰╥)
关于Dilworth定理,我的理解:
389 207 155 300 299 170 158 65
最长不上升子序列(389 300 299 170 158 65)“最多能拦截6个导弹”;
最长上升子序列,即最少的链划分数为2,“要拦截所有导弹需要2套系统”。
//2016.2.24
//心急的C小加
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std; const int maxn=+;
int dp[maxn];
int n,cnt; struct Wood{
int length;
int weight;
Wood(int l=,int w=):length(l),weight(w){}
}wood[maxn]; //按质量大小排序,质量相同的按长度排序
bool cmp(const Wood &a,const Wood &b){
if(a.weight==b.weight){
return a.length<=b.length;
}else{
return a.weight<=b.weight;
}
} //Dilworth定理,求最长非上升子序列---------超时
void solve(){
cnt=;
for(int i=;i<n;i++){
dp[i]=;
for(int j=;j<i;j++){
if(wood[j].length>wood[i].length){
dp[i]=max(dp[i],dp[j]+);
}
}
cnt=max(cnt,dp[i]);
}
cout<<cnt<<endl;
} int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=;i<n;i++){
cin>>wood[i].length>>wood[i].weight;
}
sort(wood,wood+n,cmp);
solve();
}
return ;
}
下面是AC代码:
//2014.2.25
//心急的C小加
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cstdio>
using namespace std; const int maxn=+;
int n; struct Wood{
int length;
int weight;
int isVisit; //增加一个标记位
Wood(int l=,int w=,int v=):length(l),weight(w),isVisit(v){}
}wood[maxn]; //按质量大小排序,质量相同的按长度排序
bool cmp(const Wood &a,const Wood &b){
if(a.weight==b.weight){
return a.length<=b.length;
}else{
return a.weight<=b.weight;
}
} void solve(){
int tmp,cnt=;
for(int i=;i<n;i++){
if(wood[i].isVisit==){
cnt++;
tmp=wood[i].length;
for(int j=i+;j<n;j++){
if(wood[j].isVisit==&&wood[j].length>=tmp){
tmp=wood[j].length;
wood[j].isVisit=; //如果满足增序就标志为1
}
}
}
}
cout<<cnt<<endl;
} int main(){
int t;
cin>>t;
while(t--){
cin>>n;
for(int i=;i<n;i++){
cin>>wood[i].length>>wood[i].weight;
wood[i].isVisit=; //初始化很容易忘记!
}
sort(wood,wood+n,cmp);
solve();
}
return ;
}
NYOJ心急的C小加——贪心的更多相关文章
- 心急的C小加 贪心算法
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- nyoj 236 心急的C小加
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- ACM 心急的C小加
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- 心急的C小加(两种解法)
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...
- ny236 心急的C小加 hdoj1051 Wooden Sticks
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...
- 心急的C小加
描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果 第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则 ...
- 问题 G: 心急的C小加
题目描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否 ...
- nyoj 236心急的C小加 动态规划( java)
sort函数用法: #include<algorithm> using namespace std; sort(a,a+len;cmp) //a-->数组名, len-- ...
- nyoj--236--心急的C小加(动态规划&&LIS)
心急的C小加 时间限制:1000 ms | 内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...
随机推荐
- Java实验环境搭建
1.JDK的下载一.JDK的下载及安装 (1).网站网址搜索http://www.oracle.com/technetwork/java,进入浏览页(2)找到Trials and Download 点 ...
- ios开发——runtime
首先,最重要的一点,学runtime能干嘛? 1.使用runtime改变变量值 2.使用runtime交换方法 3.使用runtime添加方法 4.使用runtime给分类扩展属性 学了runtime ...
- 1.sts的下载安装
sts的官方下载如下: http://spring.io/tools3/sts/all/ 将下载后的压缩文件解压,在解压后的sts-bundle下的sts-3.9.1RELEASE目录中STS.exe ...
- android 权限问题分析
Android系统是运行在Linux内核上的,Android与Linux分别有自己的一套严格的安全及权限机制, 很多像我这样的新手,尤其是习惯了windows低安全限制的用户,很容易在这方面弄混淆,下 ...
- 网上有一种错误的做法是:因为每一个双连通分量内的点low[]值都是相同的,则dfs()时,对于一条边(u,v),只需low[u]=min(low[u],low[v]),这样就不用缩点,最后求度数的时候
- 大数据学习[16]--使用scroll实现Elasticsearch数据遍历和深度分页[转]
题目:使用scroll实现Elasticsearch数据遍历和深度分页 作者:星爷 出处: http://lxWei.github.io/posts/%E4%BD%BF%E7%94%A8scroll% ...
- FaceBook推出的Android图片载入库-Fresco
欢迎关注ndroid-tech-frontier开源项目,定期翻译国外Android优质的技术.开源库.软件架构设计.測试等文章 原文链接:Introducing Fresco: A new imag ...
- 使用URL在线语音合成
近期一直在做手机的项目,用到了语音合成与识别的功能.就找了几个网址做了分析,这里只实现了内容的合成.并不包括语音识别. 首先看一下谷歌的语音合成地址: http://translate.google. ...
- cocos2dx 3.1从零学习(二)——菜单、场景切换、场景传值
回想一下上一篇的内容,我们已经学会了创建一个新的场景scene,加入sprite和label到层中.掌握了定时事件schedule. 我们能够顺利的写出打飞机的主场景框架. 上一篇的内容我练习了七个新 ...
- springmvc and maven
使用Maven构建Spring MVC项目的简单示例 标签: mavenspringmvcspring 2013-09-29 12:40 42823人阅读 评论(8) 收藏 举报 分类: Maven ...