摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=2106计算一堆进制转换成10进制.#include #include using namespace std; int main(){ int n,a,b; char c,d;// freopen("test.txt","r",stdin); while(cin>>n) { int sum=0; while(n--) { cin>>a>>c>>b>>d; int i=0; ... 阅读全文
posted @ 2013-09-18 08:39 Destino74 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 开始对以前题目的总结,嘛,虽然都是水题。题目:http://acm.hdu.edu.cn/showproblem.php?pid=2088把所有砖移成一样高的最少移动块数,把所有高于AVG的砖移成AVG就是答案。#include using namespace std; int main(){ int a[50],sum,k=0,i,n; while(cin>>n,n) { sum=0; for(i=0;i>a[i]; sum+=a[i]; } sum/=n;... 阅读全文
posted @ 2013-09-18 08:33 Destino74 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=2821推箱子,往一个方向推,碰到单个箱子只消除,多个箱子则消除一个,其余往该方向位移一个单位.(2个以上箱子在边角不合法)不懂题意的话,去那个网址玩玩游戏就理解了.测试数据可以从那个游戏关卡来,基本上程序过个几关就OK了.#include using namespace std;int dir[4][2] = {-1,0,0,1,1,0,0,-1};char map[25][25];int R,C,top,n;int path[100]; bool flag ;void dfs(int t , int 阅读全文
posted @ 2013-09-15 20:58 Destino74 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=2514对8个位置填数,有连线的两个位置不能填连续的数.搜索时加上限定条件即可.除了搜索,记得还有一种更优雅的解法.#include using namespace std;int judge[8][8] = {{3,1,2,3},{4,0,2,4,5},{6,0,1,3,4,5,6},{4,0,2,5,6},{4,1,2,5,7},{6,1,2,3,4,6,7},{4,2,3,5,7},{3,4,5,6}};//judge[i][0] = 第i列相连点的数量,judge[i][j](j>0) = 阅读全文
posted @ 2013-09-15 20:53 Destino74 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 很暴力的用深搜.要说有优化的话,只有记录缺数的坐标,从横行缺数最少的一行开始搜.杭电正举行成都网络赛,可惜学校没报名参加,队友也没有..唉.想起就伤心,只能自己刷题玩了.#include using namespace std;char map[9][9];int n;struct Node{ int x,y;};Node L[81];bool islegal(int x,int y,char num){ int i; for( i=x/3*3;i<x/3*3+3;i++) //判断九宫是否重复 { for(int j=y/3*3;j<y/3*3+3;... 阅读全文
posted @ 2013-09-14 14:09 Destino74 阅读(112) 评论(0) 推荐(0) 编辑
摘要: 明明是一道水题,即使要剪枝也是很简单的.却因为一个限定条件没加卡这么久..总结:A题时注意把所有限定条件严格加上,避免模糊不清WA了几次.奇偶剪枝:用终点位置计算到当前位置的最短距离,其步数的奇偶性与最终到达终点频数的奇偶性相同.所以若最少步数奇偶性与开门的时间T奇偶性不同,则说明无法在T时间到达门.#include #include using namespace std;int dir[4][2] = {-1,0,0,1,1,0,0,-1};char map[8][8];int N,M,T;int s_x,s_y,e_x,e_y;bool flag;bool islegal(int tx, 阅读全文
posted @ 2013-09-13 00:28 Destino74 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=1258一道以前做过的搜索题.解法就是排序后搜索.题目要求相同的解只输出一次.记得以前看过别人的解法是搜索时加个限定条件,一时没想起来,所以自己乱搞.所谓乱搞就是用哈希了,用累加的序列构造哈希表.嘛,虽然做起来我也觉得有点运气成分.(因为构造哈希的算法是乱来的)没有验证过的哈希算法经不起推敲,也许数据强点我就挂了..还是贴代码吧,这次写丑了,懒得改.#include #include using namespace std;int num[12];int vis[12];int hash[1000];in 阅读全文
posted @ 2013-09-12 01:36 Destino74 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 都说不做8皇后,人生不完整.作为回溯,递归的入门题,倒是看过很多类似的题解.今天自己写一遍,用到了以前看某Blog上的一维数组表示棋盘.代码写得挺短的.不过运行起来效率不够,10以上的就出不来了.用位运算可以提高一点效率,这里有一个相关Blog:http://blog.csdn.net/hackbuteer1/article/details/6657109.先记下来,貌似还有A*算法的解法.有闲心再回来做吧.#include #include using namespace std;int map[11][11];int vis[11];//标志第i行x列是否放入,若放入为x,否则为-1int 阅读全文
posted @ 2013-09-11 23:17 Destino74 阅读(159) 评论(0) 推荐(0) 编辑
摘要: 题目:http://acm.hdu.edu.cn/showproblem.php?pid=2510数据范围很小.一看就知道可以用模拟搜索解,然后打表.搜索程序#include using namespace std;int map[25][25];int n;int DFS(int d,int num){ if(num > n*(n+1)/4) return 0;//小小的剪枝,+号大于总数的1/2时,不满足条件 if(d>=n) { if(n*(n+1)/2 == 2 * num) { return 1; }e... 阅读全文
posted @ 2013-09-11 16:47 Destino74 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 安家博客园啦..虽然挺久以前就想找个窝写点东西,一直没去做..哈哈.现在终于有窝了..以后有事没事就把OneNode上的写好的东西往这发. 阅读全文
posted @ 2013-09-11 00:04 Destino74 阅读(82) 评论(0) 推荐(0) 编辑