摘要: 题意: 给你一个DNA序列,求其逆序数。分析: 直接模拟即可。View Code #include<stdio.h>#include<string.h>#include<stdlib.h>struct node{ int xu,ni;}q[101];int cmp(const void*p1,const void*p2){ struct node* c=(node*)p1; struct node* d=(node*)p2; return c->ni-d->ni;}char s[102][55];int n,m;int re(char *s){ 阅读全文
posted @ 2012-04-30 20:24 'wind 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 题意: 有 n 条鱼,雄的会攻击他认为是雌的鱼,一条鱼一旦被攻击,就会生下一定数量的孩子,每条鱼只能被攻击一次, 问最后最多可以生下多少孩子。分析: 因为每条鱼只能被攻击一次,正好符合二分图的性质,此题只要找出完全匹配下的最优匹配即可。模板一:View Code #include<stdio.h>#include<string.h>#define INF 0x1f1f1f1fint sx[101],sy[101];int lx[101],ly[101];char a[102][102];int map[102][102];int link[101];int va[101 阅读全文
posted @ 2012-04-30 18:51 'wind 阅读(261) 评论(0) 推荐(0) 编辑
摘要: 题意: 告诉你有 N 湖是,并告诉你和每个湖相连湖的个数,问你能否找到一种可能的连通方式。分析: 问题的目的就是看看能否重建这个连通图,可以用Havel算法Havel算法的思想简单的说如下:(1)对序列从大到小进行排序。(2)设最大的度数为 t ,把最大的度数置0,然后把最大度数后(不包括自己)的 t 个度数分别减1(意思就是把度数最大的点与后几个点进行连接)(3)如果序列中出现了负数,证明无法构成。如果序列全部变为0,证明能构成,跳出循环。前两点不出现,就跳回第一步!举例说明:4 4 3 3 2 2第二步后0 3 2 2 1 2排完续后3 2 2 2 1 0第二步后0 1 1 1 1 0排完 阅读全文
posted @ 2012-04-30 17:16 'wind 阅读(332) 评论(0) 推荐(0) 编辑
摘要: 题意: 给你一个二叉树,如图:给你一个节点,输出以这个节点为根的最小值和最大值。分析: 经观察可以发现,叶子节点是连续的的奇数,所以只要找到所给节点的数的区间上最小奇数和最大奇数即可。View Code #include<stdio.h>int main(){ int t,n,min,max,lowbit; scanf("%d",&t); while(t--) { scanf("%d",&n); lowbit=(n)&(-n); // 取最后一个 1 min=n-(lowbit-1); // 取得个该区间上的最小奇数。 阅读全文
posted @ 2012-04-30 16:31 'wind 阅读(276) 评论(0) 推荐(0) 编辑