T1:P1678 烦恼的高考志愿

评测记录:https://www.luogu.org/record/show?rid=9644174


大意

有m个分数线,有n个估分,给每个估分找一个最接近的分数线,输出每个估分和它最接近的分数线的差之和。


解题思路

我们先将分数排序
我们可以找到一个估分的分数线前驱,那么这个的后一个就是这个估分的分数线后继,那么我们将估分和这两个的差取最小值就是最接近的分数线。然后第一个和最后一个特殊处理一下就好了。


code

#include<cstdio>
#include<algorithm>
using namespace std;
int n,m,a[100001],f,l,r,mid,ans;
int finds(int x)//查找前驱
{int l=1,r=n,mid;while (l<r){mid=(l+r+1)/2;if (a[mid]<=f) l=mid;else r=mid-1;}return l;
}
int main()
{scanf("%d%d",&n,&m);for (int i=1;i<=n;i++)scanf("%d",&a[i]);sort(a+1,a+1+n);for (int i=1;i<=m;i++){scanf("%d",&f);int fd=finds(f);if (fd==1&&f<a[fd]||fd==n) ans+=abs(f-a[fd]);//特判else ans+=min(f-a[fd],a[fd+1]-f);//取最小}printf("%d",ans);
}

T2:P3902 递增

评测记录:https://www.luogu.org/recordnew/lists?uid=52918&pid=P3902


大意

一个长度为nnn的序列a" role="presentation">aaa,求至少修改多少个数可以使这个序列变成最长上升子序列。


解题思路

我们可以先求出这个序列的最长上升子序列,然后修改不在这个序列内的数就好了,那么答案就是n−LISnumn−LISnumn-LIS_{num}


code

#include<cstdio>
using namespace std;
int n,a[100001],tail,h[100001];
int finds(int x)//查找前驱
{int l=1,r=tail,mid;while (l<r){mid=(l+r)/2;if (h[mid]<x) l=mid+1;else r=mid;}return l;
}
int main()
{scanf("%d",&n);for (int i=1;i<=n;i++)scanf("%d",&a[i]);tail=0;for (int i=1;i<=n;i++){if (a[i]>h[tail]) h[++tail]=a[i];//加入序列else h[finds(a[i])]=a[i];//修改序列}printf("%d",n-tail);//输出答案
}

二分二题-P1678,P3902【二分,LIS】相关推荐

  1. 卷进大厂系列之LeetCode刷题笔记:二分查找(简单)

    LeetCode刷题笔记:二分查找(简单) 学算法,刷力扣,加油卷,进大厂! 题目描述 涉及算法 题目解答 学算法,刷力扣,加油卷,进大厂! 题目描述 力扣题目链接 给定一个 n 个元素有序的(升序) ...

  2. 【cdq分治】cdq分治与整体二分学习笔记Part1.整体二分

    之所以把cdq分治和整体二分放在一起学习,是因为他们两个实在太像了-不管是做法还是代码- 感觉整体二分可能会比cdq分治稍微简单那么一点点?所以先学整体二分. 整体二分是对答案进行二分,其具体操作如下 ...

  3. code第一部分数组:第二十二题 偶数次中查找单独出现一次的数

    code第一部分数组:第二十二题 偶数次中查找单独出现一次的数 Given an array of integers, every element appears twice except for o ...

  4. 经典算法题每日演练——第二十二题 奇偶排序

    原文:经典算法题每日演练--第二十二题 奇偶排序 这个专题因为各种原因好久没有继续下去了,MM吧...你懂的,嘿嘿,不过还得继续写下去,好长时间不写,有些东西有点生疏了, 这篇就从简单一点的一个&qu ...

  5. 第十二题:设int x=1,float y=2,则表达式x/y的值是:

    第十二题 设int x=1,float y=2,则表达式x/y的值是:() A 0 B 1 C 2 D 以上都不是 懵逼树上懵逼果,懵逼树下你和我 首先看到这道题,我是懵逼和绝望的. 首先我们打开评论 ...

  6. 程序设计第二十二题 空心三角形

    Problem Description 把一个字符三角形掏空,就能节省材料成本,减轻重量,但关键是为了追求另一种视觉效果.在设计的过程中,需要给出各种花纹的材料和大小尺寸的三角形样板,通过电脑临时做出 ...

  7. 第一章第十二题(以千米计的平均速度)(Average speed in kilometers)

    第一章第十二题(以千米计的平均速度)(Average speed in kilometers) 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个程序显示以每小时多少 ...

  8. 第七章第二十二题(计算一个字符串中大写字母的数目)(Calculates the number of uppercase letters in a string)

    第七章第二十二题(计算一个字符串中大写字母的数目)(Calculates the number of uppercase letters in a string) *7.22(计算一个字符串中大写字母 ...

  9. 2020高考理科数学全国3卷:选择题第十二题解析

    这是2020年高考理科数学全国3卷的选择题第十二题 题目 已知 5 5 < 8 4 5^5< 8^4 55<84 , 1 3 4 < 8 5 13^4< 8^5 134& ...

最新文章

  1. IP 管理,几多欣喜几多忧
  2. Java 编程下的同步代码块
  3. 第七章 控制PL/SQL错误
  4. 2019龙少php泛站群,龙少php泛站群|PHP版站群 全自动泛解析站群程序 赠送教程
  5. inside sqlite_Inside Codeland –迄今为止最具包容性的开发者大会
  6. 问题跟踪软件URTracker和Windows域的集成
  7. 【Bootstrap】 typeahead自动补全
  8. LVGL『Roller滚轮控件』介绍
  9. 2018年中小学计算机培训,2018年中小学网管员培训心得体会
  10. 设计模式(二)简单工厂模式
  11. hash函数原理实现
  12. 360全景的原理与展示
  13. 解决非苹果电脑使用iPad作为扩展屏的问题
  14. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)
  15. VS2008与华途示教器连接步骤
  16. 牛客AI面经-数据分析1
  17. SpringBoot的Undertow和Tomcat对比
  18. 用Python数据分析告诉你,《三十而已》凭什么这么戳中观众的心
  19. 软件架构设计学习总结(3):QQ空间技术架构之详解
  20. python文本框随窗体变化_Javascript 文本框textarea高度随内容自适应增长收缩

热门文章

  1. 模拟器显示空白图片_Kawaks街机模拟器,还是小时候的味道!
  2. 华为交换机初始化_华为交换机恢复出厂设置
  3. [SpringSecurity]web权限方案_CSRF功能
  4. Java 实例 - 队列(Queue)用法
  5. 高等数学下-赵立军-北京大学出版社-题解-练习9.3
  6. [Java基础]Properties
  7. [C++STL]C++实现stack容器适配器
  8. mysql技术分享-- 视图是什么
  9. exceptionhandler注解_SpringMVC 中 @ControllerAdvice 注解的三种使用场景!
  10. 华为笔记本软件商店_华为应用市场 PC 端体验:干净好用 - 华为