当前位置: 首页 > 编程日记 > 正文

bzoj1178

题目:http://www.lydsy.com/JudgeOnline/problem.php?id=1178

看ppt
http://wenku.baidu.com/link?url=dJv6LNme7syiLGM-TzbEEKXwx36JWEnI5HFrIlzfmzUXXg4HG8FDggj5WQS3EKL3k3p-sUYeJ268jCvN4t_kq2YPo3I4GXvaGulQjXrO3d7
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<fstream>
#include<algorithm>
#include<cstring>
#include<string>
#include<cmath>
#include<queue>
#include<stack>
#include<map>
#include<utility>
#include<set>
#include<bitset>
#include<vector>
#include<functional>
#include<deque>
#include<cctype>
#include<climits>
#include<complex>
//#include<bits/stdc++.h>适用于CF,UOJ,但不适用于pojusing namespace std;typedef long long LL;
typedef double DB;
typedef pair<int,int> PII;
typedef complex<DB> CP;#define mmst(a,v) memset(a,v,sizeof(a))
#define mmcy(a,b) memcpy(a,b,sizeof(a))
#define re(i,a,b)  for(i=a;i<=b;i++)
#define red(i,a,b) for(i=a;i>=b;i--)
#define fi first
#define se second
#define m_p(a,b) make_pair(a,b)
#define SF scanf
#define PF printf
#define two(k) (1<<(k))template<class T>inline T sqr(T x){return x*x;}
template<class T>inline void upmin(T &t,T tmp){if(t>tmp)t=tmp;}
template<class T>inline void upmax(T &t,T tmp){if(t<tmp)t=tmp;}const DB EPS=1e-9;
inline int sgn(DB x){if(abs(x)<EPS)return 0;return(x>0)?1:-1;}
const DB Pi=acos(-1.0);inline int gint(){int res=0;bool neg=0;char z;for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());if(z==EOF)return 0;if(z=='-'){neg=1;z=getchar();}for(;z!=EOF && isdigit(z);res=res*10+z-'0',z=getchar());return (neg)?-res:res; }
inline LL gll(){LL res=0;bool neg=0;char z;for(z=getchar();z!=EOF && z!='-' && !isdigit(z);z=getchar());if(z==EOF)return 0;if(z=='-'){neg=1;z=getchar();}for(;z!=EOF && isdigit(z);res=res*10+z-'0',z=getchar());return (neg)?-res:res; }const int maxN=200000;
const int maxcnt=2*maxN;
const int INF=2147483647;int N;
struct Ta{int l,r,id;inline friend bool operator < (Ta x,Ta y){return x.l<y.l;}inline Ta(int _l=0,int _r=0,int _id=0){l=_l;r=_r;id=_id;}}a[maxN+100],temp[maxN+100];int flag[maxN+100];
int ans;
PII fin[maxN+100];int tol;int cnt,bak[maxcnt+100];inline bool cmpr(Ta x,Ta y){return x.r<y.r;}int tree[maxcnt+100];int next[maxN+100];
int jump[maxN+100][31];#define lowbit(a) (a&(-a))
inline int ask(int p){p=cnt-p+1;int res=INF;for(;p>=1;p-=lowbit(p))upmin(res,tree[p]);return res;}
inline void update(int p,int v){p=cnt-p+1;for(;p<=cnt;p+=lowbit(p))upmin(tree[p],v);}PII tr[4*maxcnt+1000];
inline void down(int root,int l,int r,int mid){if(tr[root]!=PII(0,0)){tr[root*2]=tr[root*2+1]=tr[root];tr[root]=PII(0,0);}}
inline void askf(int root,int l,int r,int p,int &x,int &y){if(l>r || p<l || r<p) return;if(p<=l && r<=p) {x=tr[root].fi;y=tr[root].se;return;}int mid=(l+r)/2;down(root,l,r,mid);if(p<=mid) askf(root*2,l,mid,p,x,y); else askf(root*2+1,mid+1,r,p,x,y);}
inline void updatef(int root,int l,int r,int x,int y,PII val){if(l>r || x>y || r<x || y<l)return;if(x<=l && r<=y){tr[root]=val;return;}int mid=(l+r)/2;down(root,l,r,mid);updatef(root*2,l,mid,x,y,val);updatef(root*2+1,mid+1,r,x,y,val);}inline int solve(int x,int y){if(x>y)return 0;int res=0,i,p=lower_bound(a+1,a+N+1,Ta(x,0,0))-a;if(p>N)return 0;red(i,30,0)if(jump[p][i]!=0 && a[jump[p][i]].r<=y){res+=two(i);p=jump[p][i];}if(a[p].r<=y)res++;return res;}
inline int check(int x,int y,int l,int r){int t1=solve(x,y);int t2=solve(x,l-1);int t3=solve(r+1,y);return solve(x,y)==solve(x,l-1)+1+solve(r+1,y);}int main(){freopen("bzoj1178.in","r",stdin);freopen("bzoj1178.out","w",stdout);int i,j;N=gint();re(i,1,N)a[i].l=gint(),a[i].r=gint(),a[i].id=i;re(i,1,N)bak[++cnt]=a[i].l,bak[++cnt]=a[i].r;sort(bak+1,bak+cnt+1);cnt=unique(bak+1,bak+cnt+1)-bak-1;re(i,1,N)a[i].l=lower_bound(bak+1,bak+cnt+1,a[i].l)-bak,a[i].r=lower_bound(bak+1,bak+cnt+1,a[i].r)-bak;re(i,1,N)fin[a[i].id]=PII(a[i].l,a[i].r);tol=N;sort(a+1,a+N+1,cmpr);int t=0;re(i,1,N){if(a[i].l<=t)flag[i]=1;upmax(t,a[i].l);}int ge=0;re(i,1,N)if(!flag[i])temp[++ge]=a[i];N=ge;re(i,1,N)a[i]=temp[i];t=0;re(i,1,N)if(t<a[i].l){ans++;t=a[i].r;}cout<<ans<<endl;re(i,1,cnt)tree[i]=INF;red(i,N,1){next[i]=ask(a[i].r+1);if(next[i]==INF) next[i]=0;update(a[i].l,i);}red(i,N,1){jump[i][0]=next[i];re(j,1,30)jump[i][j]=jump[jump[i][j-1]][j-1];}re(i,1,4*maxcnt+1000-1)tr[i]=PII(1,cnt);re(i,1,tol){int l=fin[i].fi,r=fin[i].se,x,y;askf(1,1,cnt,l,x,y);if(x==-1 && y==-1)continue;if(!(x<=l && r<=y))continue;if(check(x,y,l,r)){printf("%d ",i);ans--;if(ans==0)break;updatef(1,1,cnt,l,r,PII(-1,-1));updatef(1,1,cnt,x,l-1,PII(x,l-1));updatef(1,1,cnt,r+1,y,PII(r+1,y));}}printf("\n");return 0;}
View Code

转载于:https://www.cnblogs.com/maijing/p/4649506.html

相关文章:

编程能力差,学不好Python、AI、Java等技术,90%是输在了这点上!

据了解&#xff0c;超90%的人在学习Python、Java、AI等技术时&#xff0c;都是在网上随便找个入门的教程就开始学起来。然而多数人在看了不少教程后&#xff0c;还是很难独立完成项目&#xff0c;甚至反思自己为什么学了这么久编程能力还是这么差&#xff01;因为你在刚刚开始学…

cglib代理的使用

一、什么是CGLIB? 总的来说&#xff0c;无论是cglib、jdk动态代理又或者是aop面向切面编程&#xff0c;都运用到了一个最重要的设计模式--代理模式&#xff01;万变不离其终&#xff0c;学好代理模式&#xff0c;打遍天下无敌手&#xff01; cglib就是一个字节码生成和转换的库…

使用PHP+Sphinx建立高效的站内搜索引擎

1. 为什么要使用Sphinx假设你现在运营着一个论坛&#xff0c;论坛数据已经超过100W&#xff0c;很多用户都反映论坛搜索的速度非常慢&#xff0c;那么这时你就可以考虑使用Sphinx了&#xff08;当然其他的全文检索程序或方法也行&#xff09;。2. Sphinx是什么Sphinx由俄…

9个必知的 Python 操作文件/文件夹方法

作者 | 欣一来源 | Python爱好者集中营近几年随着Python的热度不断上涨&#xff0c;人们渐渐使用这门编程语言来进行一些自动化操作&#xff0c;以节省重复劳动带来的效率低下&#xff0c;那么必定会涉及到对文件系统的操作&#xff0c;包括文件的增、删、改、查等等&#xff0…

Get/POST方法提交的长度限制

&#xfeff;&#xfeff;1. Get方法长度限制 Http Get方法提交的数据大小长度并没有限制&#xff0c;HTTP协议规范没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。 如&#xff1a;IE对URL长度的限制是2083字节(2K35)。 下面就是对各种浏览器和服务器的…

Bitmap上下合成图片

合成两张图片&#xff0c;上下叠加的效果&#xff1a; /*** 把两个位图覆盖合成为一个位图&#xff0c;以底层位图的长宽为基准** param backBitmap 在底部的位图* param frontBitmap 盖在上面的位图* return*/public static Bitmap mergeBitmap(Bitmap backBitmap, Bitmap fr…

PHP 符号大全

注解符号: // 单行注解 /* */ 多行注解引号的使用’ ’ 单引号,没有任何意义,不经任何处理直接拿过来;" "双引号,php动态处理然后输出,一般用于变量.变量形态: 一种是True 即 真的;另一种是False 即假的常见变量形态: string 字串(数字\汉…

