上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 182 下一页
摘要: 题意:给定一个国际象棋棋盘,左下角为原点建立坐标系,第一象限的左下角为黑色,格宽度为s,给定一个棋子坐标,给定棋子每次移动x,y的变化量。求多就可以跳入白色格子。分析:在黑色格子中的时候,我们只需要记录其关于当前黑色格子的相对位置(以此格子的左下角为原点),并观察这个相对位置是否被访问过,如果是,那么证明无解。本题特殊之处在于落在边界不算跳入白色。也就是说对于黑色格子的相对位置可能是边界,所以就要区分左右上下边界,这个是难点。View Code #include <iostream>#include <cstdio>#include <cstdlib>#in 阅读全文
posted @ 2011-08-21 11:27 undefined2024 阅读(281) 评论(0) 推荐(0)
摘要: 题意:给定20个砝码,分别为3^i(i=0~19)。给定一个物品,放在天平左盘,左右皆可放砝码,如何放能平衡。分析:先将给定物品的重量化为3进制。我们要让两端平衡,即让两端的三进制数各位相等,每个砝码是3进制某一位上的一个1。我们需要在左盘某些位加1(即向左盘加对应砝码),使得与原物品的重量之和化为3进制后各位都不为2,然后在右盘现在全为0,可直接将某些位变为1(即向右盘加对应砝码)凑出左盘的只有0和1的3进制数。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include 阅读全文
posted @ 2011-08-20 12:13 undefined2024 阅读(242) 评论(0) 推荐(0)
摘要: 题意:给定一个蜂窝,按如图规则给每个六边形孔顺时针绕圈标号,问某两个标号之间的距离。分析:把每个六边形看作正方形,并建立平面直角坐标系。1号位于(0,0)。x轴从左上到右下方向,y轴从左下到右上方向。然后将图转化为正方形的图。对于一个给定的编号利用公式计算是第几圈的,再算是6条边中哪条边的,再计算坐标。两个点之间的行走规则是,先将图看作正方形组成,可走正方形横竖相邻的正方形,也可走其捺对角线,但不能走其撇对角线。View Code #include <iostream>#include <cstdio>#include <cstdlib>#include & 阅读全文
posted @ 2011-08-15 23:12 undefined2024 阅读(314) 评论(0) 推荐(0)
摘要: 题意:给出一些顶点均为整数坐标,问能构成多少个面积为整数的三角形。给出公式:A=|x1y2 - y1x2 + x2y3 - y2x3 + x3y1 - y3x1|/2分析:面积是否为整数只需要看|x1y2 - y1x2 + x2y3 - y2x3 + x3y1 - y3x1|mod2是否为0,所以可以先对每个x,y都mod2,并不影响结果。所以总共有4种点,01,00,10,11。3重循环枚举三角形的3个顶点分别是哪种,并用公式计算其面积是否为整数,若为整数则用组合数学知识,通过每种顶点的个数计算能构成的三角形数。View Code #include <iostream>#incl 阅读全文
posted @ 2011-08-14 22:55 undefined2024 阅读(240) 评论(0) 推荐(0)
摘要: 简单题View Code #include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>using namespace std;int n, size;void work(){ scanf("%d", &n); size = n * 2 + 1; for (int i = 0; i < size; i++) { printf("slice #%d:\n", i + 1); for (int j = 0; j &l 阅读全文
posted @ 2011-08-14 20:30 undefined2024 阅读(215) 评论(0) 推荐(0)
上一页 1 ··· 85 86 87 88 89 90 91 92 93 ··· 182 下一页