摘要:
题意:定义在某颗星星左下方的星星的个数表示该星星的水平,求出水平分别为为0...n-1的星星个数。 首先题目是按照y坐标升序输入的,设第第1,2...n个星星的横坐标依次为x1,x2,...xn.显然星星i的level等于(x1,x3,...xi-1)中比xi小的数的个数,将它记做Li,普通求法扫描 阅读全文
摘要:
本题主要是确定给定的点在那块区域。原题给出n条直线,将长方形分为n+1快区域。我们可以对每个给定的点来判断它在那块区域,判段方法可以根据点与直线的位置关系,具体如下,对于点(x0,y0)和直线ax+by+c=0(a>0): 1)若a*x0+b*y0+c=0,则点在直线上。 2)若a*x0+b*y0+ 阅读全文
摘要:
该问题是我遇到的第一个钟表问题。一开始以为指针是离散的,一格格的走,结果发现精度不够。看了kuangbin大神博客后才知道,原来是要连续处理,解不等式。首先必须清楚以下基本常识:钟上一小格代表6度。时,分,秒的速度比为1:12:720。为了做连续处理,我们只需要枚举每一分钟中符合条件的区间,然后将每 阅读全文
摘要:
矩阵快速幂计算和整数快速幂计算相同。在计算A^7时,7的二进制为111,从而A^7=A^(1+2+4)=A*A^2*A^4.而A^2可以由A*A得到,A^4可以由A^2*A^2得到。计算两个n阶方阵的乘积复杂度为O(n^3)。k的二进制大约有logk位,总的复杂度为O(n^3*logk). 阅读全文
摘要:
%%逻辑函数 %%all:判断是否有元素非0,A是多维矩阵,all(A)是以列为单位来处理的,当前列的逻辑 %值为1,当且仅当当前列的每一个元素都非0 A=[1,2,3;0,2,1;5,0,2]; %all(A)=0 0 1 %例判断B=[2,2,6;7,9,1];的所有元素是否都大于等于1 B=[2,2,6;7,9,1]; ans=all(all(B>=1)); %ans=1,B>=1得到的是... 阅读全文
摘要:
pair是一个模板数据类型,其中包含两个数据值,两个数据值可以不同 如 pair<int,string>a(2,"fgh");则a是一个pair类型,它包括两个数据,第一个数据是int型2,第二个数据是string型"fgh"。 由于pair类型的使用比较繁琐,因为如果要定义多个形同的pair类型的 阅读全文
摘要:
1.冒号":" 基本使用如下: X=1:10;表示生成向量[1,2,3,4,5,6,7,8,9,10] X=J:i:k ;表示向量[j,j+i,j+2i,...,k]; A(:,j); 表示取矩阵A的第j列 A(i,:); 表示取矩阵A的第i行 A(j:k); 等价于A(j),A(j+1),...A 阅读全文
摘要:
1.矩阵的加减运算X+Y或者X-Y:元素对应相加减。在此要求X与Y必须是同维矩阵,否则会出现错误信息。如果Y为一个数,则表示X中每一元素+Y或者-Y: 2.X*Y是表示两个矩阵的乘积:其中矩阵X与Y需要满足矩阵相乘的条件,如果Y是一个数,那么相当于X中每一元素乘以Y: 3.矩阵的数乘运算 X.*Y运 阅读全文
摘要:
位操作一共有6种形式:<<,>>,&,|,^,~; 1.左移操作符<<:左移操作符将整数的二进制向左移若干位,将最高若干位挤掉,并在低位补0 如: 实际上:a<<1,a右移1位表示a*2,a<<m表示a*2^m 2.右移操作符>>:右移操作符将整数的二进制向右移若干位,将最低若干位挤掉,并在高位补0 阅读全文
摘要:
典型的状态压缩DP问题。第i行的取法只受到第i-1行的影响。首先每一行的取法要相容(不能有两个相邻),然后相邻行之间也要相容。将每一个格子看做两种状态,1表示取,0表示不取。这样每一行就是一个01串,恰好可以看做是一个二进制数,那么该二进制数对应的十进制整数可以唯一的表示为当前第 i 行的状态。定义 阅读全文