添加Net4CollectionTypeFactory的原因

.NET4.0已经实现了该功能 http://jahav.com/blog/nhibernate-using-net-4-iset/ NHibernate using .NET 4 ISet 0 CommentsNHibernate 4.0 (released in 2014-08-17) has brought us support for .NET 4 ISet<> collections, thus freeing us from the tyranny of the Ie…

LTSM 实现多元素时序数据植物健康预测

作者 | 李秋键 出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 引言&#xff1a; 近些年来&#xff0c;“预测”一词在各个领域被频繁提及&#xff0c;所谓预测&#xff0c;实际上就是根据历史规律&#xff0c;推测未来结果。在科学技术发展有限的过去&#xff0…

如何扩大以太坊的规模:分片简介(How to Scale Ethereum: Sharding Explained)

2019独角兽企业重金招聘Python工程师标准>>> 分片是提高区块链效率的一个主要流派。下面简单通俗的解释一下分片算法。 以太猫(Cryptokitties)堵塞了以太坊网络好几天&#xff0c;以太坊--世界上最大的&#xff0c;公开的区块链目前是无法扩容的&#xff0c;也众所周…

Xdebug的安装-(无错可执行版)

xdebug是一个开源的php调试器&#xff0c;以php模块的形式加载并被使用。可以用来跟踪&#xff0c;调试和分析PHP程序的运行状况. 这里以PHP5.2.13为例, 1.下载php_xdebug-2.1.0-5.2.dll文件, http://www.xdebug.org/download.php 选择&#xff1a;PHP 5.2 VC6 TS (32 bit) 选择…

云游戏、VR、AI,云计算给元宇宙提供了哪些想象力?

2021 最火的新概念&#xff0c;莫过于元宇宙。2021 年 10 月 29 日&#xff0c;Facebook 宣布改名 Meta&#xff1b;2021 年 11 月 1 日&#xff0c;“元宇宙第一股” Roblox 经过短暂调整&#xff0c;宣布重新上线。接下来关于元宇宙的线下 / 线上讨论如火如荼&#xff0c;…

sys.check_constraints

每个用作 CHECK 约束&#xff08;sys.objects.type C&#xff09;的对象都在表中占一行。 SELECT name FROM sys.check_constraints-- equal to SELECT o.name FROM sys.sysobjects oJOIN sys.sysconstraints s ON o.parent_obj s.id WHERE o.xtype C GROUP BY o.…

什么是Bootstrap Aggregating

简介 Bootstrap Aggregating也叫作bagging&#xff0c;是一种机器学习领域用来做模型合并的一种算法。这种算法可以提高统计分类器和回归器的稳定性和准确度。同时也可以帮助模型避免过拟合。历史Bootstrap Aggregating最早在1994年由Leo Breiman提出&#xff0c;当时用来通过随…

柯南君:看大数据时代下的IT架构(5)消息队列之RabbitMQ--案例(Work Queues起航)...

二、Work Queues&#xff08;using the Java Client) 走起 在第上一个教程中我们写程序从一个命名队列发送和接收消息。在这一次我们将创建一个工作队列,将用于分发耗时的任务在多个工作者&#xff08;worker&#xff09;之间。 背后的主要思想工作队列(又名:任务队列)是为了避…

图像分析用 OpenCV 与 Skimage,哪一个更好?

作者 | 小白来源 | 小白学视觉这两种算法在它们可以检测到的和不能检测到的方面都有其起伏。OpenCV 是用 C 在后端进行编程的&#xff0c;并作为一个机器学习包&#xff0c;来分析 Python 中的图像模式。Skimage 也称为 Scikit-Image &#xff0c;是一个机器学习软件包&#xf…

NetBeans配置Xdebug

这篇文章已经更新&#xff0c;看 Windows环境配置xdebug调试PHP Windows环境 或者 NetBeans配置Xdebug 远程调试PHP Linux环境nebeans配置xdebug可以方便我们逐步的查看程序的运行情况对我们调试程序是非常有利的下面我就来介绍下配置的过程。先要安装xdebug&#xff0c;可以参…

[译] Don’t call me, I’ll call you:使用 Redux-Saga 管理 React 应用中的异步 action (上)...

原文地址&#xff1a;Don’t call me, I’ll call you: Side effects management with Redux-Saga (Part 1)原文作者&#xff1a;David Dvora译文出自&#xff1a;掘金翻译计划本文永久链接&#xff1a;github.com/xitu/gold-m…译者&#xff1a;jonjia校对者&#xff1a;smile…

CentOS下安装NetBeans集成开发环境

