这个题会联想到拦截导弹的题目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小加——贪心的更多相关文章

  1. 心急的C小加 贪心算法

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...

  2. nyoj 236 心急的C小加

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...

  3. ACM 心急的C小加

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...

  4. 心急的C小加(两种解法)

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4   描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的 ...

  5. ny236 心急的C小加 hdoj1051 Wooden Sticks

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...

  6. 心急的C小加

    描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果 第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否则 ...

  7. 问题 G: 心急的C小加

    题目描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间,如果第i+1个木棒的重量和长度都大于等于第i个处理的木棒,那么将不会耗费时间,否 ...

  8. nyoj 236心急的C小加 动态规划( java)

    sort函数用法: #include<algorithm> using namespace std; sort(a,a+len;cmp)    //a-->数组名,    len-- ...

  9. nyoj--236--心急的C小加(动态规划&&LIS)

    心急的C小加 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 C小加有一些木棒,它们的长度和质量都已经知道,需要一个机器处理这些木棒,机器开启的时候需要耗费一个单位的时间 ...

随机推荐

  1. struct-计算机学习日志

    STRUCT实验目的模拟缓冲区溢出的情况.代码总览#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; ...

  2. PL\SQL(day05)

    PLSQL 1.常用的访问数据库的相关技术 1) plsql 过程化的sql 2) proc/c++ 在c/c++语言中访问oracle数据库的技术 3) ado/odbc vc中访问数据库的技术 4 ...

  3. [luogu2587 ZJOI2008] 泡泡堂 (贪心)

    传送门 Description 第XXXX届NOI期间,为了加强各省选手之间的交流,组委会决定组织一场省际电子竞技大赛,每一个省的代表队由n名选手组成,比赛的项目是老少咸宜的网络游戏泡泡堂.每一场比赛 ...

  4. canvas实现圆框图片

    作者:issac_宝华链接:http://www.jianshu.com/p/9a6ee2648d6f來源:简书 在html中做圆框图片很容易,只需要简单的 border-radius: 50%; 当 ...

  5. SPU、SKU、ARPU是什么,我来记录一下我的理解

    在电商系统里经常会提到“商品”.“单品”.“SPU”.“SKU”这几个词,那么这几个词到底是什么意思呢? 既然不知道是什么,那么我们就查一下:SPU = Standard Product Unit ( ...

  6. vue 注册全局组件

    注册全局组件有啥好处呢? 提高代码的复用性:哪里需要写哪里,贼方便,就写一个标签:减少代码量:可以再配合slot一起使用,咦~~,舒服 为了让整个项目的可读性,我创建一个文件统一存放全局组件 1.创建 ...

  7. flask-sqlalchemy 配置 mysql (转载的文章)

    一.当然是把必备的包给安装上才行: Flask-SQLAlchemy pip install flask-sqlalchemy MySQL windows下64位压缩包的安装方式可以参考: http: ...

  8. 【2000*】【Codeforces Round #518 (Div. 1) [Thanks, Mail.Ru!] B】Multihedgehog

    [链接] 我是链接,点我呀:) [题意] [题解] 找到度数为1的点. 他们显然是叶子节点. 然后每个叶子节点. 往上进行bfs. 累计他们的父亲节点的儿子的个数. 如果都满足要求那么就继续往上走. ...

  9. [bzoj1552\bzoj2506][Cqoi2014]robotic sort 排序机械臂_非旋转Treap

    robotic sort 排序机械臂 bzoj-1552 bzoj-2506 Cqoi-2014 题目大意:给定一个序列,让你从1到n,每次将[1,p[i]]这段区间反转,p[i]表示整个物品权值第i ...

  10. UVA 10159

    http://blog.csdn.net/metaphysis/article/details/6926997 先向作者表达一下敬佩吧,十分巧妙地利用了状态压缩. 这道题有点组合数学的味道,当一个格子 ...