自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 POJ1664 放苹果(递归)

题意:中文题,把m个苹果放入n个相同的盘子,盘子中可以不放苹果,问有几种方法要点:一开始我还以为是数学题,这不是组合概率问题吗?后来看网上的解释原来是递归:用f(m)(n) 记录有几种方法:1.m=1||n=1时都只有一种,f(m)(n)=12.m3.m=n时,有两种方式,第一种是每个盘子都放,只有全为1一种可能,第二种是至少一个盘子是空的,f(m)(n)=1+f(m)

2016-01-30 16:30:43 476

原创 UVa442 Matrix Chain Multiplication(栈)

题意:矩阵相乘,看白书要点:用栈做,话说纯c真麻烦,要用c++中的STL,但strlen又要用c中的string.h。注意题目叙述,一个括号中最多只有两个矩阵相乘代码如下:#include#include#include#include //为了用strlenusing namespace std;typedef struct{ int m; int

2016-01-30 10:32:16 374

原创 数据结构——队列

一:普通链队列需要一个头指针和一个尾指针,并且设一个头结点,使头指针指向头结点(不存储数据)代码如下:#include#include#includetypedef struct node{ int data; struct node *next;}node,*que;typedef struct{ que front; que rear;}Queue;Que

2016-01-28 18:10:54 253

原创 POJ1363 Rails(数据结构栈)

题意:一列火车从A站进入,B站开出,中间有一个站台,可以改变车厢顺序,原本是1~n,看输入的序列能否达到要点:就是模拟栈的压入弹出,如果栈顶元素对应的编号与输入的顺序一致就弹出,如果不一致就继续压入。最后如果栈是空的就说明顺序是合法的,否则不合法15114206Seasonal1363Accepted164K63MSC++646B20

2016-01-27 17:35:53 484

原创 POJ1013 Counterfeit Dollar(技巧)

题意:有十二枚硬币,其中有一枚假币与其他真币重量不同,但不知道是轻是重,通过称量三次确定这枚硬币的字母代号要点:题目中没有说每次称量几枚硬币,所以用模拟非常复杂,这里有一个比较特别的技巧:先如果天平是平衡的,那么对于的所以硬币肯定是真的,用一个数组存储将这些硬币剔除,后面计算时就不用考虑了。因为不知道假币是轻还是重,那么如果出现up和down,那么肯定这其中有假币,但是不知道是那边

2016-01-25 20:48:52 1480

原创 数据结构——栈

一:动态数组堆栈用一个指针代替数组,然后可以用malloc函数来动态建立一个大小由自己定的数组代码如下:#include#include#includeint *s;int stacksize;int top = -1;void create(int num) //建立一个空栈{ stacksize = num; s= (int*)malloc(stacksize*

2016-01-25 15:39:59 306

原创 POJ1008 Maya Calendar(模拟)&&整除和取余的边界问题

题意:玛雅有两种计年方式,输入一种年月日,输出对应的另一种年月日要点:1.注意题目要求,第一种还有第19月,一开始没看见,然后输出是一起输出,不是一个一个输出2.这题主要的一个难点是有关/和%的边界:例如:26/13=2,26%2=0,如果我想使整除26/13=1,即向下取整,并且想使26%13=13,该怎么办呢?有个非常好的解决方案就是将要除的数整体-1,也就是原本我们从

2016-01-23 18:33:42 618

原创 POJ1068 Parencodings(模拟)

题意:一串左右括号,有下列两种编码方式:P序列:第i右括号前有几个左括号为pi的值W序列:第i右括号与前面的左括号匹配完成后,括号中有几个右括号就是wi的值输入P序列,转换为W序列输出要点:用一个p数组记录每两个右括号中有几个左括号,例如:4 5 6 6 ,对应的p数组为:4 1 0 0 从第一个右括号i开始往左寻找,如果碰到p[j]!=0的情况说明这个位置可以找到一个

2016-01-23 16:25:54 343

原创 POJ1012 打表&&约瑟夫问题详解

