自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Time is up , let's go .

愿我的生命有够多的云翳,来打造一个美丽的黄昏!

  • 博客(31)
  • 收藏
  • 关注

原创 Martian Strings (kmp应用)

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=26368给你一个模式串s,和m个匹配串,问给把匹配串写成 p[a,b]+p[c,d]=s, 即为是否可以把匹配串分成两个在模式串中出现,求匹配串的个数。先用匹配串进行kmp记录在模式串中首次出先的位置,在把两个串反转,进行kmp,在比较首尾和是否小于s的长度。#

2013-04-30 10:15:34 653

原创 求一个字符串的最长回文串

manacher算法: #include#include#includeusing namespace std;const int M=1100010;char b[M],a[M<<1];int p[M<<1];int main(){ int i,n,id,Maxl,Maxid,ncase=1; while(~scanf("%s",b)) {

2013-04-29 17:30:22 651

原创 nyoj 373 (时间复杂度)

非常简单的题目,写了没有半小时,调试几分钟就对了,比赛是愣是没写。也不知怎么搞的。#include#include#include#includeusing namespace std;char s[100005];stacks1;stacks2;int main(){ //freopen("Input.txt","r",stdin); int n,ncase

2013-04-29 09:22:16 694

原创 hdu1789 t贪心

题意是:给一些课程,以及复习这些课程的时间和不能完成扣的价值, 求最小价值,每天只能完成一科。贪心思想就是按照最大价值的排序,如果这个时间没安排课程,就让这门课在这,如果已经有,就在这之前安排在空位上,代码:#include#include#includeusing namespace std;struct ss{ int val; int day;}a[1

2013-04-26 12:31:16 585

原创 最圆点对,(凸包+旋转卡壳)

#include#include#include#include#define eps 1e-6#define inf 1e10#define maxn 1000005struct point{ double x,y;}p[maxn],s[maxn];int n;double xmult(point p1,point p2,point p0){ return

2013-04-24 20:10:59 560

原创 hdu 2215(最小覆盖圆)

#include //最小覆盖圆模板。#include#define maxn 502struct ss{ double x,y;};ss a[maxn],d;double r;double dis(ss p1,ss p2){ return sqrt((p1.x-p2.x)*(p1.x-p2.x)+(p1.y-p2.y)*(p1.y-p2.y));}doub

2013-04-24 08:48:28 649

原创 hdu1071 (积分求面积)

对称轴是(-b/2a) 求抛物线方程是y=ax^2+bx+c,求a,b,c时要用到p1点,只用p2,p3,为零时出错。#include#include#includeusing namespace std;int main(){ //freopen("Input.txt","r",stdin); double a,b,c; double n,m; do

2013-04-24 07:55:26 683

原创 凸包,有利于理解凸包极角排序poj1228

题意时判断是不是稳定的凸包,什么叫稳定的凸包,就是求凸包后每条边上要有不少于三个点。如果一条边上只有两个点,则可以加入一个点,扩大这个凸包。如图,每条边上有至少三个点,要特别考虑基点和最后一个点。#include#include#include#include#includeusing namespace std;const int maxn=10005;const

2013-04-22 21:46:56 837

原创 凸包并求凸包的面积

poj 3348#include#include#include#include#includeusing namespace std;const int maxn=10005;const double PI=acos(-1);struct point{ double x; double y;};point p[maxn];point s[maxn];double

2013-04-22 20:01:42 762

原创 凸包算法,并求凸包的周长

#include#include#include#include#includeusing namespace std;const int maxn=1005;const double PI=acos(-1);//是元周率的值。struct point{ double x; double y;};point p[maxn];point s[maxn];double c

2013-04-22 19:10:05 743

原创 计算几何模板

求两个圆的交点(模板)模板代码:bool intersection(const Point& o1, double r1, const Point& o2, double r2, Point& p1, Point& p2){ double d = dis(o1, o2); if(d r1 + r2 + eps) { return false; } doubl

2013-04-22 16:17:02 588

原创 nyoj 665桌球碰撞

比赛时想着要模拟过程,没法下手,做后没作出开,原来是把速度v分解到x,y方向上。在一个周期内求解。#include#include#include#includeusing namespace std;const double PI=acos(-1); //刚开时自己定义的,有误差,偶然发现这个无错。此值为3.141593const double eps=1e-6;

2013-04-22 15:43:31 789

原创 hdu3264 Open-air shopping malls(二分求最小半径覆盖所有圆的至少一半的面积)

枚举每个点当圆心,用二分枚举半径,#include#include#include#includeusing namespace std;const double PI=3.141592653;const double eps=1e-7;struct point{ double x; double y; double r;};point node[5

2013-04-19 16:15:54 671

原创 poj2546 求两个圆相交的面积

两圆相离,外切,内切,内涵,很容易写,相交的情况有有两种,但是方式是一样的,写成一样并不影响。设半径R,1.已知圆心角弧度α(或者角度n)面积S=α/(2π)*πR²=αR²/2 S=(n/360)*πR²2.已知弧长L:面积S=LR/2#include#include#include#includeusing namespace std;c

2013-04-19 15:05:28 779

原创 多边形重心 UVA Blast the Enemy!

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=13409#include#include#include#define eps 1e-6struct ss{ double x,y;};double Cross(ss t1,ss t2, ss t3){ return ((t2.x-t

2013-04-19 12:44:28 592

原创 InCircle 求三角形面积

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=18272AP:PB=M1:N1.......依次类推,给出R,N1,M1,N2,M2,N3,M3 ,求三角形面积,没错出来,看的别人的代码。#include#include#includeusing namespace std;int main(

2013-04-19 10:20:26 633

原创 In-circles Again

http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=11815如图给定r,r1,r2,r3.求三角习面积。#include#include#include#includeusing namespace std;double fun(double r,double rs){ double

2013-04-19 09:14:25 572

原创 四面体体积 poj2208 hdu1411

就是公式,有两个公式,但是在分贝提交这两个题目时,还是由错误。代码如下,知道者解迷。这是我给点边顺序#include#includeint main(){ double a,b,c,d,e,f,v,sum; while(~scanf("%lf%lf%lf%lf%lf%lf",&a,&b,&c,&d,&e,&f)) { double

2013-04-18 11:11:35 843

原创 hdu2594kmp

充分利用next函数,把b接在a的后面,即可#include#includeint next[100005];char a[50005],b[50005];void get_next(char *p,int len){ int j=1; next[0]=-1; int k=-1; for(;j<len;j++) { while(

2013-04-17 21:28:57 441

原创 poj2001(字典树)

#include#include#includeusing namespace std;struct node{ int count; node *next[26]; node() { count=0; memset(next,NULL,sizeof(next)); }};node *root;void InS

2013-04-17 08:47:48 461

原创 hdu2896ac自动机

#include#include#include#include#include#include#includeusing namespace std;const int maxn=5000100;char str[2000050],key[55];int allnum,vis[502];vectorv[1001]; //用来标记每个网站的个数,struct node{

2013-04-16 13:05:41 538

原创 hdu3065ac自动机

#include#include#include#include#include#includeusing namespace std;const int maxn=5000100;char str[2000050],key[55];struct hh{ string ss; int num; hh() { ss="";

2013-04-16 13:05:00 467

原创 hdu2222,(ac自动机)

网上讲解很多,其实自己可以模拟一遍,就能明白#include#include#include#includeusing namespace std;const int maxn=500010;char str[1000050],key[55];struct node{ node *fail; node *next[26]; int count;

2013-04-16 13:03:57 532

原创 poj2954三角形内整数点的个数

#include#include#include#includeusing std::swap;int gcd ( int x, int y ){ int tmp; if ( x < y ) swap(x,y); while ( y ) { tmp = y; y = x % y; x = tmp; } return x;}int main(){

2013-04-12 14:47:31 958

原创 字符串

hdu1073#include#includechar a1[5050],b1[5050];char a2[5050],b2[5050];void fun(char a[],char b[]){ char tmp[5050]; gets(tmp); while(strcmp(tmp,"START")!=0) gets(tmp); while(gets(tm

2013-04-07 17:08:16 443

原创 java

公式 c(n+m-1,m);import java.math.*;import java.io.*;import java.util.*;public class Main { // static final long[] a = new long[26]; public static BigInteger fun(int n) { BigInteger a; a

2013-04-06 09:54:34 537

原创 hdu母函数

hdu1028#include #include using namespace std;const int maxexp=120;int main(){ int n, now, pre; int f[2][maxexp+1]; while (scanf("%d", &n)==1) { memset(f, 0, sizeof(f));

2013-04-05 08:43:23 912

原创 poj2409polya定理

#include#includeint gcd(int a,int b){ int r=1; while(r!=0) { r=a%b; a=b; b=r; } return a;}/*int POW(int a,int b){ int sum=1; for(int i=1;i<=b;

2013-04-05 08:17:05 497

原创 poj1664 (递推)

m个苹果放n个盘子里。盘子可以空,5,1,1和1,5,1是相同的方法。1:先把n个盘子都放一个,剩下m-n个苹果在放这n个盘子。2:有一个盘子空着,m个苹果放在n-1个盘子里。#includeint fun(int m,int n){ if(m<0) return 0; if(m==0||n==1) return 1; return fun(m-n,n)+f

2013-04-02 14:35:34 461

原创 zoj3690(递推)

题意:有n个人,1到m个数,这n个人,每人选一个数字,要求相邻的两个人选择的数不能相等,相等时不能小于ka[i] 表示第i位置的>k的种数 。b[i]表示第i位置a[1]=m-k; b[1]=k;用矩阵求解;#includeconst long long mod=1000000007;long long a[4],b[4];long long m,k;void fun(

2013-04-02 09:51:45 857

原创 hdu2049(排列)

组合公式+错排错排递推:第一步,“错排” 1 号元素(将 1 号元素排在第 2 至第 n 个位置之一),有 n - 1 种方法。第二步,“错排”其余 n - 1 个元素,按如下顺序进行。视第一步的结果,若 1 号元素落在第 k 个位置,第二步就先把 k 号元素“错排”好, k 号元素的不同排法将导致两类不同的情况发生:( 1 ) k 号元素排在第 1 个位置

2013-04-01 15:27:09 480

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除