2014年3月12日

【HDOJ】2553 N皇后问题

摘要: 超级经典神搜,这题以前做过,知道需要打表。没优化。#include #include #define MAXNUM 12/*int queens[MAXNUM][MAXNUM];int count;int dir[4][2] = {{-1,-1},{-1,1},{1,1},{1,-1}};void dfs(int c, int n) { int i, j, tmp; int x, y, dx, dy; for (i=1; i=1 && x=1 && y<=n) { if (queens[x][y]) { tm... 阅读全文

posted @ 2014-03-12 20:44 Bombe 阅读(145) 评论(0) 推荐(0) 编辑

【HDOJ】2062 Subset sequence

摘要: 这道题目非常好,饶了点儿圈子。我的思路是,先按照组排列。例如,1 2 31 2 2 1 3 11 2 3 2 1 3 3 1 21 3 2 3 3 21 3 2 2 3 1 3 2 1分成3组,每组个数是确定的,因此可以通过m/组数获得第一个数字,然后组数因n--而减小。重新计算属于哪一组,但此时需要考虑printf的数字,因此使用visit数组保证每个数字仅遍历一次。需要注意的是m应先--,这样第1个和第5个可以保证在同一组内。组后需要注意long long,题目非常好。#include #include #define MAXNUM 25long long each_gp[MAXNUM] 阅读全文

posted @ 2014-03-12 14:09 Bombe 阅读(393) 评论(0) 推荐(0) 编辑

【HDOJ】2058 The sum problem

摘要: 首先使用高斯公式,求出a,b代数式。然后就需要检验是否满足条件。注意(a+b)(b-a+1)=2*m,存在约数关系。使用蛮力遍历会TLE。注意约数关系及printf的顺序即可。#include #include int main() { int n, m, a, b; int k; while (scanf("%d %d", &n, &m)!=EOF && (n||m)) { for (k=sqrt(m*2); k>=1; --k) { if ((2*m)%k !=0) continue; ... 阅读全文

posted @ 2014-03-12 13:57 Bombe 阅读(146) 评论(0) 推荐(0) 编辑

【HDOJ】2057 A + B Again

摘要: 脑残题目,这题没出好。#include int main() { long long a, b; while (scanf("%I64X %I64X", &a, &b) != EOF) { a+=b; if (a<0) { printf("-"); a = -a; } printf("%I64X\n", a); } return 0;} 阅读全文

posted @ 2014-03-12 13:55 Bombe 阅读(119) 评论(0) 推荐(0) 编辑

【HDOJ】2056 Rectangles

摘要: 水题,比较烦,搞清楚计算公式即可。#include double mymax(double a, double b) { return a>b ? a:b;}double mymin(double a, double b) { return a=x1 && y2>=y1) printf("%.2lf\n",tmp); else printf("0.00\n"); } return 0;}View Code 阅读全文

posted @ 2014-03-12 13:54 Bombe 阅读(211) 评论(0) 推荐(0) 编辑

【HDOJ】2053 Switch Game

摘要: 注意提示,水题。#include int main() { int n; int i, tmp; while (scanf("%d", &n) != EOF) { tmp = 0; for (i=1; i<=n; ++i) if (n%i == 0) tmp++; if (tmp&1) printf("1\n"); else printf("0\n"); } return 0;} 阅读全文

posted @ 2014-03-12 13:53 Bombe 阅读(124) 评论(0) 推荐(0) 编辑

【HDOJ】2051 Bitset

摘要: 水题。#include #include #define MAXNUM 32char bin[MAXNUM];void itob(int a, char bin[]) { int tmp = a, i=0; char ch; memset(bin, 0, sizeof(bin)); do { ch = tmp&1; bin[i++] = ch + '0'; tmp = tmp >> 1; } while (tmp > 0); // bin[i] = '\0';}int main() { int n; in... 阅读全文

posted @ 2014-03-12 13:52 Bombe 阅读(148) 评论(0) 推荐(0) 编辑

导航