题意:约瑟夫问题的变形,总共k个好人和k个坏人,好人先排在坏人前面,寻找一个最小的m,使每次杀的都是坏人,保证坏人比好人先死要点:先打表把1-14的所有情况都赋值给一个数组,然后直接对应输出就行约瑟夫问题:维基百科:点击打开链接百度百科:点击打开链接设拿走k个的位置为ans[k],ans[k]=(ans[k-1]+m)%(n-k)15095637

2016-01-22 20:06:20 819

原创 例题6-5 UVa12657 双向链表

题意:看白书吧,介绍的很清楚,P144要点:好难啊,用两个数组表示双向链表,里面还有很多小技巧,真难,讲不清楚,看书代码如下:#include#define maxn 100050int left[maxn], right[maxn];void link(int l, int r){ right[l] = r; left[r] = l;}int ma

2016-01-22 14:54:52 485

原创 例题6-4 UVa11988 静态链表

题意:输入一串字符串,将其中[]中的字符放到字符串最开头,再输入得到的字符串要点:使用静态链表,也就是利用两个数组,还挺难的,主要是一个插入操作以及要设一个last来表示当前的最后字符。代码如下:#include#include#define maxn 100050int main(){ int cur, last, next[maxn];//next数组用

2016-01-21 20:39:35 566

原创 POJ2503 二分&&结构体字典序排序&&sscanf函数

题意:就是模拟一个查字典的过程,先输入互相对应的英语和外国语作为参照,再输入一些外国语,要求输出对应的英语要点:1.结构体的字符串排序struct Node{ int data; char str[100];}s[100];//按照结构体中字符串str的字典序排序int Comp(const void*p1, const void*p2){ return strcm

2016-01-21 11:23:02 746

原创 POJ3750 循环链表解决约瑟夫问题

题意:就是约瑟夫斯问题,首先从一个人开始,越过k-2个人(因为第一个人已经被越过),第k个人出列。接着,再越过k-1个人,第k个人出列。这个过程沿着圆圈一直进行,直到最终只剩下一个人留下。依次输出每个出列的人要点:利用循环链表来实现,每次删除结点并输出这个结点的值。实际上最好用双向循环链表,但我用普通的循环链表强行完成了,比较容易WA,有很多特殊情况要考虑:比如:如果s=1时,第一

2016-01-20 21:32:38 971

原创 POJ3122 二分与误差

题意:n个派f+1个人分(包括自己),同一个派可以分成多块,但每个人只能拿一块,并且不能拼接比如一块6派,如果拿5,剩下的1就得丢弃要点:1.比较普通的二分,将每块派大小除mid,累加得到分给的人数。要注意mid也就是每个人分到的派可以是浮点数。2.要求精度问题,因为left和right都是double型,mid=(left+right)/2,所以这两个只能无限接近。因为最后答案都

2016-01-19 21:42:28 374

原创 习题4-10 UVa815 Flooded!

快半个月没刷题了,一直在准备期末考试,终于考完了可以刷题了!思路很清晰的一道题,没有什么特别难的地方,但花的时间长了点。要点:先将海拔高度从小到大排列,如果要淹没一个格子,需要比它小的所有格子的雨水的海拔高度都达到这个格子的海拔高度,count=a[i]*(i-1)-sum{a[1],a[2]……a[i-1]}。这道题有很多种方法,我这种还行但我写的代码很难看,懒得简化了

2016-01-16 14:54:46 521

原创 弄清size_t以及有符号数与无符号数的比较

一:size_t的具体概念size_t一般在 sizeof()中出现,常用于内存分配,sizeof运算符以字节为单位返回其操作数的大小,而C规定sizeof返回size_t类型的值,这是一个无符号整数类型,一般也就是unsigned int。但它对应的字节大小跟操作系统有关,size_t的真实类型与操作系统有关:在32位架构中被普遍定义为:   typedef unsigned i

2016-01-16 08:45:07 3651 1

原创 数据结构——链表

一.线性链表1.线性链表的建立及数据输入输出#include#include#include#define MAX 45struct node{ char title[MAX]; int rating; struct node *next;};int main(){ struct node *head = NULL; struct node *pre, *cur

2016-01-14 21:36:27 362

空空如也

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

TA关注的人

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