随笔分类 - POJ
摘要:题意很简单、、给定一个串求最长回文子串、、然后就是一个裸的好似叫manachure算法的东西、、用O(n)的复杂度求最长回文子串、、Code:var s:ansistring; a:array [0..2000100] of char; p:array [0..2000100] of longint; cur,en,ans,len,vv,n,i,id:longint;function min(a,b:longint):longint; begin if a<b then exit(a) else exit(b); end;begin readln(s); while s<...
阅读全文
摘要:POJ 1269Intersecting Lines题意很简单、判断两条直线是重合平行还是相交、如果相交输出交点、Code:#include <iostream>#include <cstdio>#include <algorithm>#include <cmath>#define EPS 1e-9#define INF 1e10using namespace std;int vv;double x1,x2,x3,x4,yy1,y2,y3,y4;bool eq(double x1,double x2){ return abs(x1-x2)<
阅读全文
摘要:POJ 2318 TOYS题意是在一个大矩形里有n条分割线把矩形分割成n+1部分、再给出一些玩具的坐标、要求统计每个部分内有多少个玩具、具体做法就是二分求解出当前玩具右方的第一条线、这可以用叉积判断、Code:var res:array [0..5002] of longint; p:array [0..5002] of record x1,x2,y1,y2:double;end; xx,yy,ldx,ldy,rux,ruy:double; n,m,i,l,r,mid:longint;function crossp(x1,y1,x2,y2:double):double; begin ...
阅读全文
摘要:(标题里写个关键词骗点击)这俩题实际上是一个东西,就叫最大01子矩阵(瞎叫的)。大致是这样的模型:有一个由0和1组成的矩阵,然后要求最大的一个矩阵使得其中只包含0(1同理)。那么这个怎么做呢?当然是可以做的(废话),结合求最大正方形的方法,我们可以这样乱搞:首先预处理出所有点可以向上扩展的最长距离和向左扩展的最长距离——这个是N*M的。然后对每个点,从这个点出发向左扩展,记录一个到当前位置纵向的最小高度,每次更新答案,直至不能扩展为止——这步是N*M*K(K为向左扩展距离)的,也就是3方的、显然不管是TYVJ还是POJ,这个算法都是过不了的。经大犇指点,我了解到这个是可以用一个叫单调栈的东西优
阅读全文
摘要:数论题,本人数学不好,怕讲不清楚。。发一个貌似官方的题解。Code:#include <cstdio>#include <iostream>using namespace std;int main(){ long long n,p,a,ans; while (cin >>n){ ans=n; for (long long i=2;i*i<=n;i++){ if (n%i==0) { p=i;a=0; while (n%p==0){ a++;n/=p; ...
阅读全文

浙公网安备 33010602011771号