随笔分类 - /* 圣人不死 AC不止!*/
coding不息!
摘要:题目传送门 1 /* 2 题意:有n个点,用相同的线段去覆盖,当点在线段的端点才行,还有线段之间不相交 3 枚举+贪心:有坑点是两个点在同时一条线段的两个端点上,枚举两点之间的距离或者距离一半,尽量往左边放,否则往右边放, 4 判断一下,取最大值。这题...
阅读全文
摘要:题目传送门 1 /* 2 三分:凹(凸)函数求极值 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN = 1e4 + 10;11 const int ...
阅读全文
摘要:题目传送门 1 /* 2 二分搜索:式子两边取对数,将x提出来,那么另一边就是一个常数了,函数是:lnx/x。二分搜索x,注意要两次 3 */ 4 #include 5 #include 6 #include 7 using namespace std; 8 9 const dou...
阅读全文
摘要:题目传送门 1 /* 2 二分搜索:枚举高度,计算体积与给出的比较。 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN = 1e3 + 10;11 ...
阅读全文
摘要:题目传送门 1 /* 2 题意:给出一个数,问是否有ai + bj + ck == x 3 二分查找:首先计算sum[l] = a[i] + b[j],对于q,枚举ck,查找是否有sum + ck == x 4 */ 5 #include 6 #include 7 #incl...
阅读全文
摘要:题目传送门 1 /* 2 题意:一个汉堡制作由字符串得出,自己有一些原材料,还有钱可以去商店购买原材料,问最多能做几个汉堡 3 二分:二分汉堡个数,判断此时所花费的钱是否在规定以内 4 */ 5 #include 6 #include 7 #include 8 using na...
阅读全文
摘要:题目传送门 1 /* 2 题意:n*m列的矩阵,删除一个格子x,y。用矩形来填充矩阵。且矩形至少有一边是在矩阵的边缘上。 3 求满足条件的矩形填充方式中面积最大的矩形,要使得该最大矩形的面积最小。 4 分析:任何矩形都可以分为宽度为1的小矩形,所以只考虑矩形的可以的最小长度即...
阅读全文
摘要:题目传送门 1 /* 2 题意:每个点都要有偶数条边,且边染色成相同的两部分,问能有多少种染色方法 3 DFS+剪枝:按照边数来DFS,每种染色数为该点入度的一半,还有如果点不是偶数边就不DFS 4 这是别人的DFS,写的精简强大,膜拜之。。。 5 */ 6 ...
阅读全文
摘要:题目传送门/* 题意:一无向图,问至少要割掉几条边破坏最短路,问最多能割掉几条边还能保持最短路 SPFA+Dinic:SPFA求最短路时,用cnt[i]记录到i最少要几条边,第二个答案是m - cnt[n] 最大流==最小割,套个Dinic模板,以后再理解...
阅读全文
摘要:题目传送门 1 /* 2 题意:问有几个区间最大值-最小值 8 #include 9 #include 10 #include 11 using namespace std;12 13 typedef long long ll;14 const int MAXN = 1e5 + 10;1...
阅读全文
摘要:题目传送门 1 /* 2 定义两个数组,l[i]和r[i]表示第i个数左侧右侧接近它且值是a[i]因子的位置, 3 第i个数被选择后贡献的值是(r[i]-i)*(i-l[i]),每个数都枚举它的因子,更新l[i], r[i],复杂度O(n*sqrt(a[i])) 4 */ 5...
阅读全文
摘要:题目传送门 1 /* 2 题意:求一个点为根节点,使得到其他所有点的距离最短,是有向边,反向的距离+1 3 树形DP:首先假设1为根节点,自下而上计算dp[1](根节点到其他点的距离),然后再从1开始,自上而下计算dp[v], 4 此时可以从上个节点的信息递推...
阅读全文
摘要:题目传送门 1 /* 2 KM: 相比HDOJ_1533,多了重边的处理,还有完美匹配的判定方法 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN =...
阅读全文
摘要:题目传送门 1 /* 2 最小费用流:KM算法是求最大流,只要w = -w就可以了,很经典的方法 3 */ 4 #include 5 #include 6 #include 7 #include 8 using namespace std; 9 10 const int MAXN =...
阅读全文
摘要:题目传送门 1 /* 2 KM:裸题第一道,好像就是hungary的升级版,不好理解,写点注释 3 KM算法用来解决最大权匹配问题: 在一个二分图内,左顶点为X,右顶点为Y,现对于每组左右连接Xi,Yj有权w(i,j), 4 求一种匹配使得所有w(i,j)的和...
阅读全文
摘要:题目传送门 1 /* 2 BFS:三维BFS,坐标再加上步数,能走一个点当这个地方在步数内不能落到。因为雕像最多8步就会全部下落, 3 只要撑过这个时间就能win,否则lose 4 */ 5 #include 6 #include 7 #include 8 #inclu...
阅读全文
摘要:题目传送门 1 /* 2 构造:从大到小构造,每一次都把最后不是9的变为9,p - p MOD 10^k - 1,直到小于最小值。 3 另外,最多len-1次循环 4 */ 5 #include 6 #include 7 #include 8 #include 9 us...
阅读全文
摘要:题目传送门 1 /* 2 最短路: 不仅扫描边,还要扫描点;点有两种情况,一种刚好在中点,即从u,v都一样,那么最后/2 3 还有一种是从u,v不一样,两种的距离都是l 4 模板错了,逗了好久:( 5 */ 6 #include 7 #include...
阅读全文
摘要:题目传送门 1 /* 2 贪心:当m == 2时,结果肯定是ABABAB或BABABA,取最小改变量;当m > 2时,当与前一个相等时, 改变一个字母 3 同时不和下一个相等就是最优的解法 4 */ 5 #include 6 #include 7 #include...
阅读全文
摘要:题目传送门 1 /* 2 题意:求最少改变多少个0成1,使得每一个元素四周的和为偶数 3 状态压缩+枚举:枚举第一行的所有可能(1 7 #include 8 #include 9 using namespace std;10 11 const int MAXN = 20;12 con...
阅读全文