摘要:
1 #include 2 #include 3 using namespace std; 4 5 const int N = 1000+10; 6 const int M = N*N; 7 8 struct Edge { 9 int u, v;10 Edge( int u,... 阅读全文
摘要:
1 /************************************************************** 2 Problem: 2179 3 User: idy002 4 Language: C++ 5 Result: Accep... 阅读全文
摘要:
1 /************************************************************** 2 Problem: 4128 3 User: idy002 4 Language: C++ 5 Result: Accep... 阅读全文
摘要:
感谢asm.Definer清楚明了的题解:http://www.cnblogs.com/Asm-Definer/p/4470112.html收获: 1. 关于重心, 对于一个无向图, 我们这样给每条边重新确定方向: uv这条边将原图分成两个部分Su,Sv,w(S)表示S集合中点的权值和,那么 ... 阅读全文
摘要:
题意:你正在玩你最喜欢的电子游戏,并且刚刚进入一个奖励关。在这个奖励关里,系统将依次随 机抛出k次宝物,每次你都可以选择吃或者不吃(必须在抛出下一个宝物之前做出选择,且现在决定不吃的宝物以后也不能再吃)。 宝物一共有n种,系统每次抛出这n种宝物的概率都相同且相互独立。也就是说,即使前k-1次系统都抛... 阅读全文
摘要:
题意: 给一个简单无向图,一个人从1号节点开始随机游走(即以相同概率走向与它相邻的点),走到n便停止,问每条边期望走的步数.首先求出每个点期望走到的次数,每条边自然是从它的两个端点走来. 1 /****************************************************... 阅读全文
摘要:
给两个集合A,B,找满足要求的(a,b)的对数,可以计算对于a,哪些b成立.还有就是字符串hash的使用,感觉平时用字符串hash太少了. 1 /************************************************************** 2 Proble... 阅读全文
摘要:
自己只能想到O(n^2)的:dp[i][j] 表示 以i结尾,长度为j的o串的概率,然后在每次遇到x的时候算分数.正解是:dp[i]表示前i个的答案,d[i]表示以i结尾的期望长度.推的时候它用d[i]*d[i]-d[i-1]*d[i-1]来算新增的贡献,有点不明白为什么可以这样(平方的期望应该不等... 阅读全文
摘要:
大致题意: 给一棵树,每个节点最开始都是黑色,有两种操作,1.询问树中相距最远的一对黑点的距离 2.反转一个节点的颜色一种做法: 建立出树的括号序列,类似这样: [A[B][C]],所以长度为3*n 假如我们要询问AC间的距离,提取出中间的括号:[]],匹配消去后得到],其长度就是距离. 现在... 阅读全文
摘要:
题意: 给一个数集和一个数d,问满足下列要求的排列数(相同的数要区分): a[i]+d>=a[i+1] ( i in [1,n) )因为数的给出顺序不重要,所以先排序,假如我们已经解决了前i个数的答案,考虑前i+1个数,即我们可以将第i+1个数放在哪,然后发现对于前i个数的每一种方案,我们都可以选择... 阅读全文