![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
小技巧
mosquito_zm
这个作者很懒,什么都没留下…
展开
-
【Codeforces Round #404 (Div. 2)】 B 连通块(思考)
题目链接题意:给你n个点m条边 如果每个联通块都是完全图 则输出YES题解:并查集处理出联通块。 点的度=当前联通块中的点的个数-1代码如下:#include #include #include using namespace std;const int maxn = 150000 + 20;int n,m;int deg[maxn];int fa[maxn];原创 2017-03-27 15:35:27 · 213 阅读 · 0 评论 -
FZU 2150 Fire Game(搜索)(从两点出发)
题目链接题解:本体数据范围较小,暴力搜索即可解决问题。注意在搜索时,由于有两个出发点,要将两个出发点同时塞进搜索的队列中去,在进行搜索,就可以同时计算两个起点的搜索。代码如下:#include #include #include #include #include #include #include using namespace std;const int maxn =原创 2017-08-04 21:46:50 · 290 阅读 · 0 评论 -
2017 Multi-University Training Contest 1001 (简单)(技巧)
题目链接题解:题目等价于求2^m-1在十进制下的长度-1,所以答案就是log10(2 ^ m - 1) 。由于2 ^ m 一定不等于10的某次幂,所以2^m 与2 ^ m - 1是同样的长度。所以答案应该为log10(2 ^ m - 1) = log10(2 ^m) = m * long(2) (向下取整)代码如下:#include using namespace std;in原创 2017-07-26 12:50:19 · 240 阅读 · 0 评论 -
树状数组求逆序对(要离散化)
给定n个数,要求这些数构成的逆序对的个数。除了用归并排序来求逆序对个数,还可以使用树状数组来求解。树状数组求解的思路:开一个能大小为这些数的最大值的树状数组,并全部置0。从头到尾读入这些数,每读入一个数就更新树状数组,查看它前面比它小的已出现过的有多少个数sum,然后用当前位置减去该sum,就可以得到当前数导致的逆序对数了。把所有的加起来就是总的逆序对数。题目中的数都是独一无二的,这些数最转载 2017-04-02 14:15:43 · 383 阅读 · 0 评论 -
hdu6063 RXD and math(数学/打表)
题目链接题解(伪):可以打表找下规律,就会发现答案为n^k,直接快速幂即可正解:注意到一个数字xx必然会被唯一表示成a^2\times ba2×b的形式.其中|\mu(b)| = 1∣μ(b)∣=1。 所以这个式子会把[1, n^k][1,nk]的每个整数恰好算一次. 所以答案就是n^knk,快速幂即可. 时间复杂度O(\log k)O(log原创 2017-08-02 10:52:29 · 336 阅读 · 0 评论 -
解决静态查找相同串或者有相同前缀的所有串的好方法
方法一:可以将所有带查询的串进行排序,然后就可以发现,只有排序后相邻的串才可能相同(或者有相同的前缀)。所以,在那之后,只需要从头扫一遍,即可得到答案方法二:将所有带查询的穿按位进行哈希,然后在哈希的结果中查找是否有相同的串(或相同前缀)原创 2017-07-23 17:10:19 · 398 阅读 · 0 评论 -
分解质因数的技巧
在ACM比赛中,我们经常要分解质因数。那么我们应当如何快速分解质因数呢?其实,在我们用筛法求素数时,我们使用线性筛的方法,并在每次筛的过程中,记录下每个数的最小质因数。那么在分解质因数的时候,我们只需要不断除每个数的最小质因数,就可以快速得到分解的质因数。(不要用试除法了。。)原创 2017-07-08 20:17:18 · 2552 阅读 · 0 评论 -
Educational Codeforces Round 19 F(dp+队列优化)
网址:http://codeforces.com/contest/797/problem/F显然,要先排序。我们可以先处理出所有老鼠到所有洞的距离,p[i][j]表示第j只老鼠到第i个洞的距离。由于我们每次求的时候都是一段区间的老鼠到一个洞中,所以我们可以通过求前缀和优化计算。对于p[i][j],其前缀和为d[i][j],表示前j只老鼠都进入i洞中所需要的花费。在实际运算中,因为我原创 2017-07-07 12:42:10 · 326 阅读 · 0 评论 -
求逆序对做法
1,改进归并排序2,离散化+树状数组原创 2017-04-10 11:31:09 · 345 阅读 · 0 评论 -
Codeforces Round #404 (Div. 2) C(数学)(精度)
题目链接题目解答:显然,这是一道数学题。先考虑特殊情况,nm时,经过计算可得,答案为ans = ceil((sqrt(8 * (n - m) + 1) - 1) / 2);但是直接计算会有精度误差。所以我的解决办法是先将计算出来的结果减去100,再用一个whlie循环一个一个的加,并判断当前结果是否满足原始的算式。(微调结果))PS: long double 好像不能用printf原创 2017-03-22 13:31:46 · 530 阅读 · 0 评论 -
Codeforces Round #428 (Div. 2) E 推理+求最大团(中途相遇法)(状态压缩)(代码能力)
题目链接答案:Lemma : Let G be a simple graph. To every vertex of G we assign a nonnegative real number such that the sum of the numbers assigned to all vertices is 1. For any two connected vertice原创 2017-08-14 22:19:02 · 327 阅读 · 0 评论