自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 UVA213 Message Decoding(二进制)

题目描述: 题目大意:有一些串: 0,00,01,10,000,001,010,011,100,101,110,0000,0001,…,1101,1110,00000,…首先是长度为1的串 ,然后是长度为2的串,以此类推,相同长度的后一个串等于前一个串加1,而且不存在全为1的串。首先输入一个编码头 , 比如 AB#TANCnrtXc ,那么依次对应上面的01串,比如0对应A,00对应B,01对应#

2017-05-26 19:56:52 625

原创 UVA133 The Dole Queue (模拟)

题目描述: 分析: 初始时用一个数组来表示人员的编号,如果一个人被选中,则用0来表示。模拟一下即可。代码如下:#include<cstdio>using namespace std;const int maxn = 20+5;int N, k, m;int a[maxn];/*移动函数,以k作为标记表示顺时针还是逆时针*/int move(int p, int k, int t){

2017-05-26 11:04:49 306

原创 UVA489 Hangman Judge(字符串处理)

题目描述: 题目大意就是先给一个单词,然后每次可以猜一个字母,如果给定单词里有那个字母,单词中的所有该字母都会显示出来,如果没有这个字母,机会就少一次,一共7次机会,错了7次即为失败, 而如果单词中所有字母都显示出来即为成功,其他则为放弃。分析: 采用自顶向下的方式,模拟一下这个刽子手游戏的过程即可。代码如下:#include<cstdio>#include<cstring>using

2017-05-26 10:33:56 500

原创 UVA1339 Ancient Cipher(排序)

题目: 题目很长,但是大概的意思就是: 给定两个长度相同且不超过100的字符串,判断是否能把其中一个字符串的各个字母重排,然后对26个字母做一一映射,使得两个字符串相同。分析: 因为字母可以重排,所以位置不重要,而字母出现的次数是重要的。这样先统计一下两个字符串中各个字母出现的次数,然后进行排序,只要两个数组排序后的结果相同,那么输入的两个串就可以通过重排和一一映射变得相同。代码如下:#inc

2017-05-26 10:19:57 1322

原创 算法入门经典第四章例题总结

例题总览:例题4-1 UVA1339排序例题4-2 UVA489自顶向下逐步求精法例题4-3 UVA133子过程(函数)处理例题4-4 UVA213二进制例题4-5 UVA512模拟例题4-6 UVA12412综合

2017-05-26 10:09:25 312

原创 二叉搜索树

BY《INTRODUCIRION TO ALGORITHM》定义和性质:二叉搜索树是以一棵二叉树来组织的。每个结点包含key,left,right,p属性,分别是结点的关键字,指向结点的左孩子,右孩子和双亲。性质: 对于任何结点x,其左子树的关键字最大不超过x.key,其右子树的关键字最小不低于x.key。且不同的二叉搜索树可以代表同一组值的集合。如图所示是一棵二叉搜索树:遍历:和二叉树的遍历相同

2017-05-21 08:47:35 300

原创 常用技巧(一)尺取法

尺取法:通常指对数组保存一对下标(起点、终点),然后根据实际情况交替推进两个端点直到得到答案的方法。经典例子POJ-3061 问题大概:给定长度为n的数列整数a0,a1,…,an-1以及整数S。求出总和不小于S的连续子序列的长度的最小值。如果解不存在,则输出0。

2017-05-15 19:33:03 251

原创 MySQL常用指令(三) 插入、更新与删除数据

一、插入数据1.为表中的所有字段插入数据INSERT INTO table_name (column_list) VALUES (value_list);2.为表中的指定字段插入数据INSERT INTO table_name (指定字段) VALUES (相应的value_list);3.同时插入多条记录INSERT INTO table_name (column_list) VALUE

2017-05-13 15:43:35 436

原创 循环队列的实现

同样老师不让直接用queue这个容器,所以自己实现咯! 循环队列很厉害呢!!#include<cstdio>#include<cstdlib>using namespace std;const int MAXSIZE = 100;typedef struct{ int *base; int front; int rear; }SqQueue;/*初始化队列*/

2017-05-12 10:18:58 394

原创 栈的实现

栈:上数据结构老师不给直接用c++中的stack容器,要自己实现,所以自己写了一个实现栈的入栈、出栈和取栈顶元素功能的程序,用链栈实现。怎样实现就不具体描述了,就是使用base和top指针来实现,top指针一直指向栈顶元素的下一个位置,base一直在栈底的位置。 注意:初始化栈时,base==top,且可通过这个判断栈是否为空。分析过程:栈的初始化栈初始化就是给栈开辟一些空间,然后让指针top等于

2017-05-12 09:53:52 914 2

原创 MySQL常用指令(二)查询数据

1.基本查询语句SELECT {*|<字段列表>} [ FROM <表1>,<表2>... [WHERE <表达式> [GROUP BY <group by definition>] [HAVING <expression> [{<operator> <expression>...]] [ORDER B

2017-05-10 21:23:35 465

原创 MySQL常用指令(一)

一.创建数据库CREATE DATABASE database_name;二.删除数据库DROP DATABASE database_name;三.创建数据表1.语法形式: CREATR TABLE table_name ( 字段名1, 数据类型[列级别约束条件][默认值], 字段名2, 数据类型[列级别约束条件][默认值], ...... );使用CREATR TAB

2017-05-09 20:47:19 378

原创 2017年ACM模板(常用)弱渣整理 五、数学相关

一、大数问题:1.大数积#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>using namespace std;char c[40];typedef long long LL;void multiply(const char *a,const char *b)//大数相乘 { int

2017-05-05 18:58:25 292

原创 2017年ACM模板(常用)弱渣整理 四、动态规划

一、数字三角形问题:for(int i=1;i<=n;i++){ d[n][i] = a[n][i];//从边界出发的最大值就是其本身 }for(int i=n-1;i>=1;i--){ for(int j=1;j<=i;j++) { d[i][j] = a[i][j]+max(d[i+1][j],d[i+1][j+1]); }}二、最长递增

2017-05-05 18:53:28 343

原创 2017年ACM模板(常用)弱渣整理 三、图论

一、 拓扑排序#include<cstdio>#include<cstring>#include<queue>using namespace std;const int maxn = 1000;struct Node{ int indegree;//入度数 int num; //排序number int id; //编号}N[maxn];in

2017-05-05 18:48:52 601

原创 2017年ACM模板(常用)弱渣整理 二、二分

lower_boundlower_bound 这个函数是从已经排好序的序列a中利用二分搜索找出指向满足ai >= k的ai的最小的指针,注意是指针。upper_bound函数类似,就是求出满足ai > k的ai的最小的指针。#include<cstdio>#include<algorithm>using namespace std;int a[100];int main(){ pr

2017-05-05 18:44:18 478

原创 2017年ACM模板(常用)弱渣整理 一、暴力

一、 枚举排列生成指定集合的排列:#include<cstdio>#include<iostream>#include<algorithm> using namespace std;void print_per(int n,int *P,int *A,int cur){ if(cur==n) { for(int i=0;i<n;i++) {

2017-05-05 18:41:36 873

原创 求凸包——Graham扫描算法

——————byMBA智库 http://wiki.mbalib.com/wiki/%E5%87%B8%E5%8C%85算法这里就介绍一个Graham扫描算法Graham扫描法 由最底的一点A1开始,计算它跟其他各点的连线和x轴的角度,按小至大将这些角度排序,称它们的对应点为A_2,A_3,\ldots,A_n。这里的时间复杂度可达O(nlogn)。 考虑最小的角度对应的点A3。若由A2到A3的路

2017-05-05 15:14:04 1187

原创 大数乘法

直接用一下模板吧! 两个大数相乘,大数用字符数组表示。#include<cstdio>#include<cstring>#include<cstdlib>#include<iostream>using namespace std;char c[40];typedef long long LL;void multiply(char *a, char *b)//大数相乘 {

2017-05-05 13:47:22 218

原创 极角排序

在求凸包的问题中,遇到一个小问题——极角排序 就是给定一个点u,然后再给一个点集,要求根据线段au的极角进行排序。假设一个点用结构体表示,有x和y两个结构体变量分别表示点的横坐标和纵坐标。排序重写cmp如下:int cmp2(const Node &a, const Node &b){ return atan2(1.0*(a.y-u.y), 1.0*(a.x-u.x)) < atan2(

2017-05-03 11:19:58 456

原创 POJ - 1127 Jack Straws(线段相交/并查集)

问题描述In the game of Jack Straws, a number of plastic or wooden “straws” are dumped on the table and players try to remove them one-by-one without disturbing the other straws. Here, we are only concerned

2017-05-02 20:34:39 349

原创 计算几何——线段的性质

本次我们研究线段的一些性质,并且可以用一些数学知识设计一些算法来解决一些问题。问题:1.对于给定的两个有向线段p0p1和p0p2,相对于它们的公共端点p0来说,p0p1是否在p0p2的顺时针方向?2.对于给定的两个线段p0p1和p1p2,如果先沿着p0p1再沿着p1p2前进,那么在点p1处是向左转还是向右转怎么判断。3线段p1p2和p3p4是否相交?对于这些问题,我们都需要使用一个计算公式—

2017-05-02 15:00:57 469 4

原创 求三角形面积

做题时竟然被这个卡住了,高中三角函数还给老师了QAQ。一个三角形三条边a,b,c,假如我们知道一个顶点到对边的距离(即高),那么就能够1/2*底*高计算出来三角形面积。上面的是一般的情况,如果给一个角度呢?比如知道a和b长度,和a和b的角度是多少?那么就得转化一下了: h = b×sin< a,b > S = 1/2×h×a =>S = 1/2×a×b×sin

2017-05-01 10:22:51 357

原创 最大流的各种变体问题

一、多个源点和汇点的情况解决方法:只要增加一条超级源点s和一个超级汇点t,从s向每个源点连一条容量为对应最大流出容量的边,从每个汇点向t连一条容量为对应最大流入容量的边。二、无向图的情况解决方法:如果两个方向都有流量,则与它们相互抵消后是等价的,所以可知最大流中没有必要在两个方向都有流量,因此把无向图中容量为c的一条边当作有向图中两个方向各有一条容量为c的两条边,就能够得到同样的结果。三、顶点上也有

2017-05-01 08:59:56 545

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除