![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
math
zyz_3_14159
这个作者很懒,什么都没留下…
展开
-
codeforces715A-Plus and Square Root
题目大意:给你你个特殊的计算器,刚开始的时候计算器屏幕上的数字是2,并且处于level1,我们可以有两种操作:1.按下“+”,那么屏幕上的数字会加上当前的level;2.按下“sqrt”,就是开方,但是level会加1,并且要满足开方后的数要整除(level+1);题目解析:这类题目肯定有很多解,我们只需要找到一个通式就好了,我试了一下,对于level =k而言,首先屏幕上的数原创 2016-09-20 11:42:06 · 285 阅读 · 0 评论 -
POJ-1465-bfs,同余剪枝
题目大意:给定一个数n,和m个数,问求n的最小倍数使得这个数的每一位都是那m个数中的;题目解析:开始想的肯定是将这m个数慢慢dfs过去,注意如果bfs过程中如果遇到当前余数已经被发现就应该剪枝(同余定理),因为之前那个数肯定小,并且如果可以生成可行解也一定在之前那个数的基础上;AC代码:#include#include#include#include#includeusing原创 2017-03-11 21:51:17 · 341 阅读 · 0 评论 -
codeforces-743C-math
题目大意:给定n,求满足2/n=1/x+1/y+1/z的x,y,z的值题目解析:想到1/a+1/(a+1)+1/(a*a+a)=2/a,所以我们只要令x=a,y=a+1,z=a*a+a即可,注意n=1的时候y=z不可以;AC代码:#include#include#include#include#includeusing namespace std;typedef long原创 2016-12-15 15:00:24 · 788 阅读 · 0 评论 -
LightOJ-1132-矩阵快速幂,math
题目大意:给定n,k;求(1K + 2K + 3K + ... + NK) % 232题目解析:由[i^0,i^1,i^2,-----i^k]推出[(i+1)^0-----(i+1)^k],要用组合数公式,座椅构造矩阵就是组合数了,还要开个空间保存前面的sum即可;AC代码:#include #include #include #include #include原创 2016-11-19 13:20:54 · 226 阅读 · 0 评论 -
codeforces-734D-math
题目大意:给定一张无限大的国际象棋棋盘,有一个白皇后和若干个黑子,黑子有三种,车,象,皇后,问这张棋盘上是否有一个黑子能够一步到达白皇后的地方;题目解析:只要算出以白皇后为中心,八个方向上最近的黑色棋子并判断是否能到达白皇后即可;AC代码:#include#include#include#include#includeusing namespace std;int x,y;原创 2016-11-17 18:18:11 · 322 阅读 · 0 评论 -
LightOJ-1090-数论
题目大意:求C(n,r)*(p^q)末尾有几个0;题目解析:转化一下,就是求k*10^x的x的最大值,在转化一下,就是求(2^m1)*(5^m2)*k中m1和m2的最小值;AC代码:#include#include#include#include#includeusing namespace std;const int maxn=1000010;int two[maxn]原创 2016-11-29 18:26:05 · 343 阅读 · 0 评论 -
LightOJ-1060-dfs,组合数学
题目大意:给一段字符串,可以任意将其中两个字符进行交换,问最后所有的情况中按字典序排序的第k中情况是多少,如果没有就输出impossible;题目解析:按位枚举,从高位枚举,如果在当前位置后面的情况>=k,说明那个位肯定是正确的了,再枚举下一位,反之,将当前为的cur+1;AC代码:#include#include#include#include#includeusing n原创 2016-10-29 17:42:22 · 268 阅读 · 0 评论 -
LightOJ1007-Mathematically Hard-maths,前缀和
题目大意:定义score(i)为其欧拉函数的平方,现在问你区间[a,b]所有的score的值总和为多少;题目解析:首先我们要快速筛出所有数的欧拉函数,然后用前缀和计算,这样就不会超时,注意一定要unsigned long long;AC代码:#include#include#include#include#include#includeusing namespace std原创 2016-10-05 00:27:41 · 344 阅读 · 0 评论 -
LightOJ-1058-math
题目大意:给定n个点,没有4个点实在一条直线上的,问在所有点中,任取4个能构成平行四边形的有几种情况;题目解析:假设已经知道4个点坐标,判断是否为平行四边形的时候,只需判断他们对角线是否平分即可,即判断他们对角线的重点是否重合,由此想到,要把任意两点所表示的对角线边的中点预处理出来,接着遍历一遍即可;AC代码:#include#include#include#include#i原创 2016-11-08 18:33:50 · 191 阅读 · 0 评论 -
lightOJ1028-Trailing Zeroes (I) -math
题目大意:给定一个数,求这个数除了1有多少个约数;题目解析:首先肯定不能暴力枚举,会超时,那么我们就想到把每个数表示成素数幂的乘积形式,所以我们这里先要把素数打表打出来,然后枚举每个素数出现的次数并把他们乘起来,最后把答案减1,因为1不可以,枚举素数的时候有个技巧很关键否则会超时:如果当前prime[i]*prime[i]>n就要退出循环,如果此时n=1就不要管,如果n!=1则表示后面还有原创 2016-10-15 20:24:42 · 410 阅读 · 0 评论 -
LightOJ-1045-数论
题目大意:给定数字n和base,问n!在base进制下有几个数字;题目解析:第一感觉肯定需要预处理,那么如果一个一个乘肯定超时,设答案是ans,那么ans为base^(ans)>=n!中最小的那个ans,接着转化,乘不可以,我们转化为加,那么原式就可以变形为ans>=log(n!)/log(base);这样只需要预处理出log(n)的前缀和就好了;AC代码:#include#incl原创 2016-10-24 20:52:57 · 219 阅读 · 0 评论 -
LightOJ-1095-math
题目大意:给定n个自然数,在重新排列之后,要求前m个数有k个数在原来位置上,问一共有多少种排列;题目解析:我们肯定先从m个数选出k个数,那么肯定有个系数C(m,k),那么剩下肯定有错排的公式,错排的公式为d(n)=(n-1)*(d(n-1)+d(n-2));那么我们可以枚举后n-m个数有几个数字是原来的位置上,那么剩下的数就可以用错排公式了,而且组合数公式和错排公式要先预处理出来;AC代码原创 2016-11-04 15:39:51 · 304 阅读 · 0 评论 -
LightOJ1024-Eid-高精度乘单精度
题目大意:给你n个数,让你求他们的最小公倍数;题目解析:预处理把每个数的因数都分离出来,相同的因数取最大的,最小公倍数就是所有因数的最高次方相乘;AC代码:#include#include#include#includeusing namespace std;const int MAXN = 100010;int ans[MAXN], cnt[MAXN], len;int原创 2016-10-13 21:17:35 · 1037 阅读 · 0 评论 -
LightOJ-1042-math
题目大意:给定一个数,求一个比它大的数,使得他们二进制一的个数相同并且那 个数要最小;题目解析:考虑他的后缀肯定会出现011...1100...00的形式,我们需要做的就是把红色的0变成1,然后统计后面1的个数,设为n,去掉一个1,并且把所有1右移至顶端,最后形如100...00011...11的形式,注意如果所有字母都是1或者是11...1100...000的形式,要在最原创 2016-10-23 23:16:14 · 258 阅读 · 0 评论 -
codeforces785C-bindary search,math
首先居然跟出题人的小号分在一个room还被hack了无数次,不知道该不该开心呢?题目大意:有一个谷仓容量为n,每天一早有m吨谷物运进来,但晚上有跟天数一样的老鼠出来吃,问第几天谷仓第一次没有谷物;题目解析:一开始想着二分,还要注意边界不能爆LL,想一下最大的答案就是输入数据是1AC代码:#include#include#include#include#includeusi原创 2017-03-16 10:45:23 · 432 阅读 · 0 评论