上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 38 下一页
摘要: 很水的TARJAN求强联通图的问题。#include #include #include #include using namespace std;const int N=10010;const int M=100010;int head[N],dfn[N],low[N],stack[N],st;s... 阅读全文
posted @ 2014-12-01 16:07 chenjunjie1994 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 烦。。早上在写HDU 4338,发现细节太多了,写不了。原因其实是自己对TARJAN算法忘得差不多了。唉。。把之前想的一道循环节的题过了吧。。。再练练Tarjan,把4338也过了,加油。。。#include #include #include using namespace std;char s[... 阅读全文
posted @ 2014-11-30 12:32 chenjunjie1994 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 利用降幂公式。。呃,还是自己去搜题解吧。知道降幂公式后,就不难了。#include #include #include #include #define LL unsigned long long using namespace std;bool mod[100005];LL PHI(LL P){ ... 阅读全文
posted @ 2014-11-29 23:26 chenjunjie1994 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 把两种状态化成2*n-2的一条线上的一种状态即可。很容易想到。高斯列主元法,不知为什么WA。要上课了,不玩了。。。逃了一次课呢。。#include #include #include #include #include #include using namespace std;double cons... 阅读全文
posted @ 2014-11-25 09:41 chenjunjie1994 阅读(138) 评论(0) 推荐(0) 编辑
摘要: 树状数组,主要是抓住要求连续1的个数。这样,初始时,相同的加1,不同的加0.查询时,用二分搜索右边界。就是比较当前mid-l+1的值与他们之间1的个数(这可以通过树状数组求区间和得出),记录右边界即可。#include #include #include #include #include #def... 阅读全文
posted @ 2014-11-24 18:03 chenjunjie1994 阅读(88) 评论(0) 推荐(0) 编辑
摘要: 本来以为是一道水题,好吧,做了才知道,出题的人有多牛。二分搜索是不可能的了,因为会超内存。。。看到别人的搜索两个集合的提示,我就自己一边去想了。终于想出来了:可以这样做,先把每两个集合的和值枚举出来并成一个大集合,排序,去重。剩下一个集合,于是,共三个集合。枚举小的那个集合的元素,搜索两个大的集合。... 阅读全文
posted @ 2014-11-22 19:47 chenjunjie1994 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 一开始就想到了扩展KMP,因为只有扩展KMP才是处理后缀的。但忽然短路以为扩展KMP求的是最长公共后缀,囧。。。。又浪费了很多时间,都是对这个算法练得不多再看那个扩展KMP算法之后,就很确定要的就是这个算法了。嗯,如果直接用扩展KMP,是会超时的。后来看了别人一个很巧妙的处理,把一个串复制一下两个串... 阅读全文
posted @ 2014-11-22 16:12 chenjunjie1994 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 顶好的一道题。其实,是POJ 2411的升级版。但POJ 2411我用的插头DP来做,一时没想到那道题怎么用状态DP,于是回头看POJ 2411那一道的状态DP,其实也很简单,就是每一行都设一个状态,用位来表示,如果上一行为0,则当前行必定是要竖着放的。填1.否则,当前行的位置可以横放填两个格子为1... 阅读全文
posted @ 2014-11-22 11:34 chenjunjie1994 阅读(125) 评论(0) 推荐(0) 编辑
摘要: dp求期望的题。 设 E[i]表示在结点i处,要走出迷宫所要走的边数的期望。E[1]即为所求。 叶子结点: E[i] = ki*E[1] + ei*0 + (1-ki-ei)*(E[father[i]] + 1); = ki*E[1] + (1-ki-ei)*E[... 阅读全文
posted @ 2014-11-20 16:58 chenjunjie1994 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 概率DP期望,逆推即可。使用状态压缩。注意,要全部输出。。。看DIS才发现题目输出是个坑。。#include #include #include #include using namespace std;double state[(1=0;i--){ if(i==al){ state[i]... 阅读全文
posted @ 2014-11-20 15:09 chenjunjie1994 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 很简单的概率题了设dp[x]为能力值 为x时出去的期望 天数#include #include #include #include #include using namespace std;double dp[20005];int ci[125];double is=0.5*(1+sqrt(5));... 阅读全文
posted @ 2014-11-19 20:42 chenjunjie1994 阅读(180) 评论(0) 推荐(0) 编辑
摘要: 很容易列出方程设dp[i][j]为排在第i位置,总共有j个人排队到达目标状态的概率i=1dp[i][j]=p4+p1*dp[i][j]+p2*dp[j][j]2kdp[i][j]=p1*dp[i][j]+p2*dp[i-1][j]+p3*dp[i-1][j-1]设p2=p2/(1-p1),p3=p3... 阅读全文
posted @ 2014-11-19 19:52 chenjunjie1994 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 矩阵快速乘求概率,不难。但有注意的一点是,一定要注意地雷连着的情况,一旦出现两个雷相邻,就必定为0了。#include #include #include #include using namespace std;int pos[15];struct matrix{ double m[3][3];}... 阅读全文
posted @ 2014-11-19 12:37 chenjunjie1994 阅读(170) 评论(0) 推荐(0) 编辑
摘要: 方程很明显有d[i]=sum(pk*d[i+k])+p0*d[0];其中pi可以在开始时枚举求出。设d[i]=A[i]*d[0]+B[i],代入上式d[i]=(sum(pk*A[i+k])+p0)+sum(pk*B[i+k])+1可得A[i]=sum(pk*A[i+k])+p0B[i]=sum(pk... 阅读全文
posted @ 2014-11-19 10:28 chenjunjie1994 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 求概率。其实跟枚举差不多,输入n即是要进行n轮比赛。对每一支球队,设求1的概率,首先1要与2比赛为p1,这是第一轮,第二轮时,1要与3(打败3为p2),4(打败4为p3)中胜者比赛,由于是概率,则两者都要比,求出概率。所以,1要在第二轮胜的概率=p1*(p2*3第一轮胜出的概率+p3*4在第一轮胜出... 阅读全文
posted @ 2014-11-16 15:19 chenjunjie1994 阅读(204) 评论(0) 推荐(0) 编辑
上一页 1 ··· 14 15 16 17 18 19 20 21 22 ··· 38 下一页