10 2011 档案

HDOJ 1098 Ignatius's puzzle
摘要:由于x取任何值都需要能被65整除.假设f(x)成立的基础上,证明f(x+1)也成立.那么把f(x+1)展开(使用二项式),然后提取出5*x^13+13*x^5+k*a*x(即f(x))。若f(x+1 )=f(x)+y能被65整除,只需要除y能被65整除.那么也只要求出18+k*a能被65整除就可以... 阅读全文

posted @ 2011-10-10 22:39 AdaByron 阅读(361) 评论(0) 推荐(0)

HDOJ 1097 A hard puzzle
摘要:一道规律题目,同题目Rightmost Digit一样的性质,较易。 #include int main(){ int v,result,circle; __int64 a,b; while(scanf("%I64d%I64d",&a,&b)!=EOF) { ... 阅读全文

posted @ 2011-10-10 22:27 AdaByron 阅读(209) 评论(0) 推荐(0)

HDOJ 1068 Girls and Boys
摘要:题目理解一下就是求二分图的最大独立集。而二分图的最大独立集数=节点数(n)— 最大匹配数(m)。所以关键在于求二分图的最大匹配数。 二分图的最大匹配数可以使用匈牙利算法解答,其理论依据为:http://www.cnblogs.com/AdaByron/articles/2200978.html #... 阅读全文

posted @ 2011-10-10 22:12 AdaByron 阅读(386) 评论(0) 推荐(0)

HDOJ 1063 Exponentiation
摘要:大数乘法,过不了只能说明测试用例不完备。贴几组测试用例: 5.1004 15 41120989454.314570363993506408035342551967503175087477761156936917581824 000.10 20 .00000000000000000001 12.... 阅读全文

posted @ 2011-10-10 15:06 AdaByron 阅读(399) 评论(2) 推荐(0)

HDOJ 1062 Text Reverse
摘要:使用变量记录开始反转的位置,很不错的方法。 #include using namespace std;int main(){ int t; cin>>t; getchar(); while(t--) { char a[1001]; cin.... 阅读全文

posted @ 2011-10-10 14:54 AdaByron 阅读(304) 评论(0) 推荐(0)

HDOJ 1061 Rightmost Digit
摘要:纯粹的找规律的题目。N的次方的结果的末尾数是有循环的,且所有的循环的大小不大于四,所以有以下解法。 #include int main(){ int num,result; __int64 value; scanf("%d",&num); while(num--) ... 阅读全文

posted @ 2011-10-10 14:51 AdaByron 阅读(382) 评论(0) 推荐(0)

HDOJ 1060 Leftmost Digit
摘要:同样使用lg值计算最高位。任意一个数都可以表示为科学计数法的性质,即N^N=a*10^x,所以最高位就是a的整数部分。 1.怎样去除10^X呢? 取lg的对数然后去除整数部分,然后将小数部分再取10的指数得到的值就是a。 2.怎样去取最高位。对a取整即是。 所以有代码: #include #inc... 阅读全文

posted @ 2011-10-10 14:45 AdaByron 阅读(313) 评论(0) 推荐(0)

HDOJ 1056 HangOver
摘要:简单的题目,我的解法采用预处理,然后使用折半查找返回答案。 #includedouble answer[300];int len=0;double num;int binarySearch(){ int l=1,r=len,half; while(l=5.20) ... 阅读全文

posted @ 2011-10-10 14:35 AdaByron 阅读(311) 评论(0) 推荐(0)

HDOJ 1045 Fire Net
摘要:起始的时候是按照上下左右进行搜索的,然后不幸栈溢出。参考别人的实现才发现,原来迷宫还可以以索引为深度进行搜索。更改之后果断AC。由于搜索的时候是自左而右、自上而下的放置的,所以判断是否可以放置时,只需要判断左上的部分即可。 #include char maze[6][6];int num,resu... 阅读全文

posted @ 2011-10-10 14:24 AdaByron 阅读(748) 评论(0) 推荐(0)

HDOJ 1044 Collect More Jewels
摘要:题目比一般的图类的题目稍微绕了点弯子。要根据问题建立解题所需要的图。起始点@和终止点using namespace std;#includeint width,height,jewelsNum;struct Point{ int col,row,value;};struct Map{ ... 阅读全文

posted @ 2011-10-10 14:15 AdaByron 阅读(465) 评论(0) 推荐(0)

HDOJ 1042 N!
摘要:直接的大数相乘问题,无话可说。 #include#include using namespace std;#define DEEP 1000000000void mul(__int64* s,int a){ int assist=0; for(int j=1;j0) { ... 阅读全文

