您的位置:首页 > 其它

[NOIP模拟题][模拟][DP][乱搞]

2016-11-02 19:12 232 查看
T1

给定文本串A,模板串B,在A中从小到大找到B的每一个字符,输出最大字典序答案

刚看到这道题就想是不是KMP,然而这并不可以,然后我就一脸懵逼。敲完第二题回来才发现这是道傻逼题,倒叙扫描即可

T2

给定n*m 01串,奇数行0只能上下通过,且无价值,偶数行0的价值为连着一整块0的数量,求从第一行到最后一行最大价值

一眼DP无疑,f[i][j]表示i行j列最大价值,从上往下推即可。只是这里要加点优化,把偶数行连着的0预处理成一块,DP时将这一块整体DP

T3

给出N*M点阵,任意两点可以连成一条线段,询问长为W的线段数量

好神的一道题,一开始看20分可以暴力,但我怕出现精度误差,就不敢码,事后才发现完全可以不开根啊,直接算平方就行了。

下面是正解。首先横着和竖着的边是很好解决的,关键是怎么解决斜边。我们先从复杂度开始分析,10^3个询问,那么大概找斜边就是一个根号的复杂度

首先我们假设直角边a,b,b=sqrt(c2−a2)=sqrt(c+a)(c-a),令d=gcd(c+a,c-a),再令A=(c-a)/d,B=(c+a)/d,那么A与B互质,由上式可知A*B是完全平方数,又因为互素,所以A与B均为完全平方数,令x*x=A,y*y=B,代入相加,x2+y2=2*c/d,d的范围为1-sqrt(2c),所以只需先枚举d,再每句x,即可算出解了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: