07 2013 档案

1047找环环&1503整数探究
摘要:1047就是判断一个数乘以他的位数1~n后是这个数转来转去的一个形式。主要就是大整数乘法贴shi代码#include#include#includeusing namespace std;//test记录输入的数,back计算乘法之后的数int test[65];int back[65];//判断当前的n,是否构成一个环int iscyc(int N){ int i,j,k; bool eq=1; //将test作为一个基础,进行比较 for(i=0;i>onec) { pos=0; memset(test,0,sizeof(test)... 阅读全文

posted @ 2013-07-26 21:47 soyscut 阅读(164) 评论(0) 推荐(0)

poj1001求幂
摘要:这道题目是实质上就是高精度的乘法,虽然是带小数点的数多少次幂,但是开始我们需要将它变为整数进行求幂,然后再加上小数点,然后要考虑前导0,有效数位问题,做的时候要十分的小心#include#include#includeusing namespace std;int origin[6]; //输入不会超过6位int num[200]; //计算的结果int backnum[200];int main(){ string decim; int ep,i,j,k,numpos,value,resid,count; long fpos,efpos; //小数位... 阅读全文

posted @ 2013-07-26 21:33 soyscut 阅读(177) 评论(0) 推荐(0)

高精度计算——乘法与加法
摘要:高精度计算算是各种竞赛的基础性题目了,在poj上做了3道,就小小的总结一下。首先,高精度乘法。典型的例子是阶乘: 即输入n,计算n!#includeusing namespace std;const int maxn=3000;imt f[maxn];int main(){ int i,j,n; cin>>n; memset(f,0,sizeof(f)); f[0]=1; //初始时,设结果是1,则下面从2开始 for(i=2;i=0;j--) if(f[j]) break; //输入有效位 for(i=j;i>=0;i--) cout<<f[i];... 阅读全文

posted @ 2013-07-26 21:21 soyscut 阅读(192) 评论(0) 推荐(0)

(转)cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
摘要:学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;cin>>a>>b;coutusing namespace std;main (){char a[20 阅读全文

posted @ 2013-07-20 18:48 soyscut 阅读(261) 评论(0) 推荐(0)

poj3083走玉米地问题
摘要:走玉米地迷宫,一般有两种简单策略,遇到岔路总是优先沿着自己的左手方向,或者右手方向走。给一个迷宫,给出这两种策略的步数,再给出最短路径的长度。##########.#.#.#.#S.......E#.#.#.#.########## 迷宫示例前两种策略用DFS的方法,最后一种用BFS的方法分别确定路线。易错点:1.这道题目因为在走的时候遇到死路需要回头,且这个步数也要计算在内,所以不需要将走过的路设置标志。2.总是沿着当前的左边或者右边走,即方向需要不断调整贴代码如下: 1 #include 2 #include 3 #include 4 using namespace std; ... 阅读全文

posted @ 2013-07-12 09:55 soyscut 阅读(256) 评论(0) 推荐(0)

poj3984迷宫问题
摘要:一个5 × 5的二维数组,表示一个迷宫。其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求编程序找出从左上角到右下角的最短路线。很简单的一道题,迷宫问题,一般都选择两种优先搜索方法去解,最短路线问题应该要用BFS,而不是DFS. 这道题目还需要记录路线,所以还加有存储父节点的一个空间。贴代码如下(发现我只要是这两种方法,代码写的都不短啊):#include#include#includeusing namespace std;typedef class{public: int x,y; int fx,fy;}vertex;int maze[5][5];int . 阅读全文

posted @ 2013-07-12 09:46 soyscut 阅读(309) 评论(0) 推荐(0)

poj2488骑士之旅
摘要:题目大意:国际象棋里面的马,有那么8种跳法,然后题目给出一个棋盘的大小p*q, 求有没有路线可以使得这个马能把整个棋盘的格全部走一遍,有的话按照字典序将第一条路线打印出来。注意:国际象棋是行是数字,列是字母,按照字典序A1B3....,是需要按照先列后行来处理的。因为要找一条路径出来,所以考虑深度优先(DFS)贴一下烂代码(o(╯□╰)o):#include#includeusing namespace std;int chess[27][27];int path;bool exist=0;string rec;void DFS(int y,int x,int szy,int szx){ .. 阅读全文

posted @ 2013-07-11 21:24 soyscut 阅读(437) 评论(0) 推荐(0)

两种优先搜索方法简述
摘要:这两天刷了几道OJ上的搜索题,主要是深度优先搜索和广度优先搜索,简单的总结如下,深度优先搜索法(Depth-first Search):Depth-first search(DFS) is an algorithm for traversing or searching a tree, tree structure, or graph.One starts at the root (selecting some node as the root in the graph case) and explores as far as possible along each branch before 阅读全文

posted @ 2013-07-11 21:08 soyscut 阅读(379) 评论(0) 推荐(0)

poj1837挂砝码
摘要:解法(背包DP问题)(下为转)其实感觉 像此题这种类型的并不属于dp范畴虽然程序看起来使用的是递推这一过程,但总不能说开个二重循环就是dp吧如果只从求解上来讲(不考虑数据值的范围), 只有枚举这唯一途径, 而此题的复杂度为O(20^20), 大约等于 10^26, 微机是很难在短时间内求解的。而此题还有另一个限制, 就是数据值的范围, 虽然状态数那么多, 但是它们的范围有限这个时候, 状态产生大量重复, 于是, 程序可以优化为压缩这些重复状态, 从而减少开销在实现的过程中, 确实划分了阶段, 但这个过程更像是枚举, 优化过后的枚举在朴素枚举当中, 阶段数与复杂度呈指数关系, 而在此题这种特殊情 阅读全文

posted @ 2013-07-09 15:04 soyscut 阅读(236) 评论(0) 推荐(0)

导航