posted @ 2011-10-10 09:56 AdaByron 阅读(392) 评论(0) 推荐(0)

HDOJ 1028 Ignatius and the Princess III
摘要:典型的母函数题目,所以无话可讲。直接套用公式求解即可。 //#include #include using namespace std;int main(){ //fstream cin("Ignatius and the Princess III.txt"); unsigne... 阅读全文

posted @ 2011-10-10 09:31 AdaByron 阅读(156) 评论(0) 推荐(0)

HDOJ 1027 Ignatius and the Princess II
摘要:如果知道STL函数库中的next_permutation函数,此题丝毫没有难度。然后可以反复调用此函数即可。我在此基础上做了优化。因为第N!th的序列都相当于将序列的后n位逆序排列。所以可以在调用next_permutation函数之前,优化前N!次调用(N!#include using name... 阅读全文

posted @ 2011-10-10 09:27 AdaByron 阅读(239) 评论(0) 推荐(0)

HDOJ 1026 Ignatius and the Princess I
摘要:题目倒是简单,只不过要记录走过的路径和输出时候的特别格式让人很纠结。我使用指针记录父节点的数据,当找到解答的时候就根据指针反向遍历整个路径,并将路径上得节点压入栈中。在输出位置依据格式出栈输出即可。 #include #include using namespace std;#include#in... 阅读全文

posted @ 2011-10-10 09:16 AdaByron 阅读(495) 评论(0) 推荐(0)

HDOJ 1023 Train Problem II
摘要:火车调度的可行性满足卡特兰数,所以可以直接用卡特兰数的递推公式解题。由于题目N的范围是1~100,所以需要使用大数计算。卡特兰数的递推公式为: F(n)=F(n-1)*(4n-2)/(n+1) #include #define DEPTH 10000;int a[101][16];void ktl... 阅读全文

posted @ 2011-10-10 08:46 AdaByron 阅读(416) 评论(0) 推荐(0)

HDOJ 1020 Encoding
摘要:字符串编码,无话可说,直接上代码。 #include#include using namespace std;int main(){ int Num; cin>>Num; for(int i=0;i>str; length=str.length(); ... 阅读全文

posted @ 2011-10-09 17:32 AdaByron 阅读(190) 评论(0) 推荐(0)

HDOJ 1018 Big Number
摘要:此题需要一些小小的数学知识。lg(N!)=lg(1)+lg(2)+…+lg(N)。而一个数的位长也刚好是其lg值+1。所以有以下代码: #include#includeint main(){ int caseNum,end; double result; scanf("%d",&c... 阅读全文

posted @ 2011-10-09 17:09 AdaByron 阅读(291) 评论(0) 推荐(0)

HDOJ 1016 Prime Ring Problem
摘要:简单的深度优先搜索,但是需要注意尾节点与首节点之和同样必须为素数。 View Code 1 #include 2 #include 3 #include 4 5 int num; 6 int result[21]; 7 bool visited[21]; 8 bool pr... 阅读全文

posted @ 2011-10-09 16:53 AdaByron 阅读(170) 评论(0) 推荐(0)

HDOJ 1015 Safecracker
摘要:题目不具有单调性,所以求导可以忽略。考虑参数在有限的可选值之中,所以可以选择了深度优先。确定搜索变量为5个参数,然后进行深度优先搜索,并在深度为5时终止搜索,判断状态。 View Code 1 #include 2 #include 3 using namespace std;... 阅读全文

posted @ 2011-10-08 17:31 AdaByron 阅读(392) 评论(0) 推荐(0)

最近点对问题
摘要:最近点对问题定义:已知上m个点的集合,找出对接近的一对点。 在二维空间里,可用分治法求解最近点对问题。预处理:分别根据点的x轴和y轴坐标进行排序,得到X和Y,很显然此时X和Y中的点就是S中的点。 情况(1):点数小于等于三时: ... 阅读全文

posted @ 2011-10-07 23:53 AdaByron 阅读(12099) 评论(0) 推荐(2)

HDOJ 1003 Max Sum
摘要:一维度的动态规划题目,只需要一个临时变量记录当前最大值即可。起始点与终点的记录算是很巧妙,增加两个变量达到目的。 View Code 1 #include 2 3 int main() 4 { 5 //freopen("Max Sum.txt","r",stdin);... 阅读全文

posted @ 2011-10-07 23:19 AdaByron 阅读(260) 评论(0) 推荐(0)

导航