摘要: 题意:求一个数列中所有的绝对值差大于2的数,并用后面的数字减前面的数字的加和。 分析:可以用树状数组每次找前面的差值大于2的数,也可以直接每次加前面所有的数字,再减去差值为1的数字。题目最坑爹的是答案也许会爆long long,可以用long double或者使用unsigned long long 阅读全文
posted @ 2017-12-26 20:09 Meternal 阅读(274) 评论(0) 推荐(0) 编辑
摘要: 题意:给一个n行m列的矩阵,原矩阵按数字顺序从第一行开始向后填充,寻找一种方案使得原矩阵中相邻的数字在新矩阵中都不相邻。 分析:没有什么技术含量的一道构造题,试试就可以发现方案,很多人是用随机化过的这道题,但是对速度要求较高。比较稳定的方法是分两行或三行叉开放置,并且在第二行放置的时候先放两个最大的 阅读全文
posted @ 2017-12-26 15:31 Meternal 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/907/problem/E 题意:最多22个客人,每次选择一个人,可以使他的所有朋友互相都成为朋友,输出能使所有人互相都成为朋友的最少的选择次数和选择顺序 分析:数位dp,用dp[i]表示第i个状态里的人都互相是朋友所需要的最少选择次 阅读全文
posted @ 2017-12-26 15:13 Meternal 阅读(250) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/867/problem/E 题意:模拟股票操作,每天只能买一只股票或者卖一只股票或者什么也不做,求最大利润。 题解:仔细想想是非常简单的一个贪心问题,理解为连续的多次贪心买入卖出可以合并为一次的买入卖出,且值为最优。只需要用一个最小堆 阅读全文
posted @ 2017-11-28 18:02 Meternal 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/895/problem/C 题意:在1e5个数字中选一些数字,使他们的乘积为平方数。 题解:最大数字只有70,如果把每个数字分解为质因子,最多也只有19个可能的数字。乘积为平方数则此数字分解为的质因数个数都为偶数,可用异或转移表示为是 阅读全文
posted @ 2017-11-28 17:09 Meternal 阅读(348) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/893/problem/E 题意:给出1e5组询问,每组要求y个整数乘积为x,输出组合种类数。(x,y<=1e6) 题解:把x分解成它的所有质因子乘积的形式,例如18=2*3*3 则可以把每个质因子分解为可空的y份,可利用组合数计算。 阅读全文
posted @ 2017-11-28 16:15 Meternal 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/839/problem/D 题意:找出每种情况使得所有数字gcd不为1,对答案的贡献为gcd值乘数字个数。 题解:因为数字不大,可以哈希出每种数字的个数,然后从后往前,f[i]代表在gcd==i时存在的数字搭配种数。每次计算i时,要减 阅读全文
posted @ 2017-09-21 17:40 Meternal 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/contest/818/problem/E 题意:有多少种情况使得对数组剔除前缀x项和后缀y项后,中间的项乘积能被k整除 题解:直接记录区间乘积数字过大,利用取余的分配律 (a%x)*(b%x)==(a*b)%x,暴力枚举x,二分寻找最大的y,线段树 阅读全文
posted @ 2017-09-21 13:27 Meternal 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/problemset/problem/862/E E. Mahmoud and Ehab and the function time limit per test 2 seconds memory limit per test 256 megabyt 阅读全文
posted @ 2017-09-20 20:51 Meternal 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 题目:http://codeforces.com/problemset/problem/862/D 题意:交互题,询问15次以内Hamming distance,输出一个二进制串里任意一个0或1的位置 题解:极简单的二分,从最后一位先判断一个,然后二分 根据上次和本次的距离差是否等于二分长度判断在左 阅读全文
posted @ 2017-09-20 20:42 Meternal 阅读(279) 评论(0) 推荐(0) 编辑