1568是3165的弱化版,发的代码是3165的
这道题完全没想出来,是看wyl大神的题解http://hi.baidu.com/wyl8899/item/2deafd3a376ef2d46d15e998
对我完全是一个思维上的突破,之前线段树打的标记基本都是代表整个区间的性质
而这道题区间上的标记只是部分优的线段,通过从叶子一步一步的走到根,得出这个点的最大值

 const n=;
p=;
type node=record
k,b:double;
end; var tree:array[..*n] of longint;
a:array[..] of node;
ans,x0,x1,y0,y1,t,m,ch:longint; procedure swap(var a,b:longint);
var c:longint;
begin
c:=a;
a:=b;
b:=c;
end; function cal(i,x:longint):double;
begin
exit(a[i].k*x+a[i].b);
end; procedure ins(i,l,r,k:longint);
var m:longint;
p:double;
begin
if tree[i]= then
begin
tree[i]:=k;
exit;
end;
if cal(k,l)>cal(tree[i],l) then swap(tree[i],k);
if (l=r) or (a[tree[i]].k=a[k].k) then exit;
p:=(a[tree[i]].b-a[k].b)/(a[k].k-a[tree[i]].k);
if (p<l) or (p>r) then exit;
m:=(l+r) shr ;
if (p<=m) then
begin
ins(i*,l,m,tree[i]);
tree[i]:=k;
end
else ins(i*+,m+,r,k);
end; procedure work(i,l,r:longint);
var m:longint;
begin
if (x0<=l) and (x1>=r) then
ins(i,l,r,t)
else begin
m:=(l+r) shr ;
if x0<=m then work(i*,l,m);
if m<x1 then work(i*+,m+,r);
end;
end; function ask(i,l,r:longint):longint;
var m,p:longint;
begin
if l=r then exit(tree[i])
else begin
m:=(l+r) shr ;
if x0<=m then p:=ask(i*,l,m)
else p:=ask(i*+,m+,r);
if cal(p,x0)>cal(tree[i],x0) then exit(p) else exit(tree[i]);
end;
end; begin
readln(m);
while m> do
begin
dec(m);
read(ch);
if ch= then
begin
readln(x0,y0,x1,y1);
x0:=(x0+ans-) mod n+;
x1:=(x1+ans-) mod n+;
y0:=(y0+ans-) mod p+;
y1:=(y1+ans-) mod p+;
if x0>x1 then
begin
swap(x0,x1);
swap(y0,y1);
end;
inc(t);
if x0<>x1 then
begin
a[t].k:=(y1-y0)/(x1-x0);
a[t].b:=y1-a[t].k*x1;
end
else begin
if y1>y0 then a[t].b:=y1 else a[t].b:=y0;
end;
work(,,n);
end
else begin
readln(x0);
x0:=(x0+ans-) mod n+;
ans:=ask(,,n);
writeln(ans);
end;
end;
end.

