摘要: 使用方法:nth_element(start, start+n, end)使第n大元素处于第n位置(从0开始,其位置是下标为n的元素),并且比这个元素小的元素都排在这个元素之前,比这个元素大的元素都排在这个元素之后,但不能保证他们是有序的。代码:1#include<algorithm>2#include<iostream>3#include<cstring>4#include<cstdio>5usingnamespacestd;6constintN=101;7chars[N];8intmain()9{10intlen,n;11gets(s);12 阅读全文
posted @ 2012-09-05 09:51 pony1993 阅读(3686) 评论(0) 推荐(1) 编辑
摘要: 好多天以前碰到的,当时懒得写博客,今天没事,记录下吧。1#include<algorithm>2#include<iostream>3#include<cstring>4#include<cstdio>5usingnamespacestd;6constintN=101;7chars[N];8intmain()9{10intlen;11gets(s);12len=strlen(s);13sort(s,s+len);14puts(s);15while(next_permutation(s,s+len))16{17puts(s);18}19return 阅读全文
posted @ 2012-09-05 09:27 pony1993 阅读(155) 评论(0) 推荐(0) 编辑
摘要: 把单词的第一个字母和最后一个字母作为点,由第一个字母向最后一个字母连一条有向边,问题转化为判断一个有向图是否存在欧拉道路有向图存在欧拉道路的条件: 在忽略边的方向后,图必须是连通的,同时最多只能有两个点的入度不等于出度,而且必须是其中一个点的出度刚好比入度大1(把它作为起点),另一个的入度比出度大1(把它作为终点).代码:1#include<iostream>2#include<cstring>3#include<cstdio>4usingnamespacestd;5constintN=27;6intin[N],out[N],use[N],set[N];7i 阅读全文
posted @ 2012-09-05 08:27 pony1993 阅读(217) 评论(0) 推荐(0) 编辑
摘要: 定义:欧拉回路:每条边恰好只走一次,并能回到出发点的路径欧拉路径:经过每一条边一次,但是不要求回到起始点①首先看欧拉回路存在性的判定:一、无向图每个顶点的度数都是偶数,则存在欧拉回路。二、有向图(所有边都是单向的)每个节顶点的入度都等于出度,则存在欧拉回路。三.混合图欧拉回路 混合图欧拉回路用的是网络流。 把该图的无向边随便定向,计算每个点的入度和出度。如果有某个点出入度之差为奇数,那么肯定不存在欧拉回路。因为欧拉回路要求每点入度 = 出度,也就是总度数为偶数,存在奇数度点必不能有欧拉回路。 好了,现在每个点入度和出度之差均为偶数。那么将这个偶数除以2,得x。也就是说,对于每一个点,只要... 阅读全文
posted @ 2012-09-05 08:01 pony1993 阅读(808) 评论(0) 推荐(0) 编辑

View My Stats