上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页
摘要: 题目大意:给n个整数的集合,再给一个询问数q,从集合中找出最接近q的两个不同的数的和。很直白的问题,直接暴力枚举就可以了。 1 #include 2 #include 3 #define MAXN 1000+10 4 #define MAXM 500000 5 6 int a[MAXN], b[MAXM]; 7 8 int main() 9 {10 #ifdef LOCAL11 freopen("in", "r", stdin);12 #endif13 int n;14 int kase = 0;15 while (scanf("%d" 阅读全文
posted @ 2013-07-22 16:04 xiaobaibuhei 阅读(154) 评论(0) 推荐(0)
摘要: 题目大意:有一个长度为lcm的木棍,上面有n只蚂蚁,以1cm/s的速度爬行,当两只蚂蚁相撞时两只蚂蚁各自掉头,蚂蚁走到两端时掉下去。不知道开始时每只蚂蚁各自的朝向,求全部蚂蚁都掉下去的可能最早时间和最晚时间。 这个和UVa 10881 Piotr's Ants算是一个模型,不过这个简单一点,关键是从整体上看,蚂蚁“相撞掉头”和“擦肩而过”没有区别,在计算蚂蚁位置方面是等价的。所以,最早时间就是离中间最近的蚂蚁走到离它最近的一端的时间,最晚就是两端的蚂蚁走到离它更远的那一端的时间的较大者。 1 #include 2 #include 3 #include 4 using namesp.. 阅读全文
posted @ 2013-07-22 13:23 xiaobaibuhei 阅读(220) 评论(0) 推荐(0)
摘要: 题目大意:给一些点,找出一条直线使尽可能多的点在这条直线上,求这条直线上点的个数。 以每一个点为原点进行枚举,求其它点的斜率,斜率相同则说明在一条直线上。对斜率排序,找出斜率连续相等的最大长度。 1 #include 2 #include 3 #include 4 using namespace std; 5 #define MAXN 700+10 6 #define PRECISION 10e-9 7 8 struct Point 9 {10 int x, y;11 };12 13 Point point[MAXN];14 double slope[MAXN];15 1... 阅读全文
posted @ 2013-07-22 12:33 xiaobaibuhei 阅读(145) 评论(0) 推荐(0)
摘要: 题目大意:留学生配对,如果甲想从A去B,乙想从B去A,则甲乙能完成配对。现在给出n个留学生,判断能否完全配对。 最开始考虑用个二维数组维护信息,不过题中数据可达500000,不可能开那么大的二维数组,只好通过排序进行处理了。 1 #include 2 #include 3 #define MAXN 500000+10 4 using namespace std; 5 6 struct Route 7 { 8 int s, e; 9 };10 11 Route go[MAXN], back[MAXN];12 13 bool cmp(const Route &a, const ... 阅读全文
posted @ 2013-07-21 11:59 xiaobaibuhei 阅读(161) 评论(0) 推荐(0)
摘要: 题目大意:给n个正整数,对这n个数进行拼接,共有n!种方案(在n个数互不相同的情况下),找出其中最大的拼接数。如123,124,结果为124123。 开始考虑用字典序,不过这在两个数长度相同时正确,在长度不同时就出问题了,于是各种纠结...后来看别人代码,发现直接把两个数按不同方案拼接再比较就行了,直接根据结果进行判定,而不是分析每个数,是个好方法!排完序后按从大到小的顺序输出就行了,这其中含有贪心的思想。 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 #define MAXN 50+5 ... 阅读全文
posted @ 2013-07-21 10:21 xiaobaibuhei 阅读(280) 评论(0) 推荐(0)
摘要: 题目大意:矩阵嵌套,不过维数是多维的。有两个个k维的盒子A(a1, a1...ak), B(b1, b2...bk),若能找到(a1...ak)的一个排列使得ai 2 #include 3 #include 4 using namespace std; 5 #define BOXN 35 6 #define DIMENSION 12 7 8 int k, n; // k is the number of boxes, n is the dimensionality 9 int box[BOXN][DIMENSION], d[BOXN]; // d[i] save the ... 阅读全文
posted @ 2013-07-16 12:37 xiaobaibuhei 阅读(210) 评论(0) 推荐(0)
摘要: 题目大意:只有素因子2,3,5的数叫做丑数。输出第1500个丑数即可。 这个...好吧,直接输出就是了。自己写一个小程序先计算一下,这就是黑盒测试的好处啊,“我们的目标是解决问题,而不是为了写程序而写程序,同时应该保持简单(Kepp It Simple and Stupid, KISS)”,摘自《算法竞赛入门经典》。 1 #include 2 3 int main() 4 { 5 int p = 1; // the number of ugly number 6 int i; 7 for (i = 2; ; i++) 8 { 9 int... 阅读全文
posted @ 2013-07-15 23:51 xiaobaibuhei 阅读(409) 评论(0) 推荐(0)
摘要: 题目大意:给出n个点的坐标(x,y),要求用线段将n个点连接起来,求最小的线段和。 最小生成树问题,用Kruskal算法进行求解,其中用到了并查集。将所有的点连接,构成一张图,对每一条边进行编号,两点间的距离作为权重。 1 #include 2 #include 3 #include 4 #define square(x) (x)*(x) 5 #define MAXN 10000 6 #define POINTN 100+10 7 using namespace std; 8 9 double w[MAXN], point[POINTN][2]; // the weight... 阅读全文
posted @ 2013-07-13 21:49 xiaobaibuhei 阅读(199) 评论(0) 推荐(0)
摘要: 题目大意:模拟题,有一些寄存器和随机访问内存,给你一些指令以及它们代表的操作,模拟操作即可。 1 #include 2 #include 3 #define REGN 10 4 #define RAMN 1000 5 6 int reg[REGN], ram[RAMN]; 7 8 int main() 9 {10 #ifdef LOCAL11 freopen("in", "r", stdin);12 //freopen("out", "w", stdout);13 #endif14 int n;15 scanf(& 阅读全文
posted @ 2013-07-13 13:40 xiaobaibuhei 阅读(308) 评论(0) 推荐(0)
摘要: 题目大意:输入正整数n,把整数1,2...,n组成一个环,使得相邻两个整数之和均为素数。输出时从整数1开始逆时针(题目中说的不是很明白??)排列。同一个环应恰好输出一次。 枚举,并在枚举每一个数是进行判断,可以提高效率。 1 #include 2 #include 3 4 int A[20], vis[20]; 5 int n; 6 7 int is_prime(int n) 8 { 9 for(int i = 2; i*i <= n; i++)10 if(n % i == 0) return 0;11 return 1;12 }13 14 v... 阅读全文
posted @ 2013-07-12 21:37 xiaobaibuhei 阅读(482) 评论(0) 推荐(0)
上一页 1 ··· 10 11 12 13 14 15 16 17 18 ··· 20 下一页