上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 37 下一页
摘要: 树形DP 求树的重心,即选择一个结点删去,使得分出的 若干棵树的结点数 的最大值最小 阅读全文
posted @ 2017-08-11 01:58 Aragaki 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 设dp[i][j]表示以j开头的,长度为i的排列的数目。 从字符串的后面到前面DP就得出答案了。 #include #include #include #include using namespace std; const int MAXN=1010; const int MOD=1000000007; char str[MAXN]; int dp[MAXN][MAXN]; int main()... 阅读全文
posted @ 2017-08-09 01:24 Aragaki 阅读(198) 评论(0) 推荐(0) 编辑
摘要: A:约瑟夫环 套公式 B:线性筛素数 C:投骰子 概率DP F:有权无向图的生成树(边最大值和最小值只差最小) 直接kruskal G:状压BFS或者双向BFS H:模拟题 I:几何题 J:高斯消元 阅读全文
posted @ 2017-08-09 00:07 Aragaki 阅读(109) 评论(0) 推荐(0) 编辑
摘要: A:二分答案 如果中位数比目前的大就right=mid-1 else left=mid+1 C!:几何 G:优先队列贪心 #include <bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<LL, int> 阅读全文
posted @ 2017-08-08 23:23 Aragaki 阅读(137) 评论(0) 推荐(0) 编辑
摘要: A:正着DFS一次处理出每个节点有多少个优先级比他低的(包括自己)作为值v[i] 求A B 再反着DFS求优先级比自己高的求C #include <bits/stdc++.h> #include <cstring> #include <iostream> #include <algorithm> # 阅读全文
posted @ 2017-08-08 22:00 Aragaki 阅读(141) 评论(0) 推荐(0) 编辑
摘要: A!:UESTC1752 B!:找区间内L到R之间内的数的个数 权值分块加莫队 C!:给你一个哈斯图 去掉其中的几条边 要求输出字典序最大的拓扑排序:线段树模拟拓扑排序 D!:要求你找到最短路树并输出 E:SG函数 F:求出偶数和奇数的个数套公式 G:要求你从两个set里找出符合要求两个数 找规律 阅读全文
posted @ 2017-08-08 21:51 Aragaki 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 给你一棵有向树,需要选定一个点为capital,满足翻转边数最小 思路:先求出1为capital 的答案,然后向下更新孩子节点 dp[i]=dp[i-1]+judge(i); #include<iostream> #include<cstdio> #include<cstring> #include 阅读全文
posted @ 2017-08-07 23:59 Aragaki 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2017-08-06 17:14 Aragaki 阅读(142) 评论(0) 推荐(0) 编辑
摘要: UVa 10328 - Coin Toss 题意:给你一个硬币,抛掷n次,问出现连续至少k个正面向上的情况有多少种。 转换成抛N次至多连续有N个减去抛N次至多连续有K-1个1的情况 dp[i][k]表示抛i次至多连续有k个1的情况数; 转移方程:i<=k的时候有dp[i][k]=dp[i-1][k] 阅读全文
posted @ 2017-08-05 14:02 Aragaki 阅读(931) 评论(0) 推荐(0) 编辑
摘要: A D:用前面的H去消去后面的K 然后求最长连续的M F:在每一列/行里面求最大的数然后组成最大的和ans[]里的比求出最大的 L:并查集 J:DP背锅题 01背包 先求出M种里每种的size和last然后先last最大的放在最后 然后背包DP X[i]表示有i人在一个飞机上时的最小last 然后i 阅读全文
posted @ 2017-08-04 22:56 Aragaki 阅读(352) 评论(0) 推荐(0) 编辑
上一页 1 ··· 27 28 29 30 31 32 33 34 35 ··· 37 下一页