摘要:1 /* 2 题目大意:给n个点n-1条边的树,求删除哪条边时两个树中最大的直径与边权的乘积最小。 3 树的直径(Diameter)是指树上的最长简单路。 4 直径的求法:两遍BFS (or DFS) 5 若删除的边不是直径上的那么花费为max_len*wi 6 若删除的边是直径上的那...
阅读全文
摘要:1 /* 2 题目大意:给一棵n个节点的树,求任意三个点两两无直系亲属关系的种数。 3 可以求反方向的,对于每个节点i使他选,他的一个子树中选一个,再在剩余的任意选一个。 4 */ 5 #pragma comment(linker, "/STACK:16777216") 6 #include 7...
阅读全文
摘要:1 /* 2 根据先后关系,可以建立一棵树 3 dp[i][j]表示第i个节点选j个的最大值 4 dp[i][j]=max(sigma(dp[c[i][ki]])) 5 sigma(dp[c[i][ki]])表示从i的儿子节点中一共选取j个点的最大值 6 */ 7 /*#includ...
阅读全文
摘要:1 /* 2 题目大意:一个n*c的网格,求从(1,1)到(n,c)花费魔法值的期望。 3 每次开启一个通道需要花费2魔法值,有三个方向可以走 4 在(x,y)位置时,分别转向 5 1.(x,y),概率是p(x,y*3-2) 6 2.(x,y+1),概率是p(x,y*3-1) 7 3.(x+1,y...
阅读全文
摘要:1 /* 2 题目大意:有n个房间由n-1个隧道连接起来,从1号房间开始, 3 每个节点i都有三种可能: 4 1.被杀死,回到节点1,概率为ki; 5 2.找到出口,离开迷宫,概率ei; 6 3.与它相连的有m个房间,到任意相连房间的概率(1-ki-ei)/m; 7 求走出迷宫要走房间个数的期望。...
阅读全文
摘要:1 /* 2 题目大意:注册一款游戏需要排队,一共有四种事件: 3 1.注册失败,队列不变,概率为p1 4 2.注册过程中断开连接,正在注册的人排到队列的末尾,概率为p2 5 3.注册成功,移出队列,概率为p3 6 4.服务器暂停服务,概率为p4 7 求一个人他前面有不超过k-1个人的时候暂停服务...
阅读全文
摘要:1 /* 2 题目大意:一个n个节点的树,求选取一些节点(不能含有父子关系的)的最大数量,且是否唯一。 3 dp(i,0)表示当前节点i不选,dp(i,1)表示当前节点i选 4 叶子节点dp(i,0)=0,dp(i,1)=1 5 dp(i,0)=sigma(max(dp(j,0),dp(j,1))...
阅读全文
摘要:1 /* 2 题目大意:给n个节点的二叉树第i个节点的权值为2^(i-1), 3 求所有含左右子树的节点都符合左子树的权和小于右子树权和的种数。 4 */ 5 #include 6 #include 7 #include 8 using namespace std; 9 10 typedef...
阅读全文
摘要:1 /* 2 题目大意:一个n*m的棋盘,每天放一个棋子,每行每列至少有一个棋子时结束。求达到每行每列至少有一个棋子的天数的数学期望。 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int ma...
阅读全文
摘要:1 /* 2 题目大意:n个人分成若干组,每个人都描叙他们组前面有多少人后面有多少人, 3 求说真话的人最多有多少个。 4 解题思路:把同一组的人数统计起来他们组前面有x人后面有y人, 5 num[x+1][n-y]表示区间[x+1,n-y]的权值,num[x+1][n-y] 9 #include...
阅读全文
摘要:1 /* 2 给两个串a,b。输出一个最短的串(含等于a的子序列且含等于b的子序列) 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int maxn=105;10 int dp[maxn][ma...
阅读全文
摘要:1 /* 2 有n组背包,每组都有限制 3 0、至少选一项 4 1、最多选一项 5 2、任意选 6 */ 7 #include 8 #include 9 #include 10 using namespace std;11 12 const int maxn=105;13 const int ...
阅读全文
摘要:1 /* 2 查询一段区间,有多少能被它各个数位之和整除的个数 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 int dp[11][82][82][82];//分别表示第i位,前缀数字各个和j,模k,余x1...
阅读全文
摘要:1 #include 2 #include 3 #include 4 using namespace std; 5 6 const int maxn=505; 7 int a[maxn],b[maxn],dp[maxn]; 8 9 int main()10 {11 int t,n...
阅读全文
摘要:1 /* 2 题目大意:给n个月工作需要的人数,雇佣一个需要花hire 3 每个月的薪水是salary,解雇一个需要fire 4 求完成所有工作的最小费用 5 dp(i,j)表示第i个月雇佣j员工的最小费用 6 */ 7 #include 8 #include 9 #include 10 us...
阅读全文
摘要:1 /* 2 TLE 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const int maxn=5e5+5;10 int a[maxn],b[maxn],c[maxn],f[maxnb?a:b;}12 v...
阅读全文
摘要:1 /* 2 类似完全背包,容量为n的背包用素数填,求满背包的种数 3 dp(i,j)表示用不超过i的素数组成的j的种数 4 dp[i][j]=dp[i-1][j],若i为素数则dp[i][j]+=dp[i][j-i] 5 */ 6 #include 7 #include 8 #include...
阅读全文
摘要:吉哥系列故事——临时工计划Time Limit: 3000/1000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3108Accepted Submission(s): 1220Probl...
阅读全文
摘要:小明系列故事——买年货Time Limit: 5000/2000 MS (Java/Others)Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 2534Accepted Submission(s): 1138Problem...
阅读全文
摘要:搬寝室Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 18191Accepted Submission(s): 6170Problem Descri...
阅读全文