博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj1436
阅读量:4975 次
发布时间:2019-06-12

本文共 1918 字,大约阅读时间需要 6 分钟。

1 /*  2 题意:给你n条垂直线段,问有多少组三个线段,两两可见,  3 可见定义为对于两条线段有一条水平线段连接,不经过任意其他线段;  4   5 线段树建图,然后爆力判有几组(不知道效率如何);  6 从左到右扫描,先判断该区间内有可以连接哪几条线段,建图;  7 然后再插入;  8   9 问题:对于[1,4],[1,2],[3,4],[1,4] 10 如果直接1-2,3-4覆盖,当用1-4query的时候, 11 会发现不存在(2,3)区域的标记, 12 解决方法,每个点之间都插入一个点,用偶数表示原先的点, 13 用奇数表示点之间的区域,0,1,2,3,4    14                     0   1   2 15                          16 */ 17 #include
18 #include
19 #include
20 #include
21 #include
22 #include
23 #include
24 #define lson l,m,rt<<1 25 #define rson m+1,r,rt<<1|1 26 using namespace std; 27 const int N=8000+10; 28 struct Edge{ 29 int l,r,idx; 30 Edge(){} 31 Edge(int a,int b,int c):l(a),r(b),idx(c){} 32 void output(){ 33 cout<
<<" "<
<<" "<
<
g[N]; 37 vector
mz[N]; 38 bool vis[N][N]; 39 int n; 40 int col[N<<3];//要扩大 41 void pushdown(int rt){ 42 if (col[rt]!=-1){ 43 col[rt<<1]=col[rt<<1|1]=col[rt]; 44 col[rt]=-1; 45 } 46 } 47 void pushup(int rt){ 48 if (col[rt<<1]!=col[rt<<1|1]){ 49 col[rt]=-1; 50 }else col[rt]=col[rt<<1]; 51 } 52 void update(int L,int R,int v,int l,int r,int rt){ 53 if (L<=l && r<=R){ 54 col[rt]=v; 55 return; 56 } 57 pushdown(rt); 58 int m=(l+r)>>1; 59 if (L<=m) update(L,R,v,lson); 60 if (m< R) update(L,R,v,rson); 61 pushup(rt); 62 63 } 64 void query(int L,int R,int v,int l,int r,int rt){ 65 66 if (L<=l && r<=R && col[rt]!=-1){ 67 if (col[rt]==0) return ; 68 if (vis[v][col[rt]]==0){ 69 mz[v].push_back(col[rt]); 70 mz[col[rt]].push_back(v); 71 vis[v][col[rt]]=1; 72 vis[col[rt]][v]=1; 73 } 74 return ; 75 } 76 if (l==r) return; 77 pushdown(rt); 78 int m=(l+r)>>1; 79 if (L<=m) query(L,R,v,lson); 80 if (m< R) query(L,R,v,rson); 81 } 82 void work(){ 83 memset(col,0,sizeof(col)); 84 for (int i=0;i<=n;i++) for (int j=0;j<=n;j++) vis[i][j]=0; 85 for (int i=0;i

 

转载于:https://www.cnblogs.com/Rlemon/archive/2013/05/15/3080669.html

你可能感兴趣的文章
常用图像数据集:标注、检索
查看>>
python基础补漏-02-collection
查看>>
场景设计(二)-----组合场景设计
查看>>
找到的一些SQLite3的int和二进制数据的插入、读取操作。
查看>>
PHP 程序员的技术成长规划(转载)
查看>>
springboot使用jdbcTemplate连接数据库
查看>>
iOS中XMPP简单聊天实现 好友和聊天
查看>>
面试时如何优雅的谈论OC
查看>>
sublime安装插件
查看>>
C++ 函数的扩展①
查看>>
Linux查看实时带宽流量情况
查看>>
2018-2019-2 网络对抗技术 20165231 Exp 8 Web基础
查看>>
Docker基础教程
查看>>
c 函数调用产生的汇编指令和数据在内存情况(1)
查看>>
第九章:聚类分析的典型应用和技术小窍门
查看>>
CSS页面遮罩
查看>>
【CSS3】transition过渡和animation动画
查看>>
Oil Deposits
查看>>
vmware linux 固定IP配置
查看>>
python 普通方法,@classmethod,@staticmethod
查看>>