C/C++
文章平均质量分 66
羽溪夜
这个作者很懒,什么都没留下…
展开
-
形如int x:1;int x:2;int x:32
#include<iostream>#include <bitset>using namespace std;struct a{ int x:1; int y:2; int z:32;};int main(){ a d; d.x=8; d.y=8; d.z=6; cout<<bitset<sizeof(int)*8>(d.x原创 2016-04-06 15:30:21 · 3297 阅读 · 0 评论 -
凸包问题之蛮力解决法
最近研究了解决凸包问题的算法,查阅了很多资料,现记录如下,将分3次分别记录蛮力法,GrahamScan和分治方法,如有发现问题请留言,谢谢!暴力解决法:考虑Q中的任意四个点A、B、C、D,如果A处于BCD构成的三角形内部,那么A一定不属于凸包P的顶点集合。实现代码如下:#include<stdio.h>#include<stdlib.h>#include<wind...原创 2015-12-06 23:54:45 · 2719 阅读 · 0 评论 -
凸包问题之GrahamScan法
GrahamScan法:当沿着Convex hull逆时针漫游时,总是向左转;在极坐标系下按照极角大小排列,然后逆时针方向漫游点集,去除非Conves hull顶点(非左转点)。实现代码如下:#include<stdio.h>#include<stdlib.h>#include<windows.h>#define MAX_SIZE 10001struc...原创 2015-12-07 00:08:58 · 561 阅读 · 1 评论 -
凸包问题之分治法
凸包:按横坐标排序,以最小点与最大点之间的连线为准,在直线一侧找使三角形面积最大的点,此点必在凸包内,以找到点与最大点或最小点继续递归以寻找最大三角形面积寻找凸包点,直至找不到符合条件的点。实现代码如下:#include<stdio.h>#include <stdlib.h>#include <windows.h>#define MAX_SIZE 100...原创 2015-12-07 00:11:17 · 5176 阅读 · 2 评论 -
哈密顿环之广度优先
广度优先,使用队列,在网上下的关于队列的代码将数据节点改成本部分需要的结构。#include<stdio.h>#include<stdlib.h>#include<windows.h>#include"Queue.h"#define MAX_SIZE 21/*struct Point{int vertex;int path[MAX_SIZE];...原创 2015-12-09 21:18:10 · 562 阅读 · 0 评论 -
哈密顿环之深度优先
求解哈密顿环问题,接下来三篇博文将从深度、广度和分支界限算法描述该问题的求解。如有问题请多多指教!哈密顿环问题:输入是一个无向连通图G=(V,E);如果G中存在哈密顿环则输出该环,否则输出“否”。接下来用深度和广度解决哈密顿环问题,用分支限界解决最小哈密换带权问题。深度优先,使用栈的原理存储数据,一旦找到结果就结束。#include<stdio.h>#include<stdli...原创 2015-12-09 21:09:39 · 1159 阅读 · 0 评论 -
哈密顿环之分支限界
最小哈密顿环问题,输入是一个无向连通图G=(V,E),每个节点都没有到自身的边,每对节点间都有一条非负加权边;输出一个权值代价和最小的哈密顿环。使用分支限界算法,先令当前的界限定为(最大权值*路数),然后寻找路径依次判定是否有更小值存在。#include<stdio.h>#include<stdlib.h>#include<windows.h>#defi...原创 2015-12-09 21:40:17 · 622 阅读 · 0 评论 -
有关scanf的输入格式不正确之说
int main() { // your code goes here int a; scanf("%d",&a); printf("%d\n",a);}然后输入’a’ 输出结果为:-1219387827 原因:如果scanf函数未按指定格式输入,数据是不会存入到变量中去的,变量还会保持原有的数据。在程序中,a没有给初值,所以输出了一个随机值. ...原创 2016-04-12 09:59:43 · 1883 阅读 · 2 评论 -
有关字符串编程
给定一个query和一个text,均由小写字母组成。要求在text中找出以同样的顺序连续出现在query中的最长连续字母序列的长度。例如,query为 “acbac”,text为”acaccbabb”,那么text中的”cba”为最长的连续出现在query中的字母序列,因此,返回结果应该为其长度3。给出两个字符串,用自己最熟悉的编程语言找出两个字符串中匹配最长的字符串。如:“ascdefd”和“a原创 2016-04-19 21:51:47 · 407 阅读 · 0 评论 -
c语言如何获取时间
在做测试或性能优化时,经常要知道程序运行的时间,在Linux系统可以使用time命令来计算程序运行运行所消耗的时间,能精确到毫秒,如果要精确到代码块或某个操作运行时所消耗的时间,time命令就不给力了。如果对时间的精度要求不高的话,可以调用标准C的接口time来得到开始和结束的时间,再调用difftime接口来计算时间差,精度是秒,代码如下所示:#include <stdio.h>#i...转载 2015-11-23 13:44:08 · 517 阅读 · 0 评论