![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
BITACM
文章平均质量分 65
pizzaaaaa
这个作者很懒,什么都没留下…
展开
-
BITACM 1043 缘分
这题算是中难题吧。如果是暴力统计的方法,复杂度O(n^2),必TLE。将题目的模型抽象出来,我们要做的就是给你若干个n维的点,确定里面最近的两个点(这里的距离定义为曼哈顿距离),并输出点的标号。我们先考虑二维的情况。假定有两个点(x1,y1),(x2,y2)。则dis=|x1-x2|+|y1-y2|。考虑将其展开,那么一共有四种情况,分别是:x1-x2+y1-y2x原创 2014-03-04 20:47:22 · 510 阅读 · 0 评论 -
网络教室 Xor Sum
给定n个数,求取若干个数,使得这些数异或和最大.贪心:按位从高到低进行处理,若某一个数的第i位的值是1,则将其他第i位上是1的数都与之异或,可以证明这样贪心地做是正确的,顺带提一句,这样的过程很像gauss消元.原创 2014-11-03 22:30:47 · 414 阅读 · 0 评论 -
2014校赛 猫和老鼠
题目描述 Tom 和 Jerry 的故事又开始了。一天Jerry在偷得k块奶酪之后要返回自己的家中。现已知Jerry目前的位置在数轴上的坐标为0,Jerry的家在数轴上的坐标为n,Jerry每次只能从i处走到i+1处。初始时刻Jerry在每一点处都有的概率被Tom发现,而在数轴上坐标为i的地方,Jerry可以选择吃掉一块奶酪来提升自己的行动能力。由于距离的原因,Jerry在坐标为i原创 2014-05-15 21:51:51 · 857 阅读 · 0 评论 -
BITACM 1053 Han Xin Count Soldiers
很经典的一道多个同余式求解的题目。中国剩余定理只能解决每个mod的数两两互素的情况,但是我们通过方程合并可以很简单地处理不互素地情况。比如有两个同余方程: x = a1modb1 x = a2modb2那么我们可以把他们改写成这样的形式:x=a1+b1y1 x=a2+b2y2合并为一个方程:a1+b1y1 = a2+b2y2化简:b1y1 = a2-a1 +b2y2那么原创 2014-03-06 21:41:42 · 594 阅读 · 0 评论 -
BITACM 1056 A^B mod C v3.0
最BT的一个版本吧。。。A,C的范围比较小,但最好还是考虑一下乘法溢出的问题。B有100w位,那肯定是不能硬算的。注意到取模有这样的一个公式: A^B = A^(B mod phi(C)+ phi(C)) mod C。那么这题就可做了。对B进行预处理然后快速幂即可。#include "cstdio"#include "cstring"#include "cmath"#原创 2014-03-06 21:46:49 · 608 阅读 · 0 评论 -
BITACM 1050 Diophantus of Alexandria
题目大意:给定你一个n,问你有多少对x,y满足1/x+1/y=1/n。首先,x,y>n。我们设x=n+k(k>0)。那么1/y=1/n-1/(n+k)=k/(n^2+k*n)注意到y一定是整数,所以可以考虑把k除下来。那么(n^2+k*n)/k一定是一个整数。那么k|n^2。k的个数一定是奇数个,考虑到x,y的大小问题。最后的答案应该是k的个数加1再除以2。那么n^原创 2014-03-06 21:29:48 · 528 阅读 · 0 评论 -
BITACM 1046 Leftmost Digit
这题还是自己想出来的,也是受白书上一题的启发(大概是求和大组合数有关的问题)。题目要求n!最左边的那个数。n!的增长速度是非常快的,并且这题的n也比较大,O(n)的做法应该是会TLE的。考虑对n!取对数,当n比较小的时候(我取的大概是1w),可以直接求对数然后取小数位,再查对数表就可以知道最左边那一位了。当n比较大的时候,我们就要利用一个叫做斯特灵公式的东西。然后再求对数。#i原创 2014-03-04 21:00:08 · 489 阅读 · 0 评论 -
BITACM 1045 A^B mod C v2.0
这类高精度问题需要注意数据的范围。这题A,B,C都达到了long long的范围,那么你做乘法就会有一个溢出的问题。所以你需要一个特殊的mul_mod函数来处理乘法。。。这个函数援引自aekdycoin的博客。#include "cstdio"#define LL long long/*LL mul_mod(LL a,LL b,LL n){ if(b==1) retur原创 2014-03-04 20:53:08 · 695 阅读 · 0 评论 -
BITACM 1047 Fibonacci Numbers
矩阵快速幂,没啥好说的。。。当时写得还是蛮难看的。#include#include#define LL long longusing namespace std;LL m;LL a[2][2];LL b[30];LL f1(LL n){ LL len=0; while(n) { b[len++]=n%2; n/=2;原创 2014-03-04 21:04:06 · 472 阅读 · 0 评论 -
BITACM 1044 A^B mod C
嗯,就是一道快速幂取模。注意到c是比较小的,可以考虑每次预处理a对c取模。#include "cstdio"#define LL long longLL pow_mod(LL a,LL p,LL n){ if(p==0) return 1%n; LL ans=pow_mod(a,p/2,n); ans=ans*ans%n; if(p%2==1) an原创 2014-03-04 20:50:17 · 561 阅读 · 0 评论 -
网络教室 树上不同直径的数目
先预处理出一条树的直径,注意直径上中点的处理原创 2014-11-03 22:29:33 · 489 阅读 · 0 评论