Shirlies
宁静专注认真的程序媛~
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页
摘要: 看到《挑战编程》这本书,然后就试试做做上面的题目,之前已经在hdu上面过了这一题了,但是现在看到这一题,我是再想怎么可以运行更少的时间……这里用了一个数组,记录已经计算出的值,结果时间缩短了10倍但是我注释的地方不知道为什么会用问题,如果加上那一段就会RE~_~代码如下: 1 #include <iostream> 2 #include <cstring> 3 using namespace std; 4 5 int vis[1000000+10]; 6 int get_value(int x) 7 { 8 if(vis[x] != 0) return vis[x]; 阅读全文
posted @ 2012-08-08 16:56 Shirlies 阅读(272) 评论(0) 推荐(0) 编辑
摘要: 广搜要记录方格里面不同状态时行走的步数注意当当前行走的步数大于记录的步数时要剪枝(当然,在记录方格不同状态时的值不为-1时)代码如下: 1 #include <iostream> 2 #include <cstring> 3 #include <queue> 4 using namespace std; 5 6 struct node 7 { 8 int x,y; 9 int step; 10 int state; 11 }; 12 char map[105][105]; 13 int R,C; 14 int sx,sy; 15 int used[1... 阅读全文
posted @ 2012-08-05 00:01 Shirlies 阅读(225) 评论(0) 推荐(0) 编辑
摘要: 写的程序运行时间不给力~_~……我用二进制表示状态做的……代码中解释……代码如下: 1 #include <iostream> 2 using namespace std; 3 4 struct spell 5 { 6 int ai,mi; 7 }ss[12]; 8 int n,HP; 9 int minn;10 11 void dfs(int x,int hp)12 {13 if(hp <= 0)//当hp值要小于等于0时,查看x中有多少个1,即用了多少个spell14 {15 int res = 0;16 for(int i = 0... 阅读全文
posted @ 2012-08-03 16:20 Shirlies 阅读(281) 评论(0) 推荐(0) 编辑
摘要: 广搜我用path记录路径,初始为-1,并且可以用path标记该点是否走过,如果为-1则表示没有走过,一举两得,然后用print递归输出路径。在记录路径时我是将点的坐标转化为一个数值即X*M+Y,当输出路径的时候可将path里面的值转化为坐标……代码如下: 1 #include <iostream> 2 #include <queue> 3 #include <cstdio> 4 using namespace std; 5 6 const int maxlen = 100 + 10; 7 struct place 8 { 9 int x,y; 10 in.. 阅读全文
posted @ 2012-07-31 11:03 Shirlies 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 直接用string类里面的一些函数先排序,然后用最短的那个字符串的子串跟其他字符串的子串比较。。。代码如下: 1 #include <iostream> 2 #include <string> 3 #include <algorithm> 4 using namespace std; 5 6 bool cmp(const string& a,const string& b) 7 { 8 return a.size() < b.size(); 9 }10 11 void inverse(string& aim)12 {13 str 阅读全文
posted @ 2012-07-26 11:04 Shirlies 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 看到有人0ms爽过,我781ms过,心里有点不是滋味儿......还是说说自己的思路吧:1、根据题目的意思我们就应该知道是将原来的数据右移(譬如第二位移到第一位),当然了最高位应该被最低位的数补充——这个可以很完美的用矩阵实现,即每列比行大一的位置为0,譬如第一行,第二列的数据为1,但是最后一行是第一列和最后一列为1.2、移动后的数据与原数据异或得到一次移动后的结果,这个直接可以将主对角线上的数据变为1(经过以上两步构造矩阵后,矩阵相乘时,就把原来的数据与现在的数据相加了),然后所得的数据要模2,为什么这个可以替代异或呢?其实异或本来就是朴素的加法(二进制的),只不过1+1=10,我们取得是最 阅读全文
posted @ 2012-06-18 18:21 Shirlies 阅读(540) 评论(0) 推荐(0) 编辑
摘要: 安装类的事情还真是很纠结的说。。。查了资料之后,(我用的是xampp)总结如下:1、把php文件目录下的libeay32.dll和ssleay32.dll复制到windows/system32下2、把php文件目录下ext文件中的php_curl.dll也复制到windows/system32下3、修改配置文件(记得不要改错文件了,我就是改错了,被自己坑了。。。):在php文件目录下有一个叫php的配置设置,把里面的extension=php_curl.dll 前面的分号去掉。4、重启apache。参考内容来源于:http://www.niutian365.com/blog/article.a 阅读全文
posted @ 2012-06-18 11:44 Shirlies 阅读(4765) 评论(2) 推荐(0) 编辑
摘要: 表示这一题可以直接用4*4矩阵做,前提是看了解题报告来着。。。http://blog.csdn.net/lansetiankong_yiyi/article/details/5828239这个解题报告的第二种方法令我佩服,灵活应用了矩阵,关键是构造矩阵这一块我不太会我们来设置这样一个矩阵BIOI其中O是零矩阵,I是单位矩阵将它乘方,得到B^2I+BOI乘三方,得到B^3I+B+B^2OI 乘四方,得到B^4I+B+B^2+B^3OI 这个矩阵构造的令我佩服,记住了。。。然后这个矩阵的实现可以直接用4*4矩阵。。。然后呢,就是代码。。。代码如下: 1 #include <cstdio> 阅读全文
posted @ 2012-06-15 23:02 Shirlies 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 这一题要用差值排序,用Bi排序是不可以的,譬如容量为20,有两个5,17和1,16,如果用bi排序就要先放5,17,然后还剩下15,不可以放1,16了,而如果先放1,16还剩下19就可以放5,17.。。。至于其中的真理我没有仔细研究,敲完代码提交A了后看了一下别人的思路,觉得这个解释的不错http://hi.baidu.com/niren_cn/blog/item/11c701915d393b1e7af4807a.html代码如下: 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 阅读全文
posted @ 2012-06-10 15:59 Shirlies 阅读(600) 评论(0) 推荐(0) 编辑
摘要: 这两个解题报告比较详细:http://wutyyzchangde.blog.163.com/blog/static/172226566201132311311374/我主要是参考这个解题报告的http://www.cnblogs.com/zjh10/articles/2035938.html这个可以看看。。。代码如下: 1 #include <cstdio> 2 #include <cstring> 3 4 typedef __int64 ll; 5 struct node 6 { 7 ll matrix[2][2]; 8 }; 9 10 ll pow_mod(ll a 阅读全文
posted @ 2012-06-07 09:47 Shirlies 阅读(386) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 21 下一页