二分二题-P1678,P3902【二分,LIS】

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


大意

一个长度为nn的序列a,求至少修改多少个数可以使这个序列变成最长上升子序列。


解题思路

我们可以先求出这个序列的最长上升子序列,然后修改不在这个序列内的数就好了,那么答案就是nLISnumn−LISnum


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);//输出答案
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/323860.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Orleans的集群构建

听闻一周前,微软公布了.net core2.0,以及各种各样的其他core2.0.大家都很兴奋.微妈的诚意真是满满的.这次开源势头让我感觉到了微妈的技术实力之雄厚.我在这里祝福C#越来越好.细心的人似乎发现Orleans在github中是和net core分在一起的.Orleans的2.0何时发布呀… 现在我们面对…

汇编语言(二十二)之统计减去奇数的个数

输入一个正数&#xff0c;该数减去递增奇数&#xff08;从1开始&#xff09;直至小于等于零为止&#xff0c;计算该数减去奇数的个数 程序运行&#xff1a; 代码&#xff1a; datas segmentNUM dw 17ANS dw 0NUM_string db 0ffh, 0 ,100 dup(?)inputNUM …

卸载抖音和微博的一天……

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”抖音&#xff0c;这个APP也不知道出来多久了&#xff0c;但是印象中出来的时间不久&#xff1b;微博&#xff0c; 出来的时间要比抖音早很多&#xff0c; 记得我的第一篇微博是在2012年…

二分答案二题-P1182数列分段II,P1873砍树

T1:P1182T1:P1182数列分段SectionIISectionII评测记录&#xff1a;https://www.luogu.org/recordnew/lists?uid52918&pidP1182 大意 有n个数&#xff0c;要求分成m段使每段的和之中的最大值最小。 解题思路 二分最大值&#xff0c;然后枚举过去看至少分成几段。然后利用…

.NET Core 在程序集中集成Razor视图

前言 有时候&#xff0c;我们在开发一个程序集供其他项目引用的时候&#xff0c;可能需要对外输出一些HTML的结构数据。 还有一些情况我们可能开发的是一个中间件&#xff0c;这个中间件需要提供一些界面来对外展示数据或者是内部的一些程序的运行信息&#xff0c;这个时候我…

开学一月,可以自己玩自己做的游戏了!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”《趣味小游戏》的书已经讲完了&#xff0c;国庆假期给同学们布置了小游戏项目的任务&#xff0c;开学时检查了下&#xff0c;大部分做的还是挺不错的。有的同学超常发挥想象&#xff0…

汇编语言(二十三)之求一个数的补数

给定一个数&#xff0c;求该数的补数 程序运行&#xff1a; 代码&#xff1a; datas segmentNUM DB 12H,34H,56H,78H,9AH,0BCH,23H,45HDB 67H,89H,0DEH,13H,24H,35H,46H,57HN DB $-NUMoutputNUM db "orignal data NUM$"outputNUMC d…

POJ2018-Best Cow Fences【实数二分答案】

正题 题目链接&#xff1a;http://poj.org/problem?id2018 大意 有n个数&#xff0c;一段长度不小于L的子段&#xff0c;使他们的平均值最大。 解题思路 二分答案&#xff0c;然后一遍暴力用最大子段和的方法求出是否可以。 code #include<cstdio> #include<algo…

ASP.NET Core 防止跨站请求伪造(XSRF\/CSRF)攻击

什么是反伪造攻击? 跨站点请求伪造&#xff08;也称为XSRF或CSRF&#xff0c;发音为see-surf&#xff09;是对Web托管应用程序的攻击&#xff0c;因为恶意网站可能会影响客户端浏览器和浏览器信任网站之间的交互。这种攻击是完全有可能的&#xff0c;因为Web浏览器会自动在每…

汇编语言(二十四)之输出n行星号

输入一个数n&#xff0c;输出n行星号 程序运行&#xff1a; 代码&#xff1a; datas segmentline_number_max_len db 0ffhline_number db 0, 100h dup(?)input_line_number_prompt db input line number:$output db 0dh,0…

家的味道,家的感觉!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”国庆期间回了一趟家&#xff0c;上次从家里出来还是2020年正月的时候&#xff0c;因为疫情的原因&#xff0c;21年过年没有回去……早早的就买下回家的票&#xff0c;以前回家一趟&…

POJ3889-Fractal Streets【分形,递归,分治】

正题 题目链接&#xff1a;http://poj.org/problem?id3889 大意 第一级城市为图一&#xff0c;然后每次扩展一级就将原本的城市复制3份&#xff0c;一份放上面&#xff0c;一份正旋90’放左上&#xff0c;一份逆序90’放左边&#xff0c;最后将4份的头和尾连起来&#xff0c;…

.NET Core 2将Visual Basic带到了Linux和macOS平台

Microsoft已经愈加接近将Visual Basic划为.NET Core平台上的一等公民。作为.NET Core 2发行版的一部分&#xff0c;VB开发者现在可以编写针对.NET Standard 2.0的控制台应用程序和类库&#xff0c;并且可以兼容多个平台。这就意味着运行在Windows上的可执行文件或者类库也能够运…

汇编语言(二十五)之成绩分段统计

已知一个班的成绩&#xff0c;进行60,70,80,90,100分段统计 程序运行&#xff1a; 代码&#xff1a; datas segmentstudents_number dw 10students dw 76,69,84,90,73,88,99,63,100,80s6 dw 0hs7 dw 0hs8 dw 0hs9 dw 0hs10 dw 0houtput…

感动哭了……

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”一大早就好多人送祝福&#xff0c;感动不已~下课看手机之后&#xff0c;看到手机上有条消息&#xff0c;是认识好多年好多年的大姐发的&#xff1a;“小穆&#xff0c;今天你生日&…

POJ2083-Fractal【分形,分治】

正题 题目链接&#xff1a;http://poj.org/problem?id2083 大意 图形&#xff1a; 一级: XX二级: X&#xA0;&#xA0;&#xA0;X" role="presentation">X XX X XXX XXX三级: X X X XXXXXX X XXX X …

汇编语言(二十六)之自然数求和

输入一个数N&#xff0c;对1到N的所有自然数求和 程序运行&#xff1a; 代码&#xff1a; datas segmentN_string_max_length db 0ffhN_string db 0, 100h dup(?)N dw 0 sum dd 0 input db …

同学们,看看这里吧!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。恶”早上一进班&#xff0c;发现班内少了好几个学生&#xff0c;一想肯定是这几个熊孩子又违纪被王老师喊去了…自从这些孩子入学以来&#xff0c;大事小事不断的去犯&#xff0c;尤其是…

Oleans集群之Consul再解释

由于上周发文章的时候,我正要打算出门,所以就把写好的全部发出去了,有点仓促,虽然写了主线,但是这里还是需要再次解释一下. 我看到Orleans已经升级到了1.5.1了,(nuget上的官方发布),于是我就把Orleans升级到了1.5.1,顺便把net更改到了4.7版本. 再升级的时候,注意有几个依赖库…

别在被骗了!!!!!!

“大家好&#xff0c;我是雄雄&#xff0c;欢迎关注微信公众号&#xff1a;雄雄的小课堂。”今天&#xff0c;在身边又发生了一起诈骗案&#xff0c;被骗金额达5000余元在&#xff0c;就像佟老师说的一样&#xff0c;骗子可是一点人性都没有……大致的看了看具体细节&#xff0…