08 2012 档案
摘要:题目链接:http://poj.org/problem?id=2488分析:简单DFS,注意字典序最小 1 #include <cstdio> 2 #include <cstring> 3 4 const int dx[] = { -1, 1, -2, 2, -2, 2, -1, 1 }; 5 const int dy[] = { -2, -2, -1, -1, 1, 1, 2, 2 }; 6 const int MAXN = 30; 7 8 struct point 9 {10 int x, y;11 };12 13 bool vis[MAXN][MAXN];14 p
阅读全文
摘要:题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=41&page=show_problem&problem=1150题意:求三块的面积 1 #include <cstdio> 2 #include <cmath> 3 4 const double PI = acos( -1.0 ); 5 6 int main() 7 { 8 double a; 9 while( scanf( "%lf", &a
阅读全文
摘要:题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=29&page=show_problem&problem=1083题意:这个题刘汝佳在挑战编程上翻译的让我各种费解,后来看了这个翻译才明白:http://hi.baidu.com/knowledgetime/blog/item/6017ea04bb35cfc37a894779.html摘抄如下:UVa 10142 - Australian Voting澳大利亚在选举的时候,他们要求投票者在选票上将候
阅读全文
摘要:题目链接:http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=41&page=show_problem&problem=1121题意:给出两点坐标,用一条最短的线(曲线或者直线)连接起来,坐标系中原点处有一个半径为R的圆,连线不能穿过这个圆。分析:这题我WA了好几次,原因是把double的坐标搞成int了,o(╯□╰)o 1 #include <cstdio> 2 #include <cstdlib> 3 #include <cm
阅读全文
摘要:题目链接:http://livearchive.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2644PDF:http://livearchive.onlinejudge.org/external/46/4643.pdf之前翻译有误,已修改!题目翻译:Consider a closed world and a set of features that are defined for all the objects in the world. Each
阅读全文
摘要:题目链接:http://livearchive.onlinejudge.org/external/59/5914.pdf分析:并查集。相同祖先的放入同一个集合,每个集合可能有一个ID编号,也可能没有。如果最后存在两个集合的ID为确定值且不相同,那么NO如果最后所有集合都没有ID编号,或者只剩两个集合,一个有编号,一个没编号,那么POSSIBLY如果最后所有的集合ID编号相同,或者只剩下一个集合,那么YES 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 const int M
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3647题意:给你十个俄罗斯方块,问你能否拼成指定长宽的矩形,方块下落的顺序是严格确定的,后下落的方块不能落在先下落的方块之下。分析:这个题的方法跟 POJ 1020Anniversary Cake 完全一致。具体分析参见http://blog.csdn.net/lyy289065406/article/details/6683250每个俄罗斯方块都是由更小的小方格拼成的, 可以用一个一维数组来记录每一列已经摞上了多少个小方格。DFS遵循底部放满原则,如果可以恰好和已存在的方块实现无缝拼接才往上放,否
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1002分析:类八皇后问题,简单DFS。 1 #include <cstdio> 2 #include <cstring> 3 #include <cstdlib> 4 5 char map[8][8]; 6 int n; 7 int max; 8 9 bool check( int x, int y )10 {11 for ( int i = x - 1; i > 0; i-- ) if ( map[i][y] == &
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3711分析:直接暴力 1 #include <cstdio> 2 #include <cstring> 3 4 const int MAXN = 100 + 10; 5 6 struct Set 7 { 8 int num; 9 char bi[25];10 };11 12 char str[25];13 int m, n;14 char temp[25];15 Set S[MAXN];16 17 void Change( int num )18 {19 memset( ..
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3714这题我死活没读懂什么意思,后来还是别人讲的我才明白。题目:给出一组一元二次方程,用这一组一元二次方程生成一个新的函数F(x),求F(x)的最小值。x 对应F(x) 的值=这一组一元二次方程中yi = ai * x^2 + bi * x + ciy最大的那一个。分析:凹函数求极值,三分法。 1 #include <cstdio> 2 #include <cstring> 3 4 struct node 5 { 6 int a, b, c; 7 }; 8 9 const i
阅读全文
摘要:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3713题目:两个小球同时在两个迷宫里走,求使两个小球同时到达终点的最短走法。小球不能越出迷宫界,也不能掉到洞里。有的格子有挡板,如果挡板阻碍了小球的移动,则小球会呆在原地不动。如果有多组解,输出字典序最小的那个。分析:裸BFS,但是我错了很多遍,因为之前有些地方没想清楚。1,一开始我把 [小球被挡板阻碍] 和 [小球越界,小球掉到洞里] 放到一起考虑,写了个判断,都认为它们是不可达的。这是错误的。实际上这是两种情况,因为题目中有说:The barriers may make the commands
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1428题意:有三辆车负责投递杂志,有N个位置L1,L2……LN,给出车从Li移动到Lj所用的时间D[i][j],求出投递完所有的位置所用的最少时间。开始时三辆车都在L1,投递时只能有一辆车移动,另外两个呆在原地。并且投递完位置Li-1才能投递Li。思路:DP递推公式:D[i][j][k][m]=min(D[i-1][x][k][m],D[i-1][j][x][m],D[i-1][j][k][x])+time[x][i];(1≤x<i)I代表到位置i所用的最少时间
阅读全文
摘要:WA!!! 1 //Wrong Answer 2 #include <cstdio> 3 #include <cstring> 4 #include <cstdlib> 5 #include <cctype> 6 7 const int MAXN = 260; 8 9 char str[MAXN]; 10 bool vis[MAXN]; 11 int stack[MAXN]; 12 int kuohao[MAXN]; 13 int len; 14 15 void kuo_hao_pei_dui() 16 { 17 int top = 0; 18
阅读全文
摘要:题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3471题目:有N个原子,两两相撞会释放出能量,并且第 i 个原子跟第 j 个原子相撞后原子j会消失,给出一个矩阵,P[i][j]代表第 i 个原子跟第 j 个原子相撞释放的能量值,求这些原子相撞所能释放的最大能量值。分析:状态压缩,最多2^10种状态。集合S表示所有原子集合,i 与 j 相撞, 状态转移方程为:dp[ S ^ (1 << j) ] = max( dp[ S ^ (1 << j) ], dp[S]+ map[i][j]);撞
阅读全文