inline

[NOI2014]购票

不羁岁月 提交于 2020-02-01 21:52:21
题目 读懂题目之后能写出一个dp方程, \(dp_i=dp_j+(d_i-d_j)p_i+q_i(d_i-d_j\leq lim_i)\) ,其中 \(d_i\) 是根路径前缀和 不难发现这个东西长得像斜率优化,需要建个凸壳来搞一搞;不难想到一个树剖+线段树维护的无脑做法,是 \(O(n\log^3n)\) 的,看起来和暴力差不多; 考虑有脑做法———— 有根树点分治 ,假设我们当前在处理一棵以 \(x\) 为根的有根树,流程大概长这个样子 找到重心 \(nw\) 将重心与其儿子断开,递归处理重心所在联通块(当然,根也在这个联通块中) 考虑 \(nw\) 到 \(x\) 路径上的点对 \(nw\) 子树内部点产生的影响 递归处理 \(nw\) 的子树 在这道题中,我们将重心子树中的点都搞出来,按照 \(lim_i -dis_i\) 从小到大排序, \(dis_i\) 是点 \(i\) 到根的距离;之后把重心到当前根上的点拿出来,按照距离排序;开个指针扫,把符合条件的点加入下凸壳即可,复查询的时候直接二分,复杂度是 \(O(n\log^2n)\) 代码 #include<bits/stdc++.h> #define re register #define LL long long #define max(a,b) ((a)>(b)?(a):(b)) #define min(a,b)

Binding the content of a Span

自闭症网瘾萝莉.ら 提交于 2020-02-01 00:41:09
问题 I have a window that displays text. There are two parts to the text: the first is fixed while the second needs to be the content of a DependencyProperty declared on the window. I considered using a TextBlock containing two Spans, the first of which contains the fixed content and the second of which contains the variable content, but I can't see anything obvious on the Span class that would allow me to bind to the aforementioned DependencyProperty. I'm currently using two Labels stacked side

P4468 [SCOI2007]折纸

谁说我不能喝 提交于 2020-01-31 10:51:28
题意 似乎边界上(折线上、正方形纸片边上)的点认为是 \(0\) 。 由于操作次数很少,因此逆着操作,求出所有可能的点,之后正向模拟一遍判断即可。 求一个点关于一个向量的对称点:用向量旋转求出方向向量即可。 code: #include<bits/stdc++.h> using namespace std; const int maxn=10; const double eps=1e-8; const double Pi=acos(-1.0); const double inf=1e9; int n,m; struct Point { double x,y; inline double len(){return sqrt(x*x+y*y);} Point operator+(const Point a)const{return (Point){x+a.x,y+a.y};} Point operator-(const Point a)const{return (Point){x-a.x,y-a.y};} Point operator*(const double k){return (Point){x*k,y*k};} Point operator/(const double k){return (Point){x/k,y/k};} double operator*(const

P4250 [SCOI2015]小凸想跑步

巧了我就是萌 提交于 2020-01-31 10:33:32
题意 这题显然是暴推式子。 考虑下图: \(S_{ABP}<S_{CDP}\iff \vec{AB}*\vec{AP}<\vec{CD}*\vec{CP}\) 暴力展开可得: \((x_b-x_a,y_b-y_a)\times(x_p-x_a,y_p-y_a)<(x_d-x_c,y_d-y_c)\times(x_p-x_c,y_p-y_c)\) \((x_b-x_a)*(y_p-y_a)-(y_b-y_a)*(x_p-x_a)<(x_d-x_c)*(y_p-y_c)-(y_d-y_c)*(x_p-x_c)\) 化简得: \(x_p(y_a-y_b+y_d-y_c)+y_p(x_b-x_a+x_c-x_d)+((x_ay_b-x_by_a)-(x_cy_d-x_dy_c))<0\) 这是条直线,我们用半平面交即可概率就是合法面积/总面积。 code: #include<bits/stdc++.h> using namespace std; const int maxn=1e5+10; const double eps=1e-10; const double inf=1e12; int n,m; double sum,ans; struct Point { double x,y; inline double len(){return sqrt(x*x+y*y);} Point

BZOJ 1941: [Sdoi2010]Hide and Seek

社会主义新天地 提交于 2020-01-30 21:17:24
板子题,只是感觉KD-Tree写起来很爽就先找了道题写写,发现现在的手速越来越慢了的说 真没什么好说的,暴枚选那个点做起点,然后求到一个点的最远最近点即可 注意一个细节:判断一个点到矩形的距离最小值是要考虑仔细,某一维是否有贡献要看这个点是否被包含在最大最小的区间内(刚开始naive了) #include<cstdio> #include<iostream> #include<algorithm> #define RI register int #define CI const int& using namespace std; const int N=100005,INF=2e9; int D; struct point { int d[2]; friend inline bool operator < (const point& A,const point& B) { return A.d[D]==B.d[D]?A.d[D^1]<B.d[D^1]:A.d[D]<B.d[D]; } }a[N],s; int n,ans=INF,mi,mx,rt; inline int dist(const point& A,const point& B) { return abs(A.d[0]-B.d[0])+abs(A.d[1]-B.d[1]); } class KD_Tree {