下载NetBeans以netbeans-7.0beta2-ml-javaee-linux.sh为例#sh netbeans-7.0beta2-ml-javaee-linux.sh之后进入安装界面&#xff08;接下来和windows下几乎一样不在举例&#xff09; 前提是要安装了Java 主要不要在本地远程用SecureCRT输入命令啊&#xff0c;要在Linux下用终端输…

我的Android进阶之旅------Android嵌入图像InsetDrawable的用法

面试题&#xff1a;为一个充满整个屏幕的LinearLayout布局指定背景图&#xff0c;是否可以让背景图不充满屏幕&#xff1f;请用代码描述实现过程。 解决此题&#xff0c;可以使用嵌入(Inset)图像资源来指定图像&#xff0c;然后像使用普通图像资源一样使用嵌入图像资源。 语法如…

沉痛悼念游戏开发大神毛星云

惟愿所有的“爆料”都是造谣&#xff0c;惟愿我们能够一起去创造并让大家都能玩到蕴藏着中国上下五千年本土文化的优质游戏大作&#xff0c;惟愿我们能等到你的好消息......让人难过的是&#xff0c;据银柿财经报道&#xff0c;针对近日“网传腾讯天美员工离世”的消息&#xf…

April Fools Contest 2018

这个比赛不正经&#xff0c;但是我可以一本正经的写代码啊 A. Quirky Quantifierstime limit per test2 secondsmemory limit per test64 megabytesinputstandard inputoutputstandard outputInputThe input contains a single integer a (10 ≤ a ≤ 999). OutputOutput 0…

如何查找僵尸进程并Kill之,杀不掉的要查看父进程并杀之

用ps和grep命令寻找僵尸进程#ps -A -ostat,ppid,pid,cmd | grep -e ^[Zz]命令注解&#xff1a;-A 参数列出所有进程-o 自定义输出字段 我们设定显示字段为 stat&#xff08;状态&#xff09;, ppid&#xff08;进程父id&#xff09;, pid(进程id)&#xff0c;cmd&#xff08;命…

PHP计划任务:如何使用Linux的Crontab执行PHP脚本(转)

我们的PHP程序有时候需要定时执行&#xff0c;我们可以使用ignore_user_abort函数或是在页面放置js让用户帮我们实现。但这两种方法都不太可靠&#xff0c;不稳定。我们可以借助Linux的Crontab工具来稳定可靠地触发PHP执行任务。下面介绍Crontab的两种方法。一、在Crontab中使用…

OpenAI 开放 GPT-3 微调功能,让开发者笑开了花

出品 | AI科技大本营&#xff08;ID:rgznai100&#xff09; 近日&#xff0c;OpenAI宣布&#xff0c;允许用户创建自定义版的 GPT-3。 OpenAI 表示&#xff0c;开发人员可以使用微调来创建针对其应用程序和服务中的特定内容量身定制的 GPT-3 模型&#xff0c;从而在任务和工作…

PHP----------php封装的一些简单实用的方法汇总

1、xml转换成array&#xff0c;格式不对的xml则返回false function xml_parser($str){ $xml_parser xml_parser_create(); if(!xml_parse($xml_parser,$str,true)){ xml_parser_free($xml_parser); return false; } else { …

PHP函数--var_dump

var_dump(PHP 3 > 3.0.5, PHP 4, PHP 5)var_dump -- 打印变量的相关信息描述void var_dump ( mixed expression [, mixed expression [, ...]] )此函数显示关于一个或多个表达式的结构信息&#xff0c;包括表达式的类型与值。数组将递归展开值&#xff0c;通过缩进显示其结构…

Mozilla公布WebVR API标准草案

随着信息技术的迅速发展&#xff0c;虚拟现实&#xff08;Virtual Reality&#xff0c;VR&#xff09;技术在近些年不断完善&#xff0c;其应用范围也变得十分广泛。为了搭建逼真的虚拟场景&#xff0c;VR技术一般都需要用到大量精美的图像和复杂的动作。因此&#xff0c;大部分…

不到 100 行 Python 代码教你做出精美炫酷的可视化大屏

作者 |俊欣来源 |关于数据分析与可视化“碳达峰、碳中和”是2021年政府在不断强调与非常重视的事儿&#xff0c;那什么是“碳达峰”、什么又是“碳中和”呢&#xff1f;这里小编来为大家科普一下&#xff0c;所谓的“碳达峰”指的是在某一时间点&#xff0c;二氧化碳的排放不再…

JavaScript实现冒泡排序

说明 对数组进行 冒泡排序 算是比较简单的&#xff0c;冒泡排序也是容易理解的一种排序算法了&#xff0c;在面试的时候&#xff0c;很可能就会问到。 实现原理 数组中有 n 个数&#xff0c;比较每相邻两个数&#xff0c;如果前者大于后者&#xff0c;就把两个数交换位置&#…