上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 53 下一页
摘要: A:开个桶统计一下,但是不要忘记k和0比较大小 #include<bits/stdc++.h> using namespace std; char s[1100]; int cnt[110]; int main() { int k; scanf("%s%d", s, &k); int n = str 阅读全文
posted @ 2017-08-25 08:53 19992147 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 高斯消元+矩阵的逆 来自popoqqq大神 求矩阵的逆:把I-T放在左边,P/Q*S放在右边,这样就形成了一个n*2n的矩阵,然后把左边高斯消元,右边就是求完逆的矩阵,其实就是ans,矩阵的逆跟乘法逆元是一样的,只不过是矩阵的逆元 然后输出a[i][n+1],事实上矩阵只有n*(n+1) 构造转移概 阅读全文
posted @ 2017-08-24 20:20 19992147 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 点分治/贪心 对于点分治的理解不够深刻...点分治能统计树上每个点对的信息,那么这里就是统计同种颜色点对之间的最大距离,自然可以用点分 然后点分,每次统计最大距离,但是略微卡常... 还有一种贪心的方法,每种颜色必然选以某点为根最深的节点,计算出最深的节点,然后dfs,看每种颜色,然后和最深的节点计 阅读全文
posted @ 2017-08-24 16:57 19992147 阅读(119) 评论(0) 推荐(0) 编辑
摘要: treap+并查集 我们能想到一个点和最近点对连接,用并查集维护,但是这个不仅不能求,而且还是不对的,于是就看了题解 把距离转为A(x-y,x+y),这样两点之间的距离就是max(x'-X',y'-Y'),那么就可以求了,我们按转换后的x排序,维护一个区间,最大的x和最小的x差不超过c,然后把y插进 阅读全文
posted @ 2017-08-24 09:41 19992147 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 二分+二分图匹配 晚上脑子不太好使。。。 行列模型,填充数量性质,种种迹象告诉我们这是二分图,但是我觉得好像不太科学就弃了网络流。。。 二分第k大值,转化为求第n-k+1小值,二分求匹配判定即可。 #include<bits/stdc++.h> using namespace std; const 阅读全文
posted @ 2017-08-22 22:51 19992147 阅读(119) 评论(0) 推荐(0) 编辑
摘要: 哈希 cf原题。。。没见过的话真想不出来 将邻接表排序哈希,判断是否相同,但是会漏掉两点相邻的情况,于是再把自己加入自己的邻接表,然后再哈希判断。 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int 阅读全文
posted @ 2017-08-22 22:45 19992147 阅读(171) 评论(0) 推荐(0) 编辑
摘要: dp+树状数组 一维排序,一维离散化,然后跑lis,其实就是一个二维偏序 #include<bits/stdc++.h> using namespace std; const int N = 200010; int dp[N], tree[N]; struct data { int x, y, p; 阅读全文
posted @ 2017-08-22 22:43 19992147 阅读(105) 评论(0) 推荐(0) 编辑
摘要: 高斯消元+搜索 很明显每个开关只能按一次,那么我们可以想到高斯消元,其实就是解异或方程组,但是最后会有一些自由元,也就是有x+y=z,x+y=z这种一样的方程就会产生自由元,那么我们爆搜自由元取值,每次把自由元回带入方程,因为形如x+y=z这样的方程就需要回带,然后就解出一组解,取最小值即可。这当然 阅读全文
posted @ 2017-08-22 22:37 19992147 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 二维单调队列 rmq很明显会超时,如果这个序列是一维的,很明显就是个单调队列,现在就是把一维的单调队列转换为二维单调队列。 先求出每一列的窗口极值,然后对于每一行做单调队列,值就是之前求出每个位置结尾的极值,这样就求出了每个正方形的极值。 写起来要注意一些。 #include<bits/stdc++ 阅读全文
posted @ 2017-08-22 22:30 19992147 阅读(202) 评论(0) 推荐(0) 编辑
摘要: 容斥原理+背包 首先每次做背包是不可行的,那么我们要优化一下,既然是有一些限制条件限制我们获得结果,我们就用容斥去弱化条件,也就是无视一些条件。 既然硬币是有限制的,那么我们就无视限制,用补集求答案,总方案-超限,但是超限也不好算,就用容斥,先跑完全背包求出总方案,然后减去一个超限,加上两个超限,减 阅读全文
posted @ 2017-08-22 22:20 19992147 阅读(185) 评论(0) 推荐(0) 编辑
上一页 1 ··· 20 21 22 23 24 25 26 27 28 ··· 53 下一页