自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

theArcticOcean

博观而约取,厚积而薄发

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

原创 集合的排列与组合

排列和组合的区别在于放置和选择是否和顺序有关。集合的排列:n元素集合的r排列A(n,r)=n*(n-1)*(n-2)……(n-r+1)=n!/(n-r)!集合的组合:n元素集合的r组合C(n,r)=n!/(n-r)!/r! [组合不考虑顺序]问题:将26个英文字母排序,要求a,e,i,o,u任意两个不能连续出现,这样的排序有多少个?分析:26个英文字母的总排序数是A(26,26)=

2015-07-07 15:38:23 1569

原创 四个基本的计数原理

四个基本计数原理:@加法原理:设集合s划分为两两互不相交的各个部分s1,s2,s3……sn,那么s的元素总个数等于各个部分的总个数之和。即|s|=|s1|+|s2|+……+|sn|.(如果允许子部分相交,则需要用容斥原理来解决)使用加法原理的技巧是:把原集合分割成容易处理的少量子集。例子:一名学生想要选修一门数学课程和一门计算机的课程,数学课程有三门可供他选择,计算机课程有四门可以选择,那

2015-07-07 09:23:54 4913

原创 hdu 1874 畅通工程续(两点最短路径,spfa&&floyd)

题目:畅通工程续Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 34450    Accepted Submission(s): 12600Problem Description某省自从实行了很多年的畅通工程

2015-07-06 17:35:00 633

原创 hdu 4460 Friend Chains(最短路径,spfa)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4460做这道题前关于最短路径只会Dijkstra,所以呢,TLE...参考了更好的spfa算法,原来他用队列和标记数组进行优化,标记过了的点不会被放进队列了,函数是针对从队列中的取出的点进行相连点发散遍历,且每次遍历如果发现了更短的路径都及时的把目的地相应点标记了,这样相比Dijkstra的从头至尾

2015-07-06 11:47:05 522

原创 hdu 3790 最短路径问题(Dijkstra)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=3790和普通的最短路径相比,这里要多计算相同最短路径下的最小费用,所以再增加一个数组,在Dijkstra里也做一点改动,让费用数组跟着变化。#include #include#includeusing namespace std;int n;const int INF=0x3f3f3f

2015-07-05 20:46:23 510

原创 hdu 1596 find the safest road(最短路径,邻接矩阵)

题意:http://acm.hdu.edu.cn/showproblem.php?pid=1596考验图论中的最短路径问题。需要做一点小小的处理,把原算法中的if(dist[j]>dist[k]+map[k][j])dist[j]=dist[k]+map[k][j];改成if(dist[j]#include #include#includeusing namespace std;

2015-07-05 16:30:18 613

原创 hdu 1863畅通工程(prim,邻接矩阵)

题目:acm.hdu.edu.cn/showproblem.php?pid=1863最小生成树的简单应用。直接用邻接矩阵即可,用链式前向星好像有点问题。由于输入边的顺序,村子的顺序是未知的,所以只能最开始:tag[edge[1].to]=1;    for(i=head[edge[1].to];i>0;i=edge[i].next)dis[i]=edge[i].w;或者:tag

2015-07-05 12:08:03 507

原创 hdu 4462 Scaring the Birds(暴力,细读)

题意:http://acm.hdu.edu.cn/showproblem.php?pid=4462我想说,这道题不是考验数据结构或是神马复杂的算法,就是考验人的阅读能力和思维的缜密。有两点:第一点都能看出来,当k=0时不能保护已有的庄稼;第二点,当k=n*n时,即所有的点都是没有庄稼的,直接输出0.#include #include#includeusing namespace

2015-07-04 21:15:50 686

原创 C++ map的简单应用

C++中的模板map可以帮助我们建立起不同数据类型之间的映射关系,这一点在某些问题的处理上极为方便和重要。熟练掌握和运用map有许多好处。下面是用map的简单例子:#include#include#include#includeusing namespace std;struct point{ int dex; int x,y;};struct strCmp { bo

2015-07-04 18:52:12 833

原创 hdu 4463 Outlets(最小生成树,kruskal,前向星)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=4463最小生成树的应用,但是要先把其中两个点连接起来,然后选取剩余的n-2条边。为了和纯粹的kruskal算法尽量相似,我在结构体上多下了功夫,可能看起来有点复杂。#include #include#include#include#include#includeusing names

