自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Everything can be done!

学习充实自己,使自己变得更加强大

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

原创 hdu 5334

题意:给出一个数组的不同子集的个数k,求出一个数列满足这个条件;思路:当数列为1 ,2,3,,,,n的时候,不同子集的个数就为等差数列求和n * (n + 1)/2;当数列中出现两个相同的数的时候,你会发现不同子集数少了一个,以此类推,3个的时候少了 1+ 2 = 3个,4个的时候少了1 + 2 + 3个……;找的时候记得用二分;#includeusing nam

2017-04-29 20:49:46 222

原创 第八届蓝桥杯第十题

感觉最后一题写一下挺爽的!第十题标题: k倍区间给定一个长度为N的数列,A1, A2, ... AN,如果其中一段连续的子序列Ai, Ai+1, ... Aj(i <= j)之和是K的倍数,我们就称这个区间[i, j]是K倍区间。 你能求出数列中总共有多少个K倍区间吗? 输入-----第一行包含两个整数N和K。(1 <= N, K <= 100000)

2017-04-29 20:43:23 815

转载 bitset

转载自http://www.cnblogs.com/Ash-ly/p/5890024.htmlSTL容器 -- Bitset核心内容:Bitset 是 STL 中的二进制容器, 存放的时 bit 位元素, 每一位只占一个 bit 位, 取值 0 或者 1, 可以像整形元素一样按位与或非, 并且大大优化了时间和空间复杂度.头文件: #include 构造方法:

2017-04-28 14:27:17 217

原创 hdu 5666

题意:给出一个线段x+y= b,然后和0坐标组成的三角形内有多少整数点;思路: 1 + …… + (n - 2);等差数列求和(n-2)*(n - 1)/2;运用大数相乘取模;SegmentTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)

2017-04-27 17:59:25 353

转载 高精度bign类

转载自:http://blog.csdn.net/wall_f/article/details/8373395不错的高精度模板,但这个模板只能算加、减、乘、除等基本运算,但操作减法的时候只能大数减小数,所以最重要的操作是 + 、 +=、*、*=、、/、/=、-=、==,>=,[cpp] view plain copy#include   #i

2017-04-27 16:24:36 393

转载 String中c_str()、data()、copy(p,n)函数的用法

转载自http://www.cnblogs.com/qlwy/archive/2012/03/25/2416937.htmlString中c_str()、data()、copy(p,n)函数的用法标准库的string类提供了3个成员函数来从一个string得到c类型的字符数组:c_str()、data()、copy(p,n)。1. c_str():生成一个c

2017-04-27 16:13:43 2335 2

原创 数论简单题pat光棍

L1-046. 整除光棍时间限制400 ms内存限制65536 kB代码长度限制8000 B判题程序Standard作者翁恺这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不

2017-04-27 15:18:03 1183

原创 hdu 1124 (n! 中素数p的个数的应用)

FactorialTime Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 4030    Accepted Submission(s): 2652Problem DescriptionThe most importa

2017-04-27 15:15:31 569

转载 hdu1495

以前听过这个题用BFS写,还没想到能想到数论这边,佩服!转载自:http://blog.csdn.net/v5zsq/article/details/52097459设两个小瓶子容积分别为a,b,问题转化成通过两个小瓶子的若干次倒进或倒出操作得到(a+b)/2体积的可乐,设两个小瓶子被倒进或倒出x次和y次(这里的x和y是累加后的操作,即x=第一个瓶子倒出的次数-倒进的次数,y=第二

2017-04-26 13:17:33 510

原创 hdu - 2571

以后写dp或者记忆化搜索的时候记得最小ret不一定是0,当元素的为负的时候;命运Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 18595    Accepted Submission(s): 6453

2017-04-25 23:33:49 253

原创 图的弱联通

poj 2762题意:类似于强联通,这个是求一个图只要任意两点能够x- >y或者y -> x ,就能行,而不一定要求两个都符合;思路:先tarjan进行联通缩点,缩点思路为:走tarjan的时候进行了染色,知道某个点数属于哪个联通块,然后对每个边的两端点进行是否属于同一个联通块进行判断,如果不是同一个联通块,就得对缩完后的点进行加边,然后就形成了一个DAG,然后直接用t

2017-04-25 21:35:59 940

转载 图的强连通tarjan学习

Tarjan 算法一.算法简介Tarjan 算法一种由Robert Tarjan提出的求解有向图强连通分量的算法,它能做到线性时间的复杂度。 我们定义:如果两个顶点可以相互通达,则称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。有向图的极大强连通子图,称为强连通分量(strongly con

2017-04-25 21:07:46 387

原创 hdu - 2964

题意:给出一个数,然后对他进行类似于进制的分解,不过在这是素数;思路:根据分解数,可以把p1 提出来,然后a1 = n / p1 % p2;以此类推,系数a就可以出来PS:很好想出思路,敲代码实现有点慢,多练!#includeusing namespace std;const int maxn = 100000 + 10;typedef long lo

2017-04-25 21:05:54 303

转载 SPFA算法学习

转载自http://www.cnblogs.com/scau20110726/archive/2012/11/18/2776124.html粗略讲讲SPFA算法的原理,SPFA算法是1994年西南交通大学段凡丁提出是一种求单源最短路的算法算法中需要用到的主要变量int n;  //表示n个点,从1到n标号int s,t;  //s为源点,t为终点in

2017-04-23 18:55:21 230

原创 798D的二维贪心与C的思维

http://codeforces.com/contest/798/problem/D题目大意:    给你两个数组长度为n的数组a,b,让你从中选择n/2+1个下表,使得对于每个数组,选择的元素之和的二倍大于整个数组的元素之和。解题思路:    首先,对于题目要求的选择元素之和两倍大与所有元素之和,我们可以转化为选择元素之和大于剩下的。然后

2017-04-23 10:41:40 390

原创 uva-1395

https://vjudge.net/problem/uva-1395题意: 给出一个图,求使得一棵生成树的最大边和最小边相差最小的那棵生成树,得出这个最小的相差值;思路: 参考大白:先排个序,然后枚举这生成树的最小的那个边,直到能够形成生成树,得出差值,然后进行比较输出;#include#include#include#include#include

2017-04-11 21:00:24 371

原创 kruskal最小生成树

https://vjudge.net/problem/hdu-1863kruskal 算法是根据边来进行一条一条地往生成树中添加的,然后只有边的两点属于不同集合的边才能加入生成树中;想过用vis数组标记然后进行看是否都用过了,如果都用过了,就不加入生成树中;后面想想是我想错了,如果出现两个最小树的情况,如果不把这两个树连在一起的话就不是最小生成树了;#inclu

2017-04-11 20:15:32 356

原创 hdu - 5667

题意:然后求fn取p的余之后的答案,n 为10^18次方;思路: 设xn为a的幂: 则可以得出xn = c * x(n -1) + x(n - 2) + b;由费马小定理可以得出,fn %= p, 那么xn %= (mod - 1);矩阵为: c b 1              1 0 0               0 0  1#includ

2017-04-11 18:32:44 216

原创 插入排序

原理很简单,直接看代码:#include#include #include#include#include#includeusing namespace std;const int maxn = 100 + 10;int a[maxn];int n;void solve(){ for(int i = 1; i <= n; i ++) { int x = a[i];

2017-04-11 16:39:01 233

原创 堆排序

堆排序的思路就是:先对数进行构建大顶堆,然后把大顶堆上面的那个最大的与最后的元素交换,然后把前n - 1个元素进行大顶堆调整,所以最大的元素在最后一个                                           然后把第n - 1个数和第一个数相交换,然后把前n - 1个元素进行大顶堆调整,所以第n - 1大的数在n - 1个数位中;         

2017-04-11 16:35:19 221

原创 poj - 1804归并求逆序对

https://vjudge.net/problem/poj-1804这题也可以用树状数组来做的;想到归并排序求逆序对,也是一种方法,随便说说归并排序:归并排序是把要排序的数组分成两个部分进行排序,然后将两个部分进行归并,然后在合并的时候因为两个部分都是有序的,所以当a[i] > a[j]的时候,因为i后面的数都不小于a[i],所以后面的数自然也大于a[j],所以加上的

2017-04-11 14:45:15 412

原创 hdu-1275

https://vjudge.net/problem/25970/origin某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统.但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能超过前一发的高度.某天,雷达捕捉到敌国的导弹来袭.由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹. 怎么办呢?多搞几套系统呗!你

2017-04-10 14:26:30 297

原创 uva 1220树的最大点独立集

https://vjudge.net/problem/uva-1220题意: 找出一个树的最大点独立集,并输出这个最大点独立集是否唯一思路: dp[i][0]表示未把i这个点加入独立集的独立集的数量,dp[i][1]表示吧这个点加入到这个点独立集的时候独立集的数目;那么可以得出状态转移方程:dp[i][1] = sum(dp[v][1]),v为i的下一层的点;dp[i]

2017-04-06 21:18:01 328

原创 uva 12186

https://vjudge.net/problem/uva-12186题意: 给出一颗树,最高的节点是0,要求让每个人签字的话必须他的所有的下一层儿子的数目的至少T%的人签字,问要使得0签字,至少要多少人签字呢?思路: 对于每个人,用dp[i]表示i这个节点至少需要多少人的签字,然后用dfs从根进行搜索,更新的时候是在回溯的时候进行从叶节点一层一层往上进行更新,可以算出每

2017-04-06 14:43:25 318

原创 swust 最小凸包的面积

http://acm.swust.edu.cn/problem/0249/求凸包的最小的面积有一个公式:知道公式,直接裸过;#include#include#include#includeusing namespace std;const int maxn = 1000 + 10;#define INF 0x3f3f3f3f#de

2017-04-06 13:06:58 509

原创 poj3616

https://vjudge.net/problem/16276/origin题意: 给一些区间,然后去区间权和的最大值,注意每个区间取完之后需要休息:#include#include#includeusing namespace std;const int maxn = 1000 + 10;#define INF 0x3f3f3f3f#define ep

2017-04-06 11:17:42 618

原创 zoj1453凸包入门

这道题几乎是纯的“凸包问题”,也让我对于凸包有了入门级的认识。我看到的比较好的算法是Graham扫描法,用笔模拟了一下该算法,大致就对该算法有所体会了,所以碰到一个新算法,一定要不怕麻烦,通过模拟该算法深入了解其中的奥秘Graham扫描法                                      Graham扫描法的具体流程:  1.

2017-04-04 20:03:28 312

原创 CodeForces 429B

题意:在一个n*m的矩阵中有两只虫子,一只从左上角向右下角移动,另外一只从左下角向右上角移动。要求:1.第一只虫子每次只能向左或者向下移动一格,另外一只只能向上或者向右移动一格。2.两只虫子的路径最多只能重合一点。3.求解两只虫子路径中除去重合那点其余各点的权值之和最大。思路:相当于分成四个部分去求各自到达交点的所得到的值,这样才能保证只经过

2017-04-04 19:05:20 345

原创 组合数的奇偶性判断

nefu 600结论: C(n,m) 的奇偶性判断: if((n & m) == m)为奇数,否则为偶

2017-04-03 15:01:27 1815

原创 uva 10791

https://vjudge.net/problem/UVA-10791题意: 给出一个n,是至少两个数的lcm,求这些数加起来的最小的和;分析: 分解为素因子相乘的式子,因为lcm(a,b) = p1^max(a1,b1) * p2^max()……;所以要使得这些数加起来最小,每个数分配一个因子就行#include#include#include#inc

2017-04-02 10:59:58 213

原创 nyist737 石子合并

http://acm.nyist.net/JudgeOnline/problem.php?pid=737题意: 只能合并相邻两个元素,加上这两个的值,问使得所有的合并成一堆得最小的总值;思路:用一个二维数组dp[][],dp[i][j]表示合并i ~ j这段区间的最小的权;其中当i == j的时候,dp[i][j] = 0,因为这个时候只有一个元素,不需要合并; 

2017-04-02 09:50:39 361

原创 hdu 2048 错排的递推式

http://acm.hdu.edu.cn/showproblem.php?pid=2048题意:求错排在整个N!排列的比例;分析:主要是错排的推导: 引用百度百科的: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素

2017-04-01 23:34:55 255

原创 hdu 2047 EOF 串

http://acm.hdu.edu.cn/showproblem.php?pid=2047题意:给一个长度n,由E,O,F三个字母组成长度为n的序列,满足oo不能在一起,求满足这种条件的序列有多少?递推:从后面推起: 当第n个为O时,第n  - 1个只能是E,F两种,前面的就是dp[n  - 2],即这种情况是 2 * dp[n - 2];

2017-04-01 23:24:47 600

原创 nefu 18 滑雪

http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=18题意: 找一条从高到低的最长的路的长度;思路:记忆化搜索,但是不知道在那个地方开始或者结束,所以所有的点都走一遍:#include#include#include#include#includeusing namespace std;

2017-04-01 22:57:00 302

原创 uva1626

uva1626 Brackets sequence题意:一组只由[ ,],(, ),组成的字符串,然后对他进行增添字符,使其匹配;求给他增添的最少的括号的数量,然后输出匹配后的序列;分析:用刘汝佳的话说;           如果s 形如(s')和 [s']可以转移到d[s']           如果s至少有两个字符,可以分成AB,转移到d[A] + d[B];

2017-04-01 16:02:42 593

空空如也

空空如也

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

TA关注的人

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