自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

苍竹林

何不让这一场梦 没有醒来的时候

  • 博客(23)
  • 问答 (7)
  • 收藏
  • 关注

原创 ZOJ 2938 Rock Skipping (暴力枚举)

# include # include # include # include # include using namespace std;struct node{ int pos;///初始位置 int num;///跳的次数 int dd;///跳的间隔 int last;///最后位置};struct node s[110];int cm

2014-10-29 23:01:39 775

原创 hdu 4474 Yet Another Multiple Problem (bfs)

///给你一个数n,再给你m个k 求 各位都不为这m个数的n的最小倍数# include# include# include# include# include # includeusing namespace std;int vis[100010],map[11],tt[11],n;int k,x;struct node{ int mod; string

2014-10-24 18:53:11 692

原创 HDU 1896 Stones (优先队列)

# include # include # include using namespace std;struct node{ int pos; int d; int num; friend bool operator <(node n1,node n2) { if(n1.pos==n2.pos) return n1.d>n2.d;//仍的距离从小到大 return

2014-10-20 21:08:44 564

原创 poj 3253 Fence Repair (优先队列)

///优先队列,每次取两个最小的木板的长度,再把这个长度放进队列,反复取# include # include # include # include # include # include using namespace std;///长度小的放在前面class cmp{public: bool operator ()(const __int64 a,const _

2014-10-20 21:01:27 570

原创 hdu 4424 Conquer a New Region (并查集)

///题意:给出一棵树,树的边上都有边权值,求从一点出发的权值和最大,权值为从一点出去路径上边权的最小值# include # include # include # include using namespace std;# define MAX 200010struct node{ int u,v; int w;};struct node a[MAX];_

2014-10-19 22:32:49 703

原创 zoj 3288 Domination (概率dp)

///dp[i][j][k]表示i行j列已经有棋子,且放了k个的概率///dp[i][j][k]一共有四种转移方式///1:dp[i-1][j][k-1] 概率为 (n-(i-1))*j/(n*m-(k-1))///2:dp[i][j-1][k-1] 概率为 i*(m-(j-1))/(n*m-(k-1))///3:dp[i-1][j-1][k-1] 概率为 (n-(i-1))*(

2014-10-12 19:54:59 794

原创 hdu 3076 ssworld VS DDD (概率dp)

///题意:/// A,B掷骰子,对于每一次点数大者胜,平为和,A先胜了m次A赢,B先胜了n次B赢。///p1表示a赢,p2表示b赢,p=1-p1-p2表示平局///a赢得概率 比一次p1 两次p0*p1 三次 p0^2*p1,即A赢的概率为p1+p*p1+p^2*p1+...p^n*p1,n->无穷///即a_win=p1/(1-p);b_win=p2/(1-p);///dp[i][j

2014-10-09 22:36:49 798

原创 poj 2096 Collecting Bugs (概率dp)

/*dp求期望逆着递推求解题意: 一个软件有s个子系统,会产生n种bug 某人一天发现一个bug,这个bug属于一个子系统,属于一个分类 每个bug属于某个子系统的概率是1/s,属于某种分类的概率是1/n 问发现n种bug,每个子系统都发现bug的天数的期望。求解: dp[i][j]表示已经找到i种bug,j个系统的bug,达到目标状态的天数的期望

2014-10-09 19:46:50 739

原创 hdu 4405 Aeroplane chess (概率dp)

/*题目大意:问从0到n所花费时间平均时间。每次有投骰子,投到几就走几步。当然了,还有近道。题目分析:假设现在在i,那么接下来有六种可能的走法,分别是:i到i+1,在由i+1到结束i到i+2,在由i+2到结束i到i+3,在由i+3到结束i到i+4,在由i+4到结束i到i+5,在由i+5到结束i到i+6,在由i+6到结束其中每一个可能的走法发生的概率为n为1/6。那么不妨定义d

2014-10-08 21:00:33 773

原创 hdu 3152 Obstacle Course (bfs)

//从0 0到n-1 n-1位置 最小消耗,走到i,j位置需要消耗a[i][j]//可以走四个方向#include #include #include #include #include # define inf 999999999using namespace std;int n;int dp[150][150];int a[150][150];int dir[4][2]

2014-10-07 19:32:43 711

原创 hdu 3853 LOOPS (概率dp)

/*dp[i][j]表示(i,j)到(R,C)需要消耗的能量则:dp[i][j]=p1[i][j]*dp[i][j]+p2[i][j]*dp[i][j+1]+p3[i][j]*dp[i+1][j]+2;///+2 转移到下一个能量要消耗2化简得:dp[i][j]=((p2[i][j]*dp[i][j+1])+(p3[i][j]*dp[i+1][j])+2)/(1-p1[i][j]);*

2014-10-06 10:09:07 847

原创 poj 1659 Frogs' Neighborhood (判断简单图并输出)

# include# include# include# includeusing namespace std;struct node{ int d; int num;};struct node a[15];bool cmp(node a1,node a2){ return a1.d>a2.d;}int main(){ int map[15

2014-10-05 18:50:46 594

原创 hdu 2454 Degree Sequence of Graph G (判断简单图)

///已知各点的度,判断是否为一个简单图#include#include#includeusing namespace std;int a[1010];bool cmp(int x,int y){ return x>y;}int main(){ int t,n,i,j; scanf("%d",&t); while(t--) {

2014-10-05 18:18:03 1123

原创 poj 1221 UNIMODAL PALINDROMIC DECOMPOSITIONS (母函数)

/*给出一个数n,把它拆分成若干个数的和,要求最大的数在中间并向两边非递增。问拆法有多少种。母函数。枚举中间的那一个数,因为左右对称,所以只需要求左边部分的方案即可。注意,左右两部分的取数必须小于中间的数,中间的数是0的话则以n为最大取值。*/# include # include # include # include typedef long long LL;using