2015-07-04 17:51:51 701

原创 hdu 1233 还是畅通工程(最小生成树,kruskal,前向星)

题目:http://acm.hdu.edu.cn/showproblem.php?pid=1233#include #include#include#includeusing namespace std;struct Edge{ int from,to,w; bool operator<(const Edge b)const{ return w<b

2015-07-04 15:44:38 570

原创 hdu 1757 A Simple Math Problem(矩阵连乘)

题意:http://acm.hdu.edu.cn/showproblem.php?pid=1757f[10]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)*(9,8,7,6,5,4,3,2,1,0)'f[11]=(a0,a1,a2,a3,a4,a5,a6,a7,a8,a9)*(f[10],9,8,7,6,5,4,3,2,1)'f[n]=(a0,a1,a2,a3,a4,

2015-07-03 22:33:35 954

原创 hdu 3306 Another kind of Fibonacci(矩阵连乘)

题意:http://acm.hdu.edu.cn/showproblem.php?pid=3306大意是这样的:f[0]=f[1]=1,f[n]=X*f[n-1]+Y*f[n-2].S[n]=f[0]^2+f[2]^2+--+f[n]^2.给定n,求出s[n]%10007。要求出s[n]肯定不是逐个求出f[i]再平方相加求和。s[n]=s[n-1]+f[n]^2,f[n]^2=X^2*

2015-07-03 14:19:50 441

原创 矩阵乘法&&快速幂

由线性代数的知识,我们可以在计算机上实现用矩阵来解决某些问题,将一些复杂的方程组用矩阵来表达和计算,当找到类似于递推的关系后,矩阵表达的优越性更能充分体现出来。例子:求出第n个(假设10000内)斐波那契数字对1000000007取模的结果。这样的问题用一点数论的相关知识也能很快解决(出现的错误undefined reference to winmain 16查了半天居然是main写成了mia

2015-07-03 10:08:31 674

原创 背包问题之01背包

背包问题:给定一组物品,每个物品的费用和价值是不同的,求怎样选择物品使得在不超过限定总费用的条件下最后的总价值最大。01背包是背包系列问题的基础,其解决问题的思想很重要。01背包问题限定每个物品的个数是1,开始已知物品的总数N和限定费用V,接着我们会得到物品的价值val[i]和费用vei[i]。一开始接触01背包,自己总联想到贪心,想按照性价比由高到低排个序,然后直接把前面几个物品的价值加起来

2015-07-02 18:57:23 551

原创 lightOJ 1278 Sum of Consecutive Integers(数论,数学推导)

题目:给出一个数n,求出有多少种连续整数和等于n(连续整数至少两个)。“For example, N = 15 has three solutions, (1+2+3+4+5), (4+5+6), (7+8).”分析:n=a+(a+1)+(a+2)+(a+3)+……+(a+k-1) ==> n=(2a+k-1)/2*k ==>2n/k-k=2a-1 ==>2n/k-k是一个奇数。如果k是一个偶

2015-07-02 15:20:12 1130 2

原创 UVA 11489 Integer Game(博弈,规律)

题意:给出一段长度不超过1000位的数字, 两个人进行游戏, 分别从数字中去掉某一位数字, 并且去掉之后, 剩下的数字的每一位数相加都是3的倍数, 最后不能取, 或是没有数字了, 就输了. 先手胜利的话就输出"S", 否则输出"T".在中间过程中,取前是满足sum%3=0的,取后也要满足sum%3=0,所以取的数字一定是3的倍数(包含0),这一个步骤可以推广至从第二步到最后一步,第一步则要

2015-07-02 10:16:37 677

原创 棋盘的完美覆盖(多米诺骨牌完美覆盖)&&幻方(魔方阵)

棋盘的完美覆盖:一张8行8列的棋盘一共有64个方格,用一些形状相同的多米诺骨牌覆盖,每一张覆盖相邻的两个方格,没有相互重叠,能用32张这样的多米诺骨牌完全覆盖整张棋盘称为多米诺骨牌完美覆盖或者盖瓦。这样的完美覆盖是存在的,而且不止一种方式,一共有12988816=2^4*17^2*53^2种。那么对于一般的m行n列的棋盘是否存在着多米诺骨牌完美覆盖呢?充要条件是m*n是偶数,这等价于分子物理学

2015-07-01 09:22:47 6773

空空如也

空空如也

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

TA关注的人

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