C++ inline函数用法详解

前提是你 提交于 2020-01-30 03:05:11
前言 常规函数调用时,程序跳到函数的起始地址,并在函数结束后返回。对于内联函数,程序程序无需跳到另一个位置处执行,再跳回来,因为编译器会将内联函数的代码替换为函数调用。因此,内联函数的运行速度比普通常规稍快些。 内联函数 C++中支持内联函数,其目的是为了提高函数的执行效率,用关键字 inline 放在函数定义的前面即可将函数指定为内联函数。下面我们来看看一个例子: # include <iostream> using namespace std ; inline int RevSign ( int nr ) ; bool even ( int nr ) ; bool odd ( int nr ) ; bool even ( int nr ) { if ( nr == 0 ) { return true ; } return odd ( RevSign ( nr ) - 1 ) ; } bool odd ( int nr ) { if ( nr == 0 ) { return false ; } return even ( RevSign ( nr ) - 1 ) ; } inline int RevSign ( int nr ) { if ( nr < 0 ) { return - nr ; } return nr ; } int main ( int argc , char

新手如何在gdb中存活

一世执手 提交于 2020-01-28 00:29:12
今天阅读博文 新手如何在gdb中存活 时,发现行距太小,阅读起来不舒服。 查看了一下html代码,发现是博文内容中的内联style(line-height: normal)覆盖了博客模板的css引起的。 开始想到的方法是通过javascript代码从inline style中移除line-height: normal。但这样效率太低了,每篇博文都要检查是否在inline style中包含了line-height: normal。 最理想的方法当然是通过css去覆盖inline style,根据这个思路在网上找到了一篇文章—— Override Inline Styles with CSS 。css果然可以做到,这才是我想要的最简单的解决方法: #cnblogs_post_body p span[style]{ line-height: 1.8 !important; } 知识真的可以让程序员工作得更轻松! 来源: https://www.cnblogs.com/dudu/p/css_override_inline_style.html

CSS的总结

情到浓时终转凉″ 提交于 2020-01-27 04:19:39
1.如果利用<img>标签把图片放进表格单元里面,并注意到在图片下方有不需要的空间,那么设置它的display属性为block. 2.text-align可以被继承,vertical-align属性不会被继承 3.html提供<colgroup>和<col>标签相应地表示列组合和独立的列。 表格中的每个列都包括一个<col>标签,可以用类或ID来识别它们。只有两组属性对这些标签起作用:width和background属性。 <colgroup> <col id="brand"/> <col id="price"/> <col id="power"/> </colgroup> 4.IE6.0兼容支持透明背景 * html .tit2 .ms{ zoom:1; filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, src="http://hszy00232.blog.163.com/blog/images/jia.png",sizingMethod="scale"); background:none;} 5.浏览器兼容处理半透明效果 dd{width:215px; height:20px;background:#000; filter:alpha(opacity=70); opacity:0.7

LCA的一些算法

人盡茶涼 提交于 2020-01-27 03:36:26
  LCA,就是求树上任意两点的最近公共祖先   (本题图片与代码均为Luogu3379)   方法我好像讲过一个,这次把主要的三个一起讲一讲   <1> 倍增(O(n log n))   我们先考虑最基本的LCA,记录每一个点的父节点和深度。   对于两个点x,y,先将它们调到同一高度(令dep[x]>dep[y],即把x向上移(dep[x]-dep[y])步即可,然后一起往上走就可以了。   这复杂度是O(nq)的,所以在此基础上优化。   用father[i][j]表示点j向上走2^i步时的点是多少(没有就是-1),然后每次上移只要走log n次即可。   预处理的话 father[i][j]]=father[i-1][father[i-1][j]];递推即可。   CODE #include<cstdio> #include<iostream> #include<cstring> using namespace std; const int N=500005,P=25; struct data { int to,next; }e[N*2+10]; int head[N*2+10],dep[N],father[P][N],i,j,n,m,x,y,root,k; inline void read(int &x) { x=0; char ch=getchar(); while

effectiv c++ 读书笔记

那年仲夏 提交于 2020-01-26 10:17:30
条款2: 尽量以const, enum, inline 替换#define # define port 8888 define可以定常量值,但是它没有作用域,并且它是直接被替换,如果是大型项目,报错显示的是8888而不是port,导致无法追踪该错误。这个问题也会出现在记号表调试中,define的常量没有进入记号表中。具体原因可以看 ELF文件解析 。 define不能被封装,而const可以被封装在类中。 # define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b)) 类似于上面定义的宏函数,必须要记住为宏中的所有实参加上小括号,否则有可能出现错误。define定义的宏函数的好处就是可以避免函数调用带来的额外开销。我们可以用inline替换 因为宏函数的参数没有类型,所有我们用模板实现。 template < typename T > inline void callwithmax ( const T & a , const T & b ) { f ( ( a ) > ( b ) ? ( a ) : ( b ) ) ; } 有了const、enum和inline,我们对预处理器(特别是#define)的需求降低,但并非完全消除。#include仍然是必需品,而#ifdef和#ifndef也继续扮演着控制编译的重要角色。 条款3: