算法
文章平均质量分 51
dumzp13
这个作者很懒,什么都没留下…
展开
-
poj1565-Skew Binary
AC代码:比书上的短好多好嘛,不知道书上为社么要写的这么复杂难懂_(:з」∠)_http://poj.org/problem?id=1565#include#include#includeint main(void) { char n[32]; while(1) { scanf("%s",&n); int len = strlen(n); long ret =原创 2016-04-25 18:10:21 · 356 阅读 · 0 评论 -
poj:垂直直方图
最近在做《程序设计引导及在线实践》上的题。按说上面的习题和poj上应该是对应的。但是不知道是书太久还是怎么……题号不对应。poj上也找不到那些题。就这样写写算了吧,不oj了。垂直直方图:读取文本并解析字母出现次数的垂直直方图。#includeint main(void) { FILE *fp = fopen("t2.6.txt","r"); char str[100原创 2016-04-23 23:02:36 · 744 阅读 · 0 评论 -
poj1017:装箱问题
#includeint main(void) { int x,y; char line[10]; while(1){ //poj编译不通过while(true)…… int N = 0; x = y =0; int a,b,c,d,e,f; scanf("%d %d %d %d %d %d",&a,&b,&c,&d,&e,&f); if(a==0&&b==0&&c原创 2016-04-23 20:04:06 · 501 阅读 · 0 评论 -
最大子数组(分治法)
接昨天,采用归并的方式解决最大子数组的问题。#include#define max 100000000int find_max_crossing_subarray(int A[], int low, int mid, int high);int find_maximum_subarray(int A[],int low,int high);int main(void) { int day原创 2016-04-21 22:04:17 · 684 阅读 · 0 评论 -
归并排序两种实现
main函数内是测试数据哨兵实现#include<stdio.h>#define MAX 100000000void merge(int A[], int p, int q, int r); //将一个数组分治并排序void merge_sort(int A[], int p,int r);int main(v原创 2016-04-19 23:54:34 · 362 阅读 · 0 评论 -
最大子数组(暴力求解法)
需求:使q>p,找出使A[q]-A[p]最大的q和p。暴力求解法:#includeint main(void) { int days[] = { 100, 113, 110, 85, 105, 102, 86, 63, 81, 101, 94, 106, 101, 79, 94, 90, 97 }; int maxint[3] = {0,0,0}; for(int i=0;原创 2016-04-20 21:51:51 · 370 阅读 · 0 评论 -
《算法导论》第二章第一节练习题——同位二进制数相加
需求:用两个同长度为n的int数组描述两个同位二进制数。用一个长度为n+1的数组表示这两个数组以二进制相加#include#define N 8int main(void) { int A[N] = {1,0,0,1,0,1,1,1}; int B[N] = {1,1,0,0,1,0,0,1}; int C[N+1] = {0,0,0,0,0,0,0,0,0}; int原创 2016-04-18 22:30:04 · 433 阅读 · 0 评论 -
UVa201 Squares
判断一个正方形点阵图中正方形的个数有点麻烦,时间复杂度为n^4.目前想到的优化是可以用邻接矩阵做一个,以后再写吧#include#includeint H[10][10]; //横边 int V[10][10]; //竖边 int main(void) { int sum = 0,n; memset(H,0,sizeof(H)); memset(V,0,sizeof(V)原创 2016-05-02 16:15:22 · 432 阅读 · 0 评论 -
UVA227 puzzle
题目:给你一个字母组成的矩阵,其中有一个空位,给你移动的规则(类似平面的一种拼图游戏); 问是否操作合法,合法时输出移动后的结果#includechar pic[5][5] = { {'T','R','G','S','J'}, {'X','D','O','K','I'}, {'M',' ','V','L','N'}, {'W','P','A原创 2016-05-01 10:43:57 · 331 阅读 · 0 评论 -
找到环状序列的最小字典表示
代码:#include#include#define maxn 105//比较字典序 int cmp(char* s,int p,int q) { //返回负数则表示p表示法比q表示法字典序小,正数大,0两者相等 int n = strlen(s); for(int i=0;i<n;i++) { if(s[(p+i)%n] != s[(q+i)%n]) return s[(p+原创 2016-04-29 23:15:43 · 410 阅读 · 0 评论 -
八进制小数转换为十进制小数
#include#include#include#define maxnum 42//将八进制小数(0,1)转换为十进制小数//oct中只输入小数位. int main(void) { char oct[maxnum+1]; gets(oct); int len = strlen(oct); double res = 0; for(int i=0;i<len;i++) {原创 2016-04-26 19:11:33 · 1951 阅读 · 0 评论 -
(C语言)各种进制转换(10->8 8->10 2->16)
10->8#include#include#define maxnum 30 //十进制转八进制int main(void) { char dec[maxnum]; int oct,index,temp; scanf("%d",&oct); for(index=maxnum-1;index>=0 && oct>0;index--) { temp = oct % 8; de原创 2016-04-26 18:30:28 · 652 阅读 · 0 评论 -
c++:八皇后问题
好久没更新了..最近在看Linux 各种排序和算法 = =, 快要准备期末考试了,整理整理暑假再更#includeint n;int count;void search(int cur);void printChess(int cur);int *C; //每一行皇后的位置 int main(void) { printf("输入皇后个数: "); sc原创 2016-05-21 12:15:27 · 505 阅读 · 0 评论