摘要: 837D - Round Subset 思路:dp。0是由2*5产生的。 ①dp[i][j]表示选i个数,因子2的个数为j时因子5的个数。 状态转移方程:dp[i][j]=max(dp[i][j],dp[i-1][j-c2]+c5)。 初始化:dp[0][0]=0,dp[i][j]=-INF(i!= 阅读全文
posted @ 2017-08-04 14:26 Wisdom+.+ 阅读(170) 评论(0) 推荐(0) 编辑
摘要: FZU - 2150 思路:bfs。注意初始化啊,忘了清空vector,TLE一个下午。 代码: 阅读全文
posted @ 2017-08-03 18:00 Wisdom+.+ 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 369C - Valera and Elections 思路:dfs,对于搜索到的每个节点,看他后面有没有需要修的路,如果没有,那么这个节点就是答案。 代码: 阅读全文
posted @ 2017-08-03 15:53 Wisdom+.+ 阅读(306) 评论(0) 推荐(0) 编辑
摘要: UVA - 11853 思路:dfs,从最上面超过上边界的圆开始搜索,看能不能搜到最下面超过下边界的圆。 代码: 阅读全文
posted @ 2017-08-03 15:49 Wisdom+.+ 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 834D - The Bakery 思路:dp[i][j]表示到第j个数为止分成i段的最大总和值。 dp[i][j]=max{dp[i-1][x]+c(x+1,j)(i-1≤x≤j-1)},c(x+1,j)表示x+1到j的不同的值。 用线段树维护一下最大值。 上图最后一个点取不到,不解释,不明白请评 阅读全文
posted @ 2017-08-02 18:16 Wisdom+.+ 阅读(289) 评论(0) 推荐(0) 编辑
摘要: POJ - 2528 Mayor's posters 思路:分治思想。 代码: 阅读全文
posted @ 2017-08-01 15:30 Wisdom+.+ 阅读(163) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 模板: POJ - 3468A Simple Problem with Integers 代码: #include<iostream> #include<cstdio> using namespace std; #define ll long long #define ls rt<<1,l 阅读全文
posted @ 2017-08-01 01:21 Wisdom+.+ 阅读(315) 评论(0) 推荐(0) 编辑
摘要: 835C-Star sky 思路:dp,预处理一下c+1层前缀和。 代码: 阅读全文
posted @ 2017-08-01 01:11 Wisdom+.+ 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 628B - New Skateboard 思路:dp 代码: 阅读全文
posted @ 2017-07-31 17:49 Wisdom+.+ 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 834C - The Meaningless Game 数学。 思路1:判断a•b能不能化成v3且a%v==0且b%v==0。v可以直接用pow求(或者用cbrt),也可以二分求;还可以用map映射预处理,使得所有的map[v*v*v]=v。 代码1(cbrt版,296 ms): 代码2(pow版, 阅读全文
posted @ 2017-07-31 15:16 Wisdom+.+ 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 模板: vector<int>g[N]; vector<int>edge[N]; int anc[20][N]; int deep[N]; int h[N]; void dfs(int o,int u,int w) { if(u!=o)deep[u]=deep[o]+1,h[u]=h[o] 阅读全文
posted @ 2017-07-30 14:54 Wisdom+.+ 阅读(825) 评论(0) 推荐(0) 编辑
摘要: 832D - Misha, Grisha and Underground 思路:lca,求两个最短路的公共长度。公共长度公式为(d(a,b)+d(b,c)-d(a,c))/2。 代码: 阅读全文
posted @ 2017-07-30 09:29 Wisdom+.+ 阅读(318) 评论(0) 推荐(0) 编辑
摘要: 821C - Okabe and Boxes 思路:模拟。因为只需要比较栈顶和当前要删除的值就可以了,所以如果栈顶和当前要删除的值不同时,栈就可以清空了(因为下一次的栈顶不可能出现在前面那些值中)。 代码: 阅读全文
posted @ 2017-07-28 14:52 Wisdom+.+ 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 挑战程序设计p98 例题1:hiho1121 : 二分图一•二分图判定 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define ls rt<<1,l,m #define rs rt<<1|1 阅读全文
posted @ 2017-07-28 14:48 Wisdom+.+ 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 算法笔记 参考:https://blog.csdn.net/li1615882553/article/details/80136776 https://blog.csdn.net/cillyb/article/details/78058174 复杂度证明:https://www.cnblogs.co 阅读全文
posted @ 2017-07-26 17:11 Wisdom+.+ 阅读(214) 评论(0) 推荐(0) 编辑
摘要: 525A - Vitaliy and Pie 思路:贪心+hashing。 代码: 阅读全文
posted @ 2017-07-25 16:18 Wisdom+.+ 阅读(275) 评论(0) 推荐(0) 编辑
摘要: 140D - New Year Contest 思路:贪心+排序。罚时与时间成正比,因为在0点前做完的题都可以在0点提交。从时间短的开始做最优。 代码: 阅读全文
posted @ 2017-07-25 14:47 Wisdom+.+ 阅读(185) 评论(0) 推荐(0) 编辑
摘要: C - Om Nom and Candies 思路:贪心+思维(或者叫数学)。假设最大值max(wr,wb)为wr,当c/wr小于√c时,可以枚举r糖的数量(从0到c/wr),更新答案,复杂度√c;否则,假设hr/wr<hb/wr,得到hr*wb<hb*wr,由这个等式可知,在有wb*wr重量限制的 阅读全文
posted @ 2017-07-25 14:08 Wisdom+.+ 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 665C - Simple Strings 思路:贪心。为了保证最小改变着次数,在改变每个相邻相同的字符时,保证改变后的字符和后面也不相同。 代码: 阅读全文
posted @ 2017-07-24 16:31 Wisdom+.+ 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 604B - More Cowbell 思路:贪心。如果有些盒子装一个,那就只装最大的那几个。然后剩下的最大的和最小的合在一起装一个盒子,第二大和第二小的合在一起。。。。。。以此类推。 记录最大的盒子容量。 代码: 阅读全文
posted @ 2017-07-24 15:36 Wisdom+.+ 阅读(232) 评论(0) 推荐(0) 编辑