2014-10-04 21:44:48 1026

原创 poj 1322 Chocolate (概率dp)

///有c种不同颜色的巧克力,一个个的取,当发现有相同的颜色的就吃掉,去了n个后,到最后还剩m个的概率///dp[i][j]表示取了i个还剩j个的概率///当m+n为奇时,概率为0# include # include # include # include using namespace std;double dp[1010][1010];int main(){ in

2014-10-04 20:17:45 994

原创 HDU 2152 Fruit (母函数)

# include# include # include # include using namespace std;int main(){ int n,m,i,j,k; int c1[110],c2[110]; int a[110],b[110]; while(~scanf("%d%d",&n,&m)) { for(i=0;i<

2014-10-04 16:18:02 952

原创 hdu 1709 The Balance (母函数)

/*题目:给出一定(n)数量的砝码,每个砝码重a1,a2,a3。。。an,问题:求出【1~sum】中(sum为各砝码总和)不能被称出的重量;问题关键:天平两边都可以放砝码,放在同一端:a[j+k]+=a[j]不同端a[abs(j-k)]+=a[j]假设原来的砝码都放在右端,则可以把新加的砝码放在左端,得到新重量,此时a[abs(j-k)]+=a[j]。*/# include # i

2014-10-03 22:15:34 674

原创 hdu 1085 Holding Bin-Laden Captive! (母函数)

//给你面值为1,2,5的三种硬币固定的数目,求不能凑出的最小钱数//G(x)=(1+x+...+x^num1)(1+x^2+...+x^2num2)(1+x^5+,,,+x^5num3),//展开,系数不为0的数都是可以由硬币组合出来的。# include # include # include # include using namespace std;int main(){

2014-10-03 20:32:54 707

原创 hdu 1398 Square Coins (母函数)

//输入是一个整数。输出他的拆分数(即拆分的方案数),本题与1028最大的不同之处就在于他的面额只能是整数的平方# include # include # include # include using namespace std;int main(){ int n,i,j,k; int c1[310],c2[310]; while(~scanf("%d",&n),n) { for(i=0;i<=n;i++) {

2014-10-03 10:28:13 742

原创 hdu 1028 Ignatius and the Princess III (母函数)

///整数拆分模版///g(x)=(1+x+x^2...)(1+x^2+x^4...)(1+x^3+x^6...)# include# include# include# includeusing namespace std;int main(){ int n,i,j,k,c1[125],c2[125]; while(~scanf("%d",&n)) {

2014-10-03 10:02:35 743

转载 母函数详解

母函数(Generating function)详解在数学中,某个序列的母函数是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。使用母函数解决问题的方法称为母函数方法。母函数可分为很多种,包括普通母函数、指数母函数、L级数、贝尔级数和狄利克雷级数。对每个序列都可以写出以上每个类型的一个母函数。构造母函数的目的一般是为了解决某个特定的问题,因此选用何种母函数视乎序列本身

2014-10-02 19:21:54 608

原创 hdu 4223 Dynamic Programming? (dp)

//连续的和的绝对值最小# include # include # include # include using namespace std;int main(){ int t,i,j,num,n,min1; int sum[1010],a[1010]; int cas=0; while(~scanf("%d",&t)) {

2014-10-01 21:42:07 1273

原创 hdu 1364 Illusive Chase (dfs)

# include # include # include # include using namespace std;struct node{ int x1; int x2; char x[5];};struct node a[100010];int map[110][110];int n,m,k;bool judge (int xx1,int yy

2014-10-01 20:30:30 1174 1

空空如也

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

TA关注的人

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