noip2012

noip2012题解:闲着无聊做了一遍noip2012我觉得出题出的好奇怪啊。。。为什么两道倍增两道二分答案???两天第一题:第一天第一题傻逼普及组题没什么好说的了第二天第一题你会扩欧就秒了两天第二题:

大家好,又见面了,我是你们的朋友全栈君。

题解:

闲着无聊做了一遍noip2012

我觉得出题出的好奇怪啊。。。

为什么两道倍增两道二分答案???

两天第一题:

第一天第一题傻逼普及组题没什么好说的了

第二天第一题你会扩欧就秒了

两天第二题:

第一天第二题这道贪心 知道方法就很简单了。。

我记得我去年第一次看这题觉得是完全不可做的

我们考虑一下临位交换法,分析一下就可以得出结论

第二天第二题

像我这种已经半年没用过二分答案的人当然想到的是线段树。。

两天第三题:

都是比较经典的题目

第一天第三题比较简单

首先我们肯定是能把每个点的后继(分a,b)给搞出来的

因为实在不行就上set啊。。。

然后显然就是倍增,当然有些细节要处理

nlogn

第二天第三题

这题难就难在根不能被选

不然树形dp o(n)就解决了

首先想了很久才想到二分答案

我刚开始一直在想怎么考虑调度 但是没有任何方法。。

不二分答案应该真的不太可做。。

然后就简单了,每个点倍增往上跳

然后dfs一遍子树判断可行性

如果有多点在根(子树的根)

我们按照深度排个序,把除了最后一个取出来

然后再把不满足的子树取出来

做个two-point-two就可以了

复杂度Nlog^2

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/155354.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • VAP简单解读_vip是什么意思

    VAP简单解读_vip是什么意思https://cloud.tencent.com/developer/article/1693852特点:1.先前市面已有开源方案,并非先例2.kotlin语言3.代码量较小,很快就能理解大致逻辑4.需要使用ffmpeg工具进行动画视频的二次处理基本原理:输入mp4文件->MediaExtractor->音频->AudioTrack->视频->Surface…

    2022年10月23日
  • SHFileOperation函数使用的介绍

    SHFileOperation函数使用的介绍今天看到一个关于SHFileOperation函数使用的介绍,发现下面一些有用的资料,都是些之前未仔细了解的方面,这里把他们记录下来,留待以后查阅参考。fFlags成员标志间的关系标志抑制的对话框相关性与优先级FOF_MULTIDESTFILES无无FOF_FILESONLY

  • 1到n阶乘算法的改进「建议收藏」

    1到n阶乘算法的改进「建议收藏」1到n阶乘算法的改进之前用到过好几次了,但总是很长时间不用就会忘了,所以这次直接把它扔进来了。之前总是喜欢用双层循环,其实一个单层循环足以,下面将用Python和C++两种语言进行展示C++:#include<iostream>usingnamespacestd;intmain(){ intsum=0,tmp; for(inti=1;i<=10;i++) { tmp=1; for(intj=1;j<=i;j++) tmp*=j; sum

  • C语言实现大数运算[通俗易懂]

    C语言实现大数运算[通俗易懂]由于整型数的位数有限,因此整型数不能满足大整数(超长整数)的运算要求。大整数计算是利用字符串来表示大整数,即用字符串的一位字符表示大整数的一位数值,然后根据四则运算规则实现大整数的四则运算。大数的结构typedefstructbigint{char*num;//指向长整数数组(序号0中保存着最高位)charsign;

  • pytest指定用例_pytest执行多个py文件

    pytest指定用例_pytest执行多个py文件前言测试用例在设计的时候,我们一般要求不要有先后顺序,用例是可以打乱了执行的,这样才能达到测试的效果.有些同学在写用例的时候,用例写了先后顺序,有先后顺序后,后面还会有新的问题(如:上个用例返回

  • c++查找文件的方法[通俗易懂]

    c++查找文件的方法[通俗易懂]CFileFindfinder;  BOOLbWorking=finder.FindFile(szBuf);unsignedshort slogtype=0;   while(bWorking) {    bWorking=finder.FindNextFile();    CStringstrfilename=fin

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号