玲珑杯 1097题 LIS(最长递增子序列)

来源:互联网 发布:python3 apache 编辑:程序博客网 时间:2024/06/07 23:21

“玲珑杯”ACM比赛 Round #11 c/acm/solution/16
1097 - 萌萌哒的第二题

Time Limit:5s Memory Limit:128MByte

Submissions:748Solved:210

DESCRIPTION

一条东西走向的河两边有都排着工厂,北边有n间工厂A提供原材料,南边有n间工厂B进行生产。现在需要在工厂A和工厂B之间建运输桥以减少运输成本。可是每个工厂B只能接受最多6个工厂A提供的材料能满足生产,而且建立的运输桥之间不能有交叉,北边的工厂A由西向东编号1~n,南边的工厂B也是一样,不能交叉的意思是如果a号工厂A跟b号工厂B之间建立了运输桥,那么不能存在c、d(c < a 且d > b) 使得c号工厂A和d号工厂b之间建立运输桥,每个工厂A只能给一个工厂B提供材料,每个工厂B只能由一间工厂A提供材料,请问在满足上述条件的情况下最多能建立多少个运输桥。
(每个工厂最多有6个选择,但只能选一个)

INPUT
包含多组测试数据(<=15),其中每组测试数据: 第一行一个整数n(1<= n <= 10^5) 接下来n行,第i+1行6个整数表示i号工厂B能接受的6个工厂A的编号,保证所有编号的范围是1~n,可能重复(请看样例)。
OUTPUT
每组数据输出一行一个整数表示最多能建立的运输桥数量。
SAMPLE INPUT
3
1 2 3 1 2 3
2 2 2 2 2 2
1 3 1 3 1 3
6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 2 3 4 5 6
1 1 1 1 1 1
SAMPLE OUTPUT
3
5
SOLUTION


当时这道题不会做,没想到LIS(最长递增子序列)能做。怪我赛后没补题吧。

题意:在河上建最多的桥,桥不能交叉,能建桥的位置已知,每个点只能建一座桥。

思路:

1 2 3 1 2 3
2 2 2 2 2 2
1 3 1 3 1 3

将每一组数据分别排序(降序)后放在一起  3 3 2 2 1 1 2 2 2 2 2 2 3 3 3 1 1 1 然后找最长递增子序列。

代码如下:

#include <cstdio>#include <algorithm>using namespace std;int cmp(int a,int b){    return a>b;}int a[1001000];int dp[100100];int b[10];int erfen(int l,int r,int x){    int mid;    while(l<r)    {        mid=(l+r)>>1;        if(x==dp[mid]) return mid;        if(x<dp[mid]) r=mid;        else l=mid+1;    }    return l;}int main(){    int n;    while(~scanf("%d",&n))    {        int len=0;        for(int i=0;i<n;i++)        {            for(int j=0;j<6;j++)                scanf("%d",&b[j]);                sort(b,b+6,cmp);                for(int j=0;j<6;j++)                    a[len++]=b[j];        }        int ma=0;        for(int i=0;i<len;i++)        {            int p=erfen(0,ma,a[i]);            dp[p]=a[i];            if(p==ma) ma=p+1;        }        printf("%d\n",ma);    }}









原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 新生儿拉屎是水怎么办 婴儿拉屎稀水怎么办 新生儿睡得少怎么办 小孩大便是水怎么办 婴儿大便稀水样怎么办 小孩晚上睡不着觉怎么办 小孩小鸡头红怎么办 儿童睡觉磨牙齿怎么办 幼儿小鸡红肿疼怎么办 宝宝小鸡淹了怎么办 小孩的小鸡肿怎么办 小鸡脚趾歪了怎么办 小鸡脖子歪了怎么办 宝宝的小鸡红怎么办 游戏联不了网络怎么办 光敏印章进水了怎么办 照片打印出来黑怎么办 企业股东签名不符怎么办 电脑签字签不了怎么办 刘海的碎发怎么办 车牌号全是单数怎么办 品正通保车险超市怎么办营业执照 车辆咨询服务门市怎么办营业执照 被互盾科技骗了怎么办 家具生意不好怎么办啊 今年家具店生意不好怎么办 奶茶店位置不好怎么办 早餐店位置不好怎么办 木工做的不好怎么办 淘宝昵称改不了怎么办 淘宝店关门售后怎么办 店里生意不好怎么办?解决方案 淘宝店铺没有生意怎么办 淘宝店做大了应该怎么办 汽车维修没生意怎么办 淘宝买家具安装怎么办 投标时未记主材费结算时怎么办 不敢买自慰棒怎么办 车被扎了个洞怎么办 企业欠税交不起怎么办 组织代码查不到怎么办