- 博客(10)
- 资源 (1)
- 收藏
- 关注
转载 Sicily 1839. Stone Game(dp)
假设总共有w颗白色,b颗黑色,数组win用来保存获胜概率,win[i]表示当白色石头还剩i颗时轮到摸石头那个人的获胜概率这样其他可以暂时不管,只考虑摸到的两种可能:摸到白色的概率是(i / (i + b)),摸到黑色的概率是(b / (i + b))那么这个玩家获胜方法有两种:1、假设i > 1,摸到白色的,这时i变为i - 1,但是还没赢,所以要乘上(1 - win[i
2013-01-30 17:53:03 573
转载 Sicily 1874. Three little pigs (dp+高精)
Jasison君大神什么的~N只不同的小猪分配到M所相同的房子,问有多少种方法(每所房子至少要有一只小猪)思路:对于F[n][m],对第n只小猪单独考虑,有两种情况:1)前n-1只小猪在m-1所房子里面,第n只小猪单独一个房子2)前n-1只小猪在m所房子里面,第n只小猪在任意一个房子里面于是F[n][m] = F[n-1][m-1] + m*F[n-1][m]初始条
2013-01-30 13:07:36 937 5
转载 Sicily 1863. Elegant fibonacci numbers again (斐波那契+矩阵快速幂)
题意:Fibonacci数列,f[0]=0, f[1]=1, f[n] = f[n-2]+f[n-1],n>1给出n(0 解题思路:n太大,所以不能用O(n)的循环递推计算 结论:对于矩阵|1 1|,和矩阵|Fn Fn-1|,两者相乘之后得到新矩阵|Fn+1 Fn |,Fn为第n个Fibonacci数
2013-01-30 11:17:21 963
原创 Sicily 1893. Sell Ticket (卡特兰数)
强大的卡特兰数不解释。。详见《编程之美》。。。#include using namespace std;int main(){ int n; long long ans[32]; ans[0]=ans[1]=1; for(int i=2;i<32;i++) ans[i]=(4*i-2)*ans[i-1]/(i+1);
2013-01-30 10:35:58 681
转载 Sicily 1820. How far away? (LCA的RMQ算法)
#include #include #include #include #include #include using namespace std;struct node { int l, v; node(int vv = 0, int ll = 0): l(ll), v(vv) { }};vector graph[10010];int e[20010], no
2013-01-30 00:36:16 622
转载 sicily 1800. Sequence(RMQ,线段树解决)
// 题意: 给出一个序列,求一段连续区间内元素的和的最小值,区间的长度范围[L,U]// 思路: sum[i]记录原序列从1到i的元素的和, 枚举下标 i , // 求出以 i 为结尾,区间长度范围从 L 到 U 的连续和的最小值,// 这可以通过找出sum[i-U]-sum[i-L]中的最大值MAX,则sum[i]-MAX 取得最小值#include //线段
2013-01-29 23:29:05 707
转载 Sicily 1889. Max’s game (优先队列dijkstra、哈希)
// 题意: 有n*m矩阵,从起点(sx,sy)出发,可以上下左右四个方向移动,// 若两个位置上是相同字符,则花费为0,否则为1,求到终点的最短距离// 用Dijkstra算法解决,但会 TLE ,需要用 优先队列 优化时间#include // 邻接矩阵+优先队列实现Dijkstra算法#include #include #include using name
2013-01-29 22:48:10 1464
转载 poj 1273 Drainage Ditches(最大流的EK算法模板)
#include #include #include #include #include #include #define MAX 250using namespace std;int cap[MAX][MAX];int m;int EKarp(int s,int t){ queue Q; int flow[MAX][MAX],a[MAX],u,v,f,pre[MAX];
2013-01-29 22:03:14 618
原创 Sicily 1922. Winning Ways
题目大意:给出n堆石子,问有多少种取法使得自己胜利。分析:假如所有的石子xor之后结果M。1.M为0,即此状态为必败态,那么答案为0;2.M总之,统计一下满足(ai^ans) #includelong long a[700007];int main(){ int t,n,cs; scanf("%d",&cs); while(cs--)
2013-01-29 13:05:16 565
转载 sicily 1876&1949 RMQ(模版)+并查集
1876和1949是同一个题目,case的输出不同而已.存个rmq的模版某个区间内的最值#include#include#include#include #include using namespace std;int _max[100010][18],_min[100010][18];bool ok;int father[100010];int n,qu
2013-01-29 11:21:51 573
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人