02 2019 档案

摘要:Floyd求最小环裸题 图中不能含有负权边,否则无最小环 思路:Floyd的流程相当于不断枚举中转点k进行松弛操作,那么,把点的编号按从小到大排序,枚举到第k个中转点时,从i到j以 前k 1个点 作为中转点的最短路已确定,且一定不含环(因为不含有负权边),相当于一条链,用f(i,j)表示,原图中连接 阅读全文
posted @ 2019-02-23 18:49 宇興 阅读(141) 评论(0) 推荐(0) 编辑
摘要:题目大意:给定起点和终点,求经过k条边的最短路 思路:倍增Floyd 矩阵快速幂优化 ~~其实,虽然被称作倍增Floyd,但和Floyd关系好像并不大?~~ 按dp思想理解,设f(k,i,j)表示经过 k 条边从 i 到 j 的最小花费,则 $f(k,i,j)=min(f(k 1,i,p)+f(1, 阅读全文
posted @ 2019-02-23 18:26 宇興 阅读(94) 评论(0) 推荐(0) 编辑
摘要:~~~ //暴力 二维前缀和+枚举 O(N^3) include include include using namespace std; const int maxn=105; int n,m,ans,a[maxn][maxn],sum[maxn][maxn]; int main(){ scanf 阅读全文
posted @ 2019-02-17 00:18 宇興 阅读(89) 评论(0) 推荐(0) 编辑
摘要:二维区间DP/记忆化搜索 原题是求均方差 需要用数学知识化简 转化为求最小平方和 状态:f[k][x1][y1][x2][y2] 表示把左上端点为(x1,y1)、右下端点为(x2,y2)的棋盘分割成k个部分所得的最小平方和 边界:当k=1时 为(x1,y1)到(x2,y2)的和的平方 目标:f[n] 阅读全文
posted @ 2019-02-16 23:52 宇興 阅读(158) 评论(0) 推荐(0) 编辑
摘要:小木棍 dfs 剪枝 把所有木棍从大到小排序 优化搜索顺序(较大的木棍更不容易凑出需要的长度,使之后的剪枝更早发生) 枚举可能的原始木棍长度,(注意这里不满足单调性,不能二分答案),这里可以把最长的一根现有木棍作为枚举的下界,上界为所有木棍更总长度。 答案只可能为总长度的因数,在枚举过程中其他的数可 阅读全文
posted @ 2019-02-12 00:43 宇興 阅读(231) 评论(0) 推荐(0) 编辑
摘要:思路 : 设a[i]为N=i时的方法数.i为奇数的时候肯定为0. 如果i为偶数,a[i]可以看成a[i 2]加上两个单位组成的,此时多出来的2单位有3种方法. 也可以看成a[i 4]加上四个单位组成的,此时这四个单位一定是连在一起的,中间不能分割,所以只有两种放法. 同理,可看成a[i 6]加上六个 阅读全文
posted @ 2019-02-11 00:26 宇興 阅读(202) 评论(0) 推荐(0) 编辑
摘要:~~~ include include include using namespace std; int T,n,m; int solve(int m,int n){//m个苹果 n个盘子 if(m 阅读全文
posted @ 2019-02-11 00:04 宇興 阅读(118) 评论(0) 推荐(0) 编辑
摘要:+ 题意:给出N个数,对于存有每两个数的差值的序列求中位数(一共Cn2个),如果这个序列有偶数个元素,就取中间偏小的作为中位数。 + 思路: 注意到题目中对于每两个数求差值,所有数的排列顺序不影响结果,所以可以先对数组排序。 因为答案具有单调性,所以可以二分答案ans,check函数中求出差 阅读全文
posted @ 2019-02-10 23:58 宇興 阅读(213) 评论(0) 推荐(0) 编辑
摘要:思路:高斯消元 把所有已知点列出 可以得到n+1个方程 形如 (a1A)2+(b1B)2+...+(n1N)2=dis (a2A)2+(b2B)2+...+(n2N)2=dis $ (a_3 A)^2 +(b_3 B)^2 阅读全文
posted @ 2019-02-09 22:53 宇興 阅读(106) 评论(0) 推荐(0) 编辑
摘要:高斯消元模板 要求输出解的情况(无穷解/无解) 1. 之前写的丑陋代码 ~~~ include include include include using namespace std; const double eps=1e 7; const int maxn=1000; int n;//n个变量 阅读全文
posted @ 2019-02-06 23:25 宇興 阅读(229) 评论(0) 推荐(0) 编辑
摘要:$ c_x y_{i_1} + (i_1 x) y_{i_1} s include include using namespace std; typedef long long LL; int n,s; LL ans,now=0x3f3f3f3f3f3f3f3f; int main(){ scanf 阅读全文
posted @ 2019-02-04 19:56 宇興 阅读(88) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef unsigned long long ull; 7 const int N=100005,p=131;//p进制 hash 8 int T,n,ans,len1,len2; 9 ull f[N],key1[N],k... 阅读全文
posted @ 2019-02-04 18:48 宇興 阅读(92) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 typedef long long LL; 7 typedef set::iterator setit; 8 const LL INF=0x3f3f3f3f3f3f3f3f; 9 int n; 10 LL ans; 11 set s; 12 ... 阅读全文
posted @ 2019-02-04 00:38 宇興 阅读(109) 评论(0) 推荐(0) 编辑
摘要:1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 int flag=1; 7 typedef pair p; 8 typedef set::iterator setit; 9 set s; 10 int main(){ 11 while(flag){ 12 scanf... 阅读全文
posted @ 2019-02-04 00:11 宇興 阅读(117) 评论(0) 推荐(0) 编辑
摘要:1 //思路:贪心+堆 2 //不太好写啊 (抄的题解...) 3 #include 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 const int maxk=50005; 10 using namespace std; 11 int ans,k,n,c,cnt1,cnt2,... 阅读全文
posted @ 2019-02-03 20:05 宇興 阅读(170) 评论(0) 推荐(0) 编辑
摘要:1 //思路:贪心+堆 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 const int maxn=1000005; 9 int n,k,ans,ans_l,ans_r;//ans--答案区间长度 ans_l--答案区间左端点 ans_r--答案区间右端点 10... 阅读全文
posted @ 2019-02-02 22:22 宇興 阅读(180) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示