bzoj3165 1568的更多相关文章

  1. POJ 1568 Find the Winning Move(极大极小搜索)

    题目链接:http://poj.org/problem?id=1568 题意:给出一个4*4的棋盘,x和o两人轮流放.先放够连续四个的赢.给定一个局面,下一个轮到x放.问x是否有必胜策略?若有,输出能 ...

  2. HDU 1568 Fibonacci 数学= = 开篇

    题目链接 http://acm.hdu.edu.cn/showproblem.php?pid=1568 分析:一道数学题 找出斐波那契数列的通项公式,再利用对数的性质就可得到前几位的数 斐波那契通项公 ...

  3. 数据结构(线段树):BZOJ 1568 [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 602  Solved: 214[Submit ...

  4. 【BZOJ3165】[HEOI2013]Segment(李超线段树)

    [BZOJ3165][HEOI2013]Segment(李超线段树) 题面 BZOJ 洛谷 题解 似乎还是模板题QwQ #include<iostream> #include<cst ...

  5. hdu 1568 (log取对数 / Fib数通项公式)

    hdu 1568 (log取对数 / Fib数通项公式) 2007年到来了.经过2006年一年的修炼,数学神童zouyu终于把0到100000000的Fibonacci数列 (f[0]=0,f[1]= ...

  6. [BZOJ 1568][JSOI2008]Blue Mary开公司

    [BZOJ 1568][JSOI2008]Blue Mary开公司 题意 \(n\) 次操作, 维护一个一次函数集合 \(S\). 有两种操作: 给定 \(b\) 和 \(k\), 向 \(S\) 中 ...

  7. 1568: [JSOI2008]Blue Mary开公司

    1568: [JSOI2008]Blue Mary开公司 题目描述 传送门 题目分析 简单分析可以发现就是不停给出了\(n\)条直线,要求每次给出一条直线后求出所有直线在横坐标为\(x\)时\(y\) ...

  8. 1568: [JSOI2008]Blue Mary开公司(超哥线段树)

    1568: [JSOI2008]Blue Mary开公司 Time Limit: 15 Sec  Memory Limit: 162 MBSubmit: 1198  Solved: 418 Descr ...

  9. NOJ——1568走走走走走啊走(超级入门DP)

    [1568] 走走走走走啊走 时间限制: 1000 ms 内存限制: 65535 K 问题描述 菜菜赚了钱回来,想起要买很多桶回来,不同地方的桶质量是不同的,他在(1,1)点出发因为飞机票有点贵所以他 ...

随机推荐

  1. (转)解读Flash矩阵

    转自: http://hi.baidu.com/cabtw/item/d2dbd212d4ae3e9398ce337f 图片看不到请去原网站看 Matrix: scale(a,d); 比例变换就是将平 ...

  2. JQuery(一) 入门

    JQuery是一个JS库,可以跨浏览器运行,若开发者面对jQuery编程,则可以在不同的浏览器自由切换. jQuery不再像JS一样面向DOM,而是面向jQuery对象. jQuery提供$()函数, ...

  3. A-Frame 简介03

    如果你想开始使用A-Frame可以通过以下几种方式: Play with CodePen Grab the Boilerplate Include the JS Build Install from ...

  4. RS232与RS485时序分析

    转载于:RS232,RS485波形分析 经常遇到初学者,对单片机串行通讯出了问题不知道如何办的情况.其实最有效的调试方法是用示波器观察收发数据的波形.通过观察波形可以确定以下情况: 是否有数据接收或发 ...

  5. 【java】Servlet 工程 web.xml 中的 servlet 和 servlet-mapping 标签

    摘录某个工程的 web.xml 文件片段: 访问顺序为1—>2—>3—>4,其中2和3的值必须相同. url-pattern 标签中的值是要在浏览器地址栏中输入的 url,可以自己命 ...

  6. pair work-Elevator Schedule

    编程人员:周敏轩 192 周萱 149 1 有关结对编程的思考 结对编程技术是指两位程序员肩并肩地坐在同一台电脑前合作完成同一个设计.同一个算法.同一段代码或同一组测试.通过这次的结对编程练习我结识了 ...

  7. 求解 s = (1*1)!+(2*2)! + (3*3)!+...+(n*n)! (C语言)

    提示:定义函数可以求阶乘,再定义函数求阶乘之和.1和0的阶乘是1,n(n > 1)的阶乘是n * (n-1) * (n - 2) * … * 1 //采用了函数嵌套调用和函数递归调用 //求解阶 ...

  8. CSS3制作时钟

    这个效果是一个CSS3制作的时钟,不过并不是我们传统的时钟风格,分别用三块显示 时.分.秒三个部分,而且这个DEMO中藤藤还为其加上了一个js的效果,能让这个效 果和现实时钟的时间同步.这个效果运用到 ...

  9. python join字符连接函数的使用方法

    就是把一个list中所有的串按照你定义的分隔符连接起来,比如: >>> import string >>> >>> >>> li ...

  10. BZOJ 3969 Low Power 解题报告

    我们首先将所有电池排序,那么我们可以找到一组最优方案,使得一台机器的能量之差是相邻两电池的能量之差. 然后我们就二分这个答案,从前往后贪心地选这个数对,然后看是否所有的数对都是满足条件的. 假设这个数 ...