- 博客(6)
- 资源 (2)
- 收藏
- 关注
转载 HDU 1395
讲解转载自:杭电Discuss 1)当n为1,无解。 2)n为偶数2^x显然为偶数,而1为奇数,2^n和1不可能关于n同余,x无解。 3)n为奇数时(n与2互素),由费尔马定理知当x=n-1为一解(但不一定是最小),此时暴力即可。值得注意的是,暴力时为了减小运算量,可以先取摸,再乘2,即代码中的i=(i%n)*2。否则会TLE。 代码(G++): #include #include
2014-01-21 12:42:10 705
原创 HDU 1266
今天写了基础题,是关于整型数翻转的,虽然不难,但是看到杭电讨论版块一些人说要注意前导0的错误说法,所以打算写一篇博客说明一下。(如果我说错了,请大家批评指正!) 首先这道题不存在有前导0的问题,因为题目给出了各种情况下的翻转方法,其中并没有说明如何处理前导0,所以如果题目和测试数据是严谨的话,就不该出现这种没有说明处理方法的特殊情况。实际上我的代码没有处理前导0,而且出现前导0的话,我的程序也不
2014-01-20 16:22:40 1025
原创 HDU 1701
这道题没用到任何算法,所以是道简单题,但是有些地方值得注意。 首先这道题的题意乍一看让人有点不明白,其实这道题目给出了ACMer的百分比范围,所以总的学生人数分别乘以P和Q至少得出的人数要相差1,又由于题目求最少学生人数,所以题目就是让你算总的学生人数分别乘以P和Q得出的人数相差1时的总学生数(因为如果总学生数越多,对于同样的P和Q,求出来的值相差就越多,反过来,如果求出的差值越
2014-01-19 13:22:27 912
原创 HDU 1196
这道题是一道需要用位运算的题目,题目所谓的lowest bit,其实是指1的最低位,我们只需将1和后面的0所构成的一个数以十进制的形式输出即可。 我们在这里需要用到位操作符中的“&”和一个用于试探的数字,这个用于试探的数字要求就是在二进制形式中只出现一个1,即00000001,00000010,00000100等等。让试探数字中的1从最低位开始逐渐向高位移动(这里就要用到另一个操作符“
2014-01-16 11:56:16 860
原创 HDU 1042
这道题是一道大数相乘的题目,本来不是太复杂,但是开始自己思路太死板,写了又长又有错的代码,在看完别人代码后才明白怎么做。另外提示一下,数组最好开到40000,否则可能算出的答案有问题。 代码(C++): #include #define MAX 40000 using namespace std; int main() { int array[MAX+1],n,k,t,
2014-01-15 11:47:12 606
原创 HDU 1098
这道题可以说主要是解决数学问题,代码是简单的。看到网上用人说用费马小定理,不过我数学不好,数论更不好,不过好在数学归纳法可以帮我们解决这一问题。其实这道题要求对任意的x能使65整除f(x),也暗示了用归纳法证明当f(n)成立时,f(n+1)成立,这样我们就只需求使f(1)满足条件的最小a。 简单证明如下: 如何对任意x都有65整除f(x),那么f(1)一定要成立(并且x等于0时
2014-01-15 11:38:34 746
Django web 开发指南源码(部分)
2015-03-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人