上一页 1 2 3 4 5 6 ··· 17 下一页
  2014年3月17日
摘要: 原题链接#include int main(){ int t, n, m,a ,b; scanf("%d", &t); while(t--){ scanf("%d%d", &n, &m); a = (m - 2 * n) / 2; //rabbit b = n - a; if(a < 0 || b < 0 || m & 1) printf("No answer\n"); else printf("%d %d\n", b, a); } return 0;} 阅读全文
posted @ 2014-03-17 17:22 长木Qiu 阅读(147) 评论(0) 推荐(0) 编辑
  2014年3月16日
摘要: 去重函数。unique一般现需要对数组排序后再使用,返回值是不重复数组的哨兵位。#include #include #include using namespace std;int main(){ int a[] = {1, 1, 1, 2, 2, 3, 4, 5, 5, 6, 7, 7, 8, 9, 9, 10}; vector vec(a, a + 16); sort(vec.begin(), vec.end()); vector::iterator pos, it; pos = unique(vec.begin(), vec.end()); for(it = vec.begin(); i 阅读全文
posted @ 2014-03-16 16:12 长木Qiu 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 原题链接#include #include using namespace std;int A[21][21];int main(){ int n, m, i, j; while(scanf("%d%d", &n, &m) == 2){ for(i = 1; i <= n; ++i) for(j = 1; j <= m; ++j){ scanf("%d", &A[i][j]); A[i][j] += max(A[i][j - 1], A[i - 1][j]); } printf("%d\n", A[ 阅读全文
posted @ 2014-03-16 08:47 长木Qiu 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 原题链接#include int A[101][101];int max(int a, int b){ if(a >= b) return a; return b;}int main(){ int n, i, j, temp; while(scanf("%d", &n) == 1){ for(i = 1; i temp) temp = A[n][j]; printf("%d\n", temp); } return 0;} 阅读全文
posted @ 2014-03-16 08:46 长木Qiu 阅读(110) 评论(0) 推荐(0) 编辑
  2014年3月15日
摘要: 原题链接错排公式:当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法;综上得到D(n) = (n-1) [D(n-2) + D(n-1)]特殊地,D(1) = 0, D(2) = 阅读全文
posted @ 2014-03-15 18:17 长木Qiu 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 当n个编号元素放在n个编号位置,元素编号与位置编号各不对应的方法数用D(n)表示,那么D(n-1)就表示n-1个编号元素放在n-1个编号位置,各不对应的方法数,其它类推.第一步,把第n个元素放在一个位置,比如位置k,一共有n-1种方法;第二步,放编号为k的元素,这时有两种情况:⑴把它放到位置n,那么,对于剩下的n-1个元素,由于第k个元素放到了位置n,剩下n-2个元素就有D(n-2)种方法;⑵第k个元素不把它放到位置n,这时,对于这n-1个元素,有D(n-1)种方法;综上得到D(n) = (n-1) [D(n-2) + D(n-1)]特殊地,D(1) = 0, D(2) = 1.-----百度 阅读全文
posted @ 2014-03-15 17:42 长木Qiu 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 原题链接当N=1、2、3时可以直接求出F[N]。当N>3时可得递推关系F[N]=F[N-1]+2*F[N-2];#include __int64 a[51] = {0, 3, 6, 6};int main(){ int n; for(int i = 4; i != 51; ++i) a[i] = a[i - 1] + a[i - 2] * 2; while(scanf("%d", &n) == 1) printf("%I64d\n", a[n]); return 0;} 阅读全文
posted @ 2014-03-15 17:06 长木Qiu 阅读(259) 评论(0) 推荐(0) 编辑
摘要: 原题链接关键思路是:每增加N个交点就增加N+1部分平面。然后从最简单的情况开始找到递推关系。//a[n] = a[n-1] + 4 * (n - 1) + 1#include #define MAX 10000 + 2__int64 a[MAX] = {1, 2, 7};int main(){ int t, i; for(i = 3; i != MAX; ++i) a[i] = a[i - 1] + 4 * i - 3; scanf("%d", &t); while(t-- && scanf("%d", &i)) prin 阅读全文
posted @ 2014-03-15 15:34 长木Qiu 阅读(142) 评论(0) 推荐(0) 编辑
摘要: 原题链接思路:先小到大排序,从最大的开始比较,如果An>Bn,则直接赢掉这局;如果An#include int a[1001], b[1001];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ int n, count, i; int ax, ay, bx, by; while(scanf("%d", &n), n){ count = 0; for(i = 0; i != n; ++i) scanf("%d", &a[i 阅读全文
posted @ 2014-03-15 14:03 长木Qiu 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 原题链接思路:先小到大排序,从最大的开始比较,如果An>Bn,则直接赢掉这局;如果An#include int a[1001], b[1001];int cmp(const void *a, const void *b){ return *(int *)a - *(int *)b;}int main(){ int n, count, i; int ax, ay, bx, by; while(scanf("%d", &n) == 1){ count = 0; for(i = 0; i != n; ++i) scanf("%d", &a 阅读全文
posted @ 2014-03-15 13:58 长木Qiu 阅读(123) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 17 下一页