摘要: 怎么说呢,都说是全排列,但是我不会(等会儿看看),康拓排序我觉得用不了,因为太大了,long long都装不下,但是m的范围又小,所以可以直接枚举,代码如下:#include <stdio.h>#include <stdlib.h>int num[10000];int used[10001];int m, n;int t;void output(void){ int i; for(i = 0; i < n; i++){ if(i != 0){ printf(" "); } printf("%d", num[i]); } pr 阅读全文
posted @ 2011-08-19 21:15 zqynux 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 看到一个很好的结题报告,转一下:http://zhurui250.blog.163.com/blog/static/13727052020115273939197/【分析】数学推论题,我列一下站数 1 2 3 4 5 6 …… N上车人数 A F A+F A+2F 2A+3F 3A+5F …… 0下车人数 0 F F A+F A+2F 2A+3F …… M总人数 A A 2A 2A+F 3A+2F 4A+4F …… 0代码:#include <stdio.h>#include <stdlib.h>struct post{ int a, x;}s1[21], s2[21] 阅读全文
posted @ 2011-08-19 15:50 zqynux 阅读(754) 评论(0) 推荐(0) 编辑
摘要: 虽说是普及组,还是不好处理啊!想了好久,最后决定使用一个栈来维护所有的枚举,总的来说我这里算是用了两个栈(因为BFS本身就能算一个栈),这个题目真的有挑战性啊,算法没什么,但是规律方面的东西好重要饿。。。。 不说了,代码:#include <stdio.h>#include <stdlib.h>int flag = 0;int stack[100000];int top;void push(int k){ stack[top++] = k;}int pop(void){ return stack[--top];}void output(int k){ int i, j; 阅读全文
posted @ 2011-08-19 10:41 zqynux 阅读(1261) 评论(0) 推荐(0) 编辑