![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
技巧_二分
TouchDreamer
这个作者很懒,什么都没留下…
展开
-
HDU 5726 GCD
题目分析 这道题时间给的比较长,但是处理不好很容易超时,自己刚拿到这道题只觉得求一段区间的gcd好求,但是问有多少个跟该区间的gcd一样,这个我感觉不怎么好处理,然后看了网上的做法,打ST表,这个很简单,就是一个动态规划,不理解的可以学一下,很简单的,第一步处理完之后很多需要处理,刚开始我是这样想的,处理出给定的区间的gcd之后,然后利用gcd的性质(选定一个点作为左端点,再不断枚举右端点会发现原创 2016-08-21 17:02:11 · 378 阅读 · 0 评论 -
LightOJ 1138 Trailing Zeroes (III)
题目分析 这道题刚开始拿到手中并没有什么好的想法,但是自己想一下会发现,n!我们会发现末尾含有0,说明相乘的时候必然可以拆分出2和5,同时是2的倍数明显比5的倍数多很多,那么我们找0的个数就等价于找5的个数,然后对于5的个数,我们通过二分是5的多少倍,同时我们需要求出是51,52,53,.....,5m5^1, 5^2, 5^3,....., 5^m的多少倍,累计即可。#include <cs原创 2017-01-17 10:17:43 · 188 阅读 · 0 评论 -
LightOJ 1138 Trailing Zeroes (III)
题目分析 这道题刚开始拿到手中并没有什么好的想法,但是自己想一下会发现,n!我们会发现末尾含有0,说明相乘的时候必然可以拆分出2和5,同时是2的倍数明显比5的倍数多很多,那么我们找0的个数就等价于找5的个数,然后对于5的个数,我们通过二分是5的多少倍,同时我们需要求出是51,52,53,.....,5m5^1, 5^2, 5^3,....., 5^m的多少倍,累计即可。#include <cs原创 2017-01-17 10:13:34 · 251 阅读 · 0 评论 -
POJ 1845 Sumdiv(逆元或者二分求解等比数列)
题目分析 本题是求ABA^B所有因子和对9901取模后的值。我们可以将A进行拆分。A=pk11∗pk22∗pk33.......∗pknnA = p_1^{k_1}*p_2^{k_2}*p_3^{k_3}.......*p_n^{k_n}那么可以得到AB=pk1B1∗pk2B2∗pk3B3.......∗pknBnA^B = p_1^{k_1 B}*p_2^{k_2 B}*p_3^{k_3 B}原创 2017-01-05 17:25:49 · 262 阅读 · 0 评论 -
Codeforces Round #379 (Div. 2)
A. Anton and Danik#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5+100;char s[maxn];int main(){ int n; while(scanf("%d", &原创 2017-01-04 13:17:19 · 205 阅读 · 0 评论 -
Codeforces Round #383 (Div. 2)
A. Arpa’s hard exam and Mehrdad’s naive cheat 找规律即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;int main(){ int n; while(scanf("%d", &n)原创 2016-12-16 12:21:26 · 281 阅读 · 0 评论 -
Codeforces Round #380 (Div. 2, Rated, Based on Technocup 2017 - Elimination Round 2)
A. Interview with Oleg 这道题主要就是判断ogo,如果前一个ogo与后一个ogo相连(也就是说前一个ogo的最后一个o作为后一个ogo的最前面的o),那么可认为这些ogo是一个部分,用∗∗∗***代替即可。#include <cstdio>#include <vector>#include <cstring>#include <iostream>#include原创 2016-11-21 11:47:26 · 302 阅读 · 0 评论 -
Codeforces Round #361 (Div. 2)
A. Mike and Cellphone 模拟即可。#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;char s[20];int main(){ int n; while(scanf("%d", &n) != EOF){原创 2016-11-29 20:41:33 · 197 阅读 · 0 评论 -
2016年中国大学生程序设计竞赛(杭州)
hdu ArcSoft’s Office Rearrangement 这道题做了好久未果,我感觉好难,为啥好多人都做出来了,自己就很气,发现自己发现合并只能与相邻的砖块合并,好气呀!!赛后补题用了2种方法去做它用于解气。 第一种方法纯模拟,如果当前值大于平均值直接分裂,多余的部分给右边,因为是从左往右进行的。注意用long long,不然估计又要哭一天!!!#include原创 2016-10-30 21:46:19 · 469 阅读 · 0 评论 -
codeforce 251 A(二分或者尺取法或者单调队列)
二分#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;#define LL long longconst int maxn = 1e5+100;LL a[maxn];int main(){ LL n, d; while(scanf("%原创 2016-10-19 19:49:48 · 311 阅读 · 0 评论 -
hihoCoder #1407 : 后缀数组二·重复旋律2
题目分析 如提示的那样,二分长度,然后进行判断即可。。#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5+100;int s[maxn];int sa[maxn],t[ma原创 2016-11-08 19:59:30 · 404 阅读 · 0 评论 -
HDU 5878 I Count Two Three(打表加二分)
题目分析 枚举所有可能的结果,然后二分即可。#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef long long LL;const int maxn = 1e7+5;LL arr[maxn];i原创 2016-09-19 18:13:53 · 267 阅读 · 0 评论 -
HDU 5884 Sort(二分加双队列优化)
题目分析 对于k来说,第一想法就是二分,因为每次去最小的几个元素,所以比赛的时候只想到了用priority_queue优化,但是很不幸超时了,因为每一次把东西塞进去需要logn的时间复杂度,因此想到了用双队列优化,先从第一个队列找到前k小的,然后将计算的结果丢进第二个队列,很明显,第二个队列里面的元素是递增的,每次找到第一个队列和第二个队列中最小的,然后找到需要的个数即可,知道处理到2个队列均为原创 2016-09-18 11:33:53 · 294 阅读 · 0 评论 -
HDU 4737 A Bit Fun(2013 ACM/ICPC Asia Regional Chengdu Online)
题目分析 求有多少区间并且区间里面所有数进行或运算的值小于m。首先知道或运算的性质,固定一个左端点,那么往右边进行或运算,那么这个值一定是不减的,那么这样就很明显了。首先预处理所有区间的进行或运算的值,这个直接用ST表即可,然后就在O(1)的时间内求出想要的结果。通过枚举左端点,然后二分查找的方法确定又断电,这样就可以得到结果了。#include <cmath>#include <cstdi原创 2016-09-14 16:35:56 · 309 阅读 · 0 评论 -
大学生程序设计邀请赛(华东师范大学)题解
B 分词 首先建字典树,然后简单dp一下可过,输出有坑!!,因为int没有改成double wa出血。#include <cmath>#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int MAX = 26;const int m原创 2017-05-15 20:56:52 · 539 阅读 · 0 评论