“玲珑杯”ACM比赛 Round #11 " ---1097 - 萌萌哒的第二题
题意:中文题好像没有必要说题意了吧。。
思路:我们知道由于运输桥不能交叉,所以从右往左所修建的桥的序号是严格单增的。但是每个工厂B有6种选择,只能选一个求最多能建造几座桥,也就是最长单增子序列。
放出题解吧:可以连接的两个工厂相当于可以匹配的两个点,那么问题转化为求两个串的最长公共子序列,但O(n^2)的复杂度会超时,由于第二个串每个点最多只有6个点与之匹配,所以可以把第二个串的每个点变成可以与之匹配的六个编号从大到小排序,然后求最长上升子序列。
从大到小是保证每个工厂B只选一个出来。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cassert>
#include <algorithm>
using namespace std; int b[10];
int f[600020];
int n, x; int main() { while (scanf("%d", &n) != EOF) {
assert(1 <= n && n <= 100000);
memset(f, 0x3f, sizeof f);
for (int i = 0; i < n; i++) {
for (int j = 0; j < 6; j++) {
scanf("%d", &b[j]);
}
sort(b, b + 6);
for (int j = 5; j >= 0; j--) {
*lower_bound(f, f + n, b[j]) = b[j];
}
}
printf("%d\n", (int)(lower_bound(f, f + n, 0x3f3f3f3f) - f));
}
return 0;
}//标程
菜鸡版:
int a[N],b[N];
int main()
{
int n;
int s[7];
while(~scanf("%d",&n))
{
int l=0,len=0;
for(int i=1;i<=n;i++)
{
for(int j=0;j<6;j++) scanf("%d",&s[j]);
sort(s,s+6);
int k=unique(s,s+6)-s;
for(int i=k-1;i>=0;i--) a[l++]=s[i];//从大到小独一无二。
}
b[len++]=a[0];
for(int i=1;i<l;i++)
{
if(a[i]>b[len-1]) b[len++]=a[i];
else
{
int k=lower_bound(b,b+len,a[i])-b;
b[k]=a[i];
}
}
printf("%d\n",len);
}
return 0;
}
这个题真是亦可赛艇啊,导致我校部分选手卡到最后。不会应该及时跳过去,final悲剧再现。
“玲珑杯”ACM比赛 Round #11 " ---1097 - 萌萌哒的第二题的更多相关文章
- “玲珑杯”ACM比赛 Round #11 B -- 萌萌哒的第二题
DESCRIPTION 一条东西走向的河两边有都排着工厂,北边有n间工厂A提供原材料,南边有n间工厂B进行生产.现在需要在工厂A和工厂B之间建运输桥以减少运输成本.可是每个工厂B只能接受最多6个工厂A ...
- “玲珑杯”ACM比赛 Round #11 B题
http://www.ifrog.cc/acm/problem/1097?contest=1013&no=1 //LIS的高端写法 #include <iostream> #inc ...
- “玲珑杯”ACM比赛 Round #12题解&源码
我能说我比较傻么!就只能做一道签到题,没办法,我就先写下A题的题解&源码吧,日后补上剩余题的题解&源码吧! A ...
- “玲珑杯”ACM比赛 Round #1
Start Time:2016-08-20 13:00:00 End Time:2016-08-20 18:00:00 Refresh Time:2017-11-12 19:51:52 Public ...
- “玲珑杯”ACM比赛 Round #19题解&源码【A,规律,B,二分,C,牛顿迭代法,D,平衡树,E,概率dp】
A -- simple math problem Time Limit:2s Memory Limit:128MByte Submissions:1599Solved:270 SAMPLE INPUT ...
- “玲珑杯”ACM比赛 Round #19 B -- Buildings (RMQ + 二分)
“玲珑杯”ACM比赛 Round #19 Start Time:2017-07-29 14:00:00 End Time:2017-07-29 16:30:00 Refresh Time:2017-0 ...
- “玲珑杯”ACM比赛 Round #18
“玲珑杯”ACM比赛 Round #18 Start Time:2017-07-15 12:00:00 End Time:2017-07-15 15:46:00 A -- 计算几何你瞎暴力 Time ...
- “玲珑杯”ACM比赛 Round #1 题解
A:DESCRIPTION Eric has an array of integers a1,a2,...,ana1,a2,...,an. Every time, he can choose a co ...
- 玲珑杯”ACM比赛 Round #4 1054 - String cut 暴力。学到了扫描的另一种思想
http://www.ifrog.cc/acm/problem/1054 问删除一个字符后的最小循环节是多少. 比赛的时候想不出,不知道怎么暴力. 赛后看了别人代码才晓得.唉,还以为自己字符串还不错, ...
随机推荐
- Minikube-Kubernetes本地环境进行开发
Minikube-Kubernetes本地环境进行开发 使用Minikube 启动Minikube # 启动 minkube start # 检查状态 minikube status host: Ru ...
- html5.0学习记录(一)——可拖动视频播放器
最近自己在重新学习html5新特性,了解到有视频标签和拖动标签,于是自己用这两个特性写了一个小demo,主要功能就是可以通过拖动视频来直接播放.效果图如下: 页面使用了<video>标签和 ...
- 从binlog恢复数据及Mysqlbinlog文件删除
做了mysql主从也有一段时间了,这两天检查磁盘空间情况,发现放数据库的分区磁盘激增了40多G,一路查看下来,发现配置好主从复制以来到现在的binlog就有40多G,原来根源出在这里,查看了一下my. ...
- 总结SQL Server窗口函数的简单使用
总结SQL Server窗口函数的简单使用 前言:我一直十分喜欢使用SQL Server2005/2008的窗口函数,排名函数ROW_NUMBER()尤甚.今天晚上我在查看SQL Server开发的相 ...
- SQL语句,mysql数据库
sql语句,把一张表里的数据,和特定数据(固定常量)新插入另一张表 ,,, from wm_jobpoint INSERT INTO wm_department(departmentcode,depa ...
- Date/Time Functions and Operators (Postgres)
http://www.postgresql.org/docs/9.1/static/functions-datetime.html Search Documentation: H ...
- App Store上的开源应用汇总
以下是互联网上主要的开源iOS应用的列表,在学习的时候,多看看完成的功能代码可以给我们带来很多经验,但是除了Apple官方提供的Sample Code之外,我们很难找到优质的开源项目代码,所以我搜集了 ...
- sql视图和表的区别
整理一下视图和表的区别 区别: 1.视图是已经编译好了的sql,表不是 2.视图没有实际的物理存储记录,表有 3.视图是逻辑概念,表可以进行修改 5.表是内模式,视图是外模式 6.视图是我们查看表的方 ...
- nuxt 初接触
对于nuxt服务端渲染让人动心的是不会再想vue一样去定义无数的路由了这一点是挺爽的!!! 先直接晒张图 在api这块增加了一个fetch方法 它会在组件每次加载前被调用(即在服务端或切换至目标路 ...
- Burpsuite1.7.03网站渗透神器最新破解版
众所周知,Burp Suite是响当当的web应用程序渗透测试集成平台.从应用程序攻击表面的最初映射和分析, 到寻找和利用安全漏洞等过程,所有工具为支持整体测试程序而无缝地在一起工作. 平台中所有工具 ...