自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hahahaha

路漫漫其修远兮~

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

原创 hdu5569 matrix(简单dp)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5569思路:直接dp遍历过去即可,设f[i][j]代表走到(i,j)时候的最小价值。当走奇数步的时候不进行决策,走偶数步的时候看从哪里走过来价值小。代码:#include#includeint min(int a,int b){ return a<b?a:b;}

2015-11-25 18:50:09 480

原创 hdu5568 sequence2(dp+大数)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5568题目大意:给一段长度为n的序列,现在在其中取k个,问这k个是递增的取法有多少种。范围:n思路:可以用dp来解决,跟前面做过的一题一样。设f[i][j],代表在前i个里面选了长度为j并且以a[i]为结尾的取法,那么就有转移方程:f[i][j]=Σf[k][j-1](a

2015-11-25 18:46:16 599

原创 2015 南阳 CCPC hdu 5542 The Battle of Chibi(DP+树状数组优化+离散化)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5542题目大意:给一段长为n的序列,现在要找出m个严格递增的数,问这样的找法有多少种。范围 :n思路:首先会往dp方面想,我们令f[i][j]表示前i个数字里面取了j个严格递增的数的找法。但是为了严格递增,我们可以规定这个f[i][j]的最后那个数就是a[i]。此时我

2015-11-18 20:09:37 782

原创 2015 南阳 CCPC hdu5547 Sudoku(DFS)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5547思路:跟poj上面的那题数独一样,但是范围更小。所以就写个水DFS加上一个水的暴力判断水过去了。代码:#include#include#include#includeusing namespace std;int r[10][10],c[10][10],vis

2015-11-18 15:18:23 1035

原创 2015 南阳 CCPC hdu 5546 Ancient Go(DFS,暴力)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5546题目大意:我方棋子是'x',敌方是'o'。现在轮到我方落子,问我方能不能在下一回合吃掉对方的至少一个棋子。吃掉的规则是:对方被围的棋子在下一回合时已经找不到为' . '的位置。范围:棋盘大小9*9。思路:由于棋盘大小只有9*9,所以我们可以直接暴力枚举'o',对于一

2015-11-18 13:24:01 1564

原创 UVA 465 Overflow(浮点数的范围)

C - OverflowTime Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %lluSubmit Status Practice UVA 465Appoint description: Luke  (2014-01-22)System Crawler  (2015-11-10)

2015-11-17 18:06:07 686

原创 UVA 10494 If We Were a Child Again(大数)

E - If We Were a Child AgainTime Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %lluSubmit Status Practice UVA 10494Appoint description: Luke  (2014-01-22)System Crawler  (

2015-11-16 23:38:35 583

原创 hdu 1022 Train Problem I(栈的模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022题目大意:给定入栈顺序,问能否按照某个方式出栈。思路:直接模拟即可。代码:#include#include#include#include#include#includeusing namespace std;char s1[15],s2[15];i

2015-11-16 22:30:16 455

原创 UVA 10106 Product(大数相乘)

B - ProductTime Limit:3000MS     Memory Limit:0KB     64bit IO Format:%lld & %lluSubmit Status Practice UVA 10106Appoint description: Luke  (2014-01-22)System Crawler  (2015-11-16)

2015-11-16 21:32:42 1100

原创 大数模板

只适用于整数。#include#include#include#include#include#includeusing namespace std;#define MAXN 9999#define MAXSIZE 300#define DLEN 4class BigNum{private: int a[500]; //可以控制大数的位数 in

2015-11-16 21:13:08 487

原创 hdu 1023+1030+1134 卡特兰数+大数模板处理

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1023都是卡特兰数的应用,中间要用大数处理。卡特兰数:公式:也可以写成:卡特兰数超过35以后就要用大数处理了。卡特兰数列为: 1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862, 16796, 58786, 208012, 742

2015-11-16 20:50:15 838

原创 Codeforces Gym 100796E Permutation Polygon(线段树)

题目链接:http://codeforces.com/gym/100796/problem/E题目大意:给一些点连成线以后,问总共有多少个交点。思路:对于两条线(x,y)和(a,b)来说,如果x所以对于线(a,b)来说,只要a在(x,y)里面,同时b在(x,y)外面,就能够保证有交点。所以我们可以用线段树维护这个区间上的点的数量,为了保证x代码:#include

2015-11-16 11:59:02 757

原创 hdu5563 Clarke and five-pointed star(判正五边形,精度问题)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5563题目大意:给5个点,判断能不能组成一个正五角星。思路:其实就是判正五边形。所以可以枚举出10条边,5条边5条对角线。判断5条边是否相等,5条对角线是否相等即可。注意精度问题,题目中说如果精度小于10^-4就算相等,所以就不要开太小了,否则会出问题。如果利用角度判的话

2015-11-14 22:08:05 929 1

原创 Gym 100796K Profact(爆搜+剪枝)

K - ProfactTime Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64uSubmit Status Practice Gym 100796KDescriptionstandard input/output AnnouncementState

2015-11-14 21:48:34 1331

原创 Gym 100796D Journey(BFS)

D - JourneyTime Limit:1000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64uSubmit Status Practice Gym 100796DDescriptionstandard input/output AnnouncementState

2015-11-14 21:30:04 296

原创 2015 南阳CCPC hdu5543 Pick The Sticks(01背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5543题目大意:在一个狭长的容器里面放一些长木棍,每根木棍的长度和价值都不同,现在通过放置木棍使得能够得到的总价值最大。木棍放置不能重叠,对于任意一根木棍,只要他的重心落在容器里面,就算有一部分出去了,也算能够放下。题目范围:N思路:对于这样一个问题,如果范围小的话,我们大可

2015-11-13 10:48:48 971

原创 hdu 4770 Lights Against Dudely(暴力+状压)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4770题目大意:在一个n*m的地图里面,需要放置一些灯使得所有的路都能被照亮。灯照亮的方式为“L”型,即照亮(x,y),(x-1,y),(x,y+1)三个位置。但是现在有一盏特别的灯,可以旋转90°或者180°或者270°,当然可以用也可以不用。不过有一个要求就是,灯不能照到墙。现在问照

2015-11-10 20:20:19 412

原创 hdu 1429 胜利大逃亡(续)(BFS+状压)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1429思路:先想到用BFS 求得最短的时间。然后看到要拿不同的钥匙开门,总共最多有10把钥匙,最多为2^10,所以考虑状压。代码:#include#include#include#include#includeusing namespace std;int n

2015-11-10 20:09:09 567

原创 hdu 4771 Stealing Harry Potter's Precious(BFS+状态压缩)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4771题目大意:在一个地图上面有一些宝藏,现在从某一个点出发要拿到所有的宝藏,问最短所需要走的步数是多少。思路:BFS+状态压缩。在原来的vis[][]基础上添加一个状态,vis[i][j][state]代表在(i,j)上面拿了多少个宝藏时候的最小步数。题目范围比较小,宝

2015-11-09 21:20:59 376

原创 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest A题 Bit String Reordering(暴力)

题目大意:给出一串0/1序列,连续的几个0或者1可以计数相加,比如0 0 1 1 1 0,就是2 3 1。相邻的数之间可以交换,现在通过一系列变换以后可以达到某一种情况,比如例子里面:如果要求变成3 3,那就是把最后那个0放到前面和前面两个0相邻。问最少需要几步。思路:题目范围比较小,N我们可以自己构造出所要求的序列,无非就是两种情况。然后去一位位 比较,如果当前位不同,则往后寻找

2015-11-09 19:30:16 993

原创 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest D题 Space Golf(三分)

题目大意:一个球想从0弹到d,中间有n个木板在Pos i,高度为Height i ,问在至多落下Bn次的情况下(不包括首尾),最小初始速度是多少。思路:可以发现,当小球在地上弹跳的次数x确定时,vx和vy的关系是可以知道的,然后将√(vx^2+vy^2)化简以后可以得到只由vy表示的一个函数,发现是先递减后递增,符合三分条件,所以我们考虑三分vy。对于在地上弹跳次数的限制可

2015-11-09 19:10:15 962

原创 2014-2015 ACM-ICPC, Asia Tokyo Regional Contest G題 (线段树区间更新)

题目大意:给一个括号序列,刚开始一定是平衡的(也就是括号都匹配)。现在改变其中某一个括号,然后需要再改变一个括号(可以是自己)使得序列依旧保持平衡。问改变哪个括号可以达到目的,当然改变的括号越左边越好。思路:对于这个括号序列,我们可以将'('设为1,')'设为0,那么就能算出他们的前缀和。比如序列()(()),前缀和就是1,0,1,2,1,0。可以发现如果是平衡的序列,所有的前缀和

2015-11-09 13:00:12 721

原创 ZJNU 1426 YNingC的困惑(离散化)

题目链接:http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1426思路:简单的涂色问题。主要要用到离散化。代码:#include#include#include#includeusing namespace std;int max(int a,int b){ return a>b?a:b;}

2015-11-07 19:55:54 657 2

原创 KMP模板

//优化过后的next 数组求法 void GetNextval(char* p, int next[]) { memset(next,0,sizeof(next)); int pLen = strlen(p); next[0] = -1; int k = -1; int j = 0; while (j < pLen

2015-11-06 20:38:50 472

原创 POJ 1961 Period(KMP)

题目链接:http://poj.org/problem?id=1961题目大意:跟前面那题一样,只是这题要求出这个字符串里面所有的能够组成a^n形式的情况。思路:还是应用next数组,对于各种情况可以暴力枚举len,选取符合情况的。代码:#include#include#include#includeusing namespace std;int min(

2015-11-06 16:40:25 316

原创 POJ 2752 Seek the Name, Seek the Fame(KMP)

题目链接:http://poj.org/problem?id=2752题目大意:给一个字符串,求出他前缀和后缀相同时的他们的长度。思路:还是next数组的应用,先求整个字符串的next数组,然后可以知道next[len],代表着整个字符串的最大相同前缀和后缀长度x。然后看next[x],意思就是前x个字符的最大相同前缀和后缀长度,按照这样的方式一直循环,直到next[x]=

2015-11-06 16:02:14 472 3

原创 poj 2406 Power Strings(KMP)

题目链接:http://poj.org/problem?id=2406题目大意:给出一个字符串,这个字符串一定能够以a^n表示。现在问n最大为多少。思路:对于这个字符串来说,我可以算出他的next数组,然后能够得到这整个字符串的最大前缀和后缀相同的值next[len]。然后可以发现len-next[len]就是这个a的长度。所以就自己猜了一下= =如果len%(len-ne

2015-11-06 15:45:26 449

原创 poj3461 Oulipo(KMP)

题目链接:http://poj.org/problem?id=3461题目大意:给两个字符串p和s,问p在s中出现了几次。思路:KMP模板题。用KMP算法可以知道p是否在s 中出现,如果要知道出现几次,其实还是模拟匹配过程。如果匹配到一个成功的字符串,就继续看下去,同时j=next[j],相当于在第plen+1的地方字符串失配了,要重新给p定位。代码:#incl

2015-11-05 19:36:32 438

原创 hdu 5515 Game of Flying Circus(二分、模拟)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5515这里有篇文章,题意和思路都讲的非常好!链接:http://blog.csdn.net/snowy_smile/article/details/49450163代码:#include#include#include#define eps 0.000000

2015-11-05 17:29:53 834

原创 hdu 5534 Partial Tree(完全背包)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5534题目大意:有n个结点,n-1条边,现在要把这n个结点连成一棵树,给定了f(d),表示度为d的结点的价值是f(d)。现在问如何连能够使得Σf(d)的值最大。思路:首先我们知道n-1条边意味着有2*n-2个度,那么求这个价值最大就是对这些度的分配问题。想法很巧妙,为了解决出

2015-11-05 12:49:36 562

原创 最长上升子序列nlogn 模板

参考了别人的博客,在此表示感谢,链接:http://blog.csdn.net/shuangde800/article/details/7474903代码:#include#include#define MAXN 40005int arr[MAXN],ans[MAXN],len;/* 二分查找。 注意,这个二分查找是求下界的; (什么是下界?详情见《算法入门经典》 P1

2015-11-04 19:26:04 801

原创 hdu 5532 Almost Sorted Array(最长不上升子序列、暴力)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5532题目大意:给出n个数,问如果去掉其中一个数,能否构成不上升或者不下降的序列。思路:最直观的就是通过判断原数列的最长不上升(或者不下降)子序列的长度,如果长度len>=n-1,那就是YES,否则就是NO。这里可以用nlogn的算法。还有一种就是直接暴力去数,每去掉一个

2015-11-04 19:12:00 2385

原创 hdu 5531 Rebuild(三分)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5531题目大意:给出n个点,这n个点可以连成一个凸多边形。现在以多边形的端点作为圆心,分别做n个圆,要求在同一条线上的端点的圆是相切的。现在要求满足条件以后,计算最小的圆面积总和。如果不能保证条件成立,则输出impossible。思路:如果我们知道了第一个点上的圆的半径r,那么如

2015-11-04 16:03:49 1388

原创 hdu 5533 Dancing Stars on Me

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5533题目大意:给n个点,判断这些点能否组成一个正多边形。思路:题目里面给的点坐标是整数的。所以除了正四边形以外,其他的都不行。。。。。。代码:#include#include#include#include#includeusing namespace std

2015-11-02 21:21:06 1020

原创 hdu5510 (KMP+剪枝)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5510题目大意:给n个字符串,求出最大的i使得对于第i个字符串,他的前i-1个字符串中至少有一个不是他的子串。思路:很容易想到利用KMP算法判断子串,但是直接操作是会超时的,所以我们加上一个剪枝:设立一个vis[i]数组,举个例子:如果1是3的子串,则令vis[1]=1,然后

2015-11-01 21:10:14 810 2

空空如也

空空如也

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

TA关注的人

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