摘要:
以每个点算出左右覆盖的雷达所在x轴范围,然后贪心计算出所需圆的个数。当后一个点的圆心在x轴的左坐标在前一个点的右坐标的右坐标之前,则这个点就会被覆盖。代码如下:(C++能过,G++ runtime error)#include <cstring>#include <cstdlib>#include <cstdio>#include <cmath>#include <algorithm>using namespace std;int N, R;struct Node{ double l, r; bool operator < (N 阅读全文
摘要:
做法与1753相似。代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>#define START 0#define END 65535using namespace std;char G[6][6];int status, cpy, how[20], path[20], times;void pre(){ how[1] = 4383, how[2] =8751, how[3] = 17487, how[4] = 34959, how[5] = 阅读全文
摘要:
刚开始做这题时总是在想应该用何种的策略来进行翻装,最后还是没有想出来~~~ 这题过的代码的思路是用在考虑到每个点被翻装的次数只有0次或者是1次,所以对于16个点就只有2^16中请况了。再运用位运算将状态压缩到一个32位的整型当中,使用异或运算替代普通的运算。用dfs生成排列数。 代码如下:#include <cstdlib>#include <cstring>#include <cstdio>#include <algorithm>#define START 0#define END 65535using namespace std;char G 阅读全文