上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 66 下一页
摘要: 解题思路 倍增$floyd$,首先设$f[i][j][k]$表示$i$这个点到$j$的距离能否为$2^k$,初值是如果x,y之间有边,那么$f[x][y][0]=1$。转移方程就是$f[i][j][t]|=(f[i][k][t-1]\&f[k][j][t-1])$,就是传递闭包。因为跑步机只能到$2 阅读全文
posted @ 2018-10-09 19:30 Monster_Qi 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 期望$dp$。因为这个是期望步数,所以要倒着推。那么这道题就变得一脸可做了,设$f[i]$表示还有$i$张牌没有收集的期望,那么考虑再抽一张,有$(n-i)/n$的概率抽到抽过的牌,有$i/n$的概率抽到没有抽过的牌。那么转移方程就是: $f[i]=f[i]*\dfrac{(n-i 阅读全文
posted @ 2018-10-08 21:24 Monster_Qi 阅读(120) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 首先刷出一个20位的表,这样利于后面的操作。设$f[i][j]$为填到第$i$位,目前后$j$位为6的个数,当$j=3$时就是已经满足条件。那么$f[i+1][j+1]+=f[i][j] ,f[i+1][0]+=f[i][j]*9 f[i+1][3]+=f[i][j]*10$,这个 阅读全文
posted @ 2018-10-08 17:29 Monster_Qi 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 解题思路 缩点后按拓扑排序跑一个dp。 #include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<cstdlib> #include<queue> using namespace std; const 阅读全文
posted @ 2018-10-08 16:46 Monster_Qi 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 解题思路 有向图最小路径点覆盖问题,有这样的结论就是有向图最小路径点覆盖等于n-拆点二分图中最大匹配。具体怎么证明不太知道。。输出方案时找到所有左部未匹配的点一直走$match​$就行了。 #include<iostream> #include<cstdio> #include<cstring> # 阅读全文
posted @ 2018-10-08 15:40 Monster_Qi 阅读(121) 评论(0) 推荐(0) 编辑
摘要: 传送门 因为骑士只能走"日"字,所以一定是从一个奇点到偶点或偶点到奇点,那么这就是一张二分图,题目要求的其实就是二分图的最大独立集。最大独立集=n-最大匹配。 #include<iostream> #include<cstdio> #include<cstring> using namespace 阅读全文
posted @ 2018-10-08 15:00 Monster_Qi 阅读(254) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 一道基环树上$dp$的题,这种题比较套路吧,首先第一遍$dfs$把环找出来,然后对于环上的每一个点都向它子树内做一次树形$dp$,$f[i][0/1]$表示到了$i$这个点选或不选的最大值,转移和没有上司的舞会那道题差不多,就是求一个带权最大独立集。然后再在环上做一次树形$dp$, 阅读全文
posted @ 2018-10-08 11:49 Monster_Qi 阅读(220) 评论(0) 推荐(0) 编辑
摘要: Description 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 Input 第一行给出数字N,代表有N个数 下面一行给出N个数 Output S的最小值 Sample Input 2 4059 -1782 Sample O 阅读全文
posted @ 2018-10-08 09:54 Monster_Qi 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 又是一道语文题,弄清楚题意之后其实就能想出来了,从1跑一遍最短路,把$dis[n]$加入答案。在建个反图跑一遍最短路,把$dis[n]_$加入最短路就行了。第一遍是去的时候,第二遍是回的时候。 #include<iostream> #include<cstdio> #include 阅读全文
posted @ 2018-10-07 22:35 Monster_Qi 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 传送门 解题思路 题目描述感人。。解释一下就是这个人跟系统博弈,系统切一条边,然后使得这个人走最短路最长。做法比较自然,先跑个最短路记录路径,然后枚举路径跑最短路,求最大值。因为最短路不可能出现环,所以这样的复杂度是$O(n^2log(m)$。 #include<iostream> #include 阅读全文
posted @ 2018-10-07 22:09 Monster_Qi 阅读(94) 评论(0) 推荐(0) 编辑
上一页 1 ··· 19 20 21 22 23 24 25 26 27 ··· 66 下一页