这个题会联想到拦截导弹的题目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. java源码

    Java泛型中的标记符含义: K - Key(键) V - Value(值) E - Element (在集合中使用,因为集合中存放的是元素) T - Type(Java 类,可做泛型) N - Nu ...

  2. BZOJ [POI2004]PRZ 状压DP_二进制_骚操作

    二进制就是比谁更sao... Code: #include <bits/stdc++.h> #define setIO(s) freopen(s".in"," ...

  3. Oracle开发常用函数 max 最大数 自动加 1

    max 最大数 自动加 1 create or replace function fun_getmaxlot( vend in varchar2 , domain IN VARCHAR2, tag i ...

  4. 使用tomcat搭建Jenkins环境(centos7.3)

    1.从官网下载最新版本的tomcat下载地址:https://tomcat.apache.org/2.Jenkins 官方网站下载最新版本war包Jenkins官网地址:http://jenkins- ...

  5. windows 下关于nginx的操作

    在nginx安装目录下操作 1.启动:start nginx 2.停止:① nginx.exe -s stop ②nginx.exe -s quit   注:stop是快速停止nginx,可能并不保存 ...

  6. firebird的日期型字段

    fb一大特色,日期型字段.dialect3时,对date time datetime是分的很清楚的.它们之间,你必须手把格式设定好,否则会报错.而不是你想象的会自动化:表xxx的date字段yyy,i ...

  7. LightOJ1234 Harmonic Number

    /* LightOJ1234 Harmonic Number http://lightoj.com/login_main.php?url=volume_showproblem.php?problem= ...

  8. 【ACM】nyoj_143_第几是谁_201308071558

    第几是谁?时间限制:3000 ms  |  内存限制:65535 KB 难度:3描述 现在有"abcdefghijkl”12个字符,将其按字典序排列,如果给出任意一种排列,我们能说出这个排列 ...

  9. [Linux]Apache配置虚拟主机

    Apache 配置虚拟主机的方式很多,种类也很多,主要分为两类:   基于名称的虚拟主机 (每个 IP 多个站点) 基于 IP 的虚拟主机 (每个 IP 一个站点) 基于名称的虚拟主机:  www.2 ...

  10. Thread.suspend和println使线程死锁

    Thread.suspend和println使线程死锁 package com.stono.thread2.page39; public class MyThread extends Thread{ ...