自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Ken

  • 博客(125)
  • 问答 (2)
  • 收藏
  • 关注

原创 1005. 继续(3n+1)猜想 (25)

考查知识点:散列思路:用HashTable数组记录数字是否被覆盖,对输入的每一个数进行3n+1猜想的操作,对猜想操作过程中产生的每个数x,令HashTable[x]=1,表示被覆盖,将原先数组排序,再作为下标输出未被覆盖的数即可。#include<cstdio>#include<algorithm>using namespace std;bool cmp(int a,int b){ r

2016-08-03 18:07:32 973

原创 1004. 成绩排名 (20)

考查知识点:查找元素思路:利用结构体保存学生的信息,每读入一个学生的信息分别与max和min作比较并更新,最后得到的max,min即为答案。#include<cstdio>struct Student{ char name[15]; char num[15]; int grade;}temp,max,min;int main(){ int n; max.

2016-08-03 17:50:32 2866 2

原创 1004. Counting Leaves (30)-DFS

考查知识点:树的遍历思路:这个题重点在于要体会到用邻接表来存储树,刚开始构建树的时候考虑要怎么一层套一层啊,显然是对邻接表的理解不深刻,构建完树后遍历此树找到叶子节点即可,其中遍历方式可分为dfs和bfs,此种方法为dfs,每次递归时将此时的深度传递下去以便对深度数组的更新。稍后补上bfs版本#include<iostream>#include<cstdio>#include<algorithm

2016-08-03 17:42:16 514

原创 1003. Emergency (25)

考查知识点:最短路径这道题主要是能用代码写出迪杰斯特拉算法来即可秒,暂时看的很懵懂,再碰到题的时候在加深理解吧。#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int MAXV = 510; //最大定点数 const int INF = 10000000; //无穷

2016-07-20 20:15:41 409

原创 1002. A+B for Polynomials (25)

考察知识点:简单模拟这道题其实很简单,考虑到将指数作为下标存放系数即可迎刃而解。#include<cstdio>const int max_n=1111;double p[max_n]={};int main(){ int k,n,count=0; double a; scanf("%d",&k); for(int i=0;i<k;i++){

2016-07-18 21:36:36 338

原创 1003. 我要通过!(20)

考查知识点:简单数学思路:注意有规律,p之前A的个数x乘以p与t之间A的个数y等于t之后A的个数z,即x*y=z,即可迎刃而解 。#include<cstdio> #include<cstring>int main(){ int n; scanf("%d",&n); while(n--){ char str[

2016-07-18 19:08:16 4005 1

原创 1001. A+B Format (20)

考察知识点:字符串处理思路:此题看起来非常的简单,实则要仔细考虑输出形式,找到- 1,234 - 12,345 - 123,456 - 1,234,567这种输出规律的特点,刚开始我竟然不知道这种国际惯例是这样输出的,还以为是这样- 123,4 - 123,452333~~ #include<cstdio>#include<cstring>int main(){ int

2016-07-17 21:56:46 456

原创 1002. 写出这个数 (20)

相关知识点:字符串处理思路: (1)用getchar()的形式每读入一个字符就将字符对应的数字进行累加。 (2)通过(1)将累加后的数sum,为了方便将sum从高位到低位输出,用sprinf转换成字符数组。 (3)从高位到低位枚举数组s[],输出每一位对应的字符串。#include<cstdio> int main(){ int sum=0; char ch,s[4];

2016-07-17 19:10:41 6460 2

原创 1001. 害死人不偿命的(3n+1)猜想 (15)

思路:读入题目给出的n,之后用while循环语句反复判断n是否为1: (1)如果n为1,则退出循环。 (2)如果n不为1,则判断n是否为偶数,如果是偶数,则令n除以2;否则令n为(3*n+1)/2。之后令计数器count加1. 这样当退出循环时,count的值就是需要的答案。#include<cstdio>int main(){ int n, count = 0; scanf

2016-07-17 17:50:31 1150

原创 4-12 二叉搜索树的操作集 (30分)

本题要求实现给定二叉搜索树的5种常用操作。 函数接口定义:BinTree Insert( BinTree BST, ElementType X ); BinTree Delete( BinTree BST, ElementType X ); Position Find( BinTree BST, ElementType X ); Position FindMin( BinTree BST )

2016-07-16 00:01:10 5812

原创 4-11 先序输出叶结点 (15分)

本题要求按照先序遍历的顺序输出给定二叉树的叶结点。 函数接口定义:void PreorderPrintLeaves( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Le

2016-07-14 19:56:24 2746

原创 4-10 二分查找 (20分)

本题要求实现二分查找算法。 函数接口定义:Position BinarySearch( List Tbl, ElementType K );其中List结构定义如下:typedef int Position; typedef struct LNode *List; struct LNode { ElementType Data[MAXSIZE]; Position Last

2016-07-14 19:36:34 3563

原创 4-9 二叉树的遍历 (25分)

本题要求给定二叉树的4种遍历。 函数接口定义:void InorderTraversal( BinTree BT ); void PreorderTraversal( BinTree BT ); void PostorderTraversal( BinTree BT ); void LevelorderTraversal( BinTree BT );其中BinTree结构定义如下:typed

2016-07-13 22:12:59 12812 1

原创 4-8 求二叉树高度 (20分)

本题要求给定二叉树的高度。 函数接口定义:int GetHeight( BinTree BT );其中BinTree结构定义如下:typedef struct TNode *Position; typedef Position BinTree; struct TNode{ ElementType Data; BinTree Left; BinTree Right;

2016-07-13 18:22:00 3913

原创 4-7 在一个数组中实现两个堆栈 (20分)

本题要求在一个数组中实现两个堆栈。 函数接口定义:Stack CreateStack( int MaxSize ); bool Push( Stack S, ElementType X, int Tag ); ElementType Pop( Stack S, int Tag );其中Tag是堆栈编号,取1或2;MaxSize堆栈数组的规模;Stack结构定义如下:typedef int Po

2016-07-11 19:12:33 10613 5

转载 动态规划小入门

2016-07-05 18:55:23 429

原创 POJ-3253 Fence Repair

Description Farmer John wants to repair a small length of the fence around the pasture. He measures the fence and finds that he needs N (1 ≤ N ≤ 20,000) planks of wood, each having some integer length

2016-07-02 19:39:51 351

原创 POJ-3069 Saruman's Army

DescriptionSaruman the White must lead his army along a straight path from Isengard to Helm’s Deep. To keep track of his forces, Saruman distributes seeing stones, known as palantirs, among the troop

2016-06-28 17:31:47 287

原创 4-6 带头结点的链式表操作集

本题要求实现带头结点的链式表操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下:typedef struct

2016-06-26 17:30:26 1199

原创 POJ-3617 Best Cow Line

Description FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual”Farmer of the Year” competition. In this contest every farmer arranges his cows in a line and herds them past the judges.The co

2016-06-25 15:36:32 335

原创 POJ-2386 Lake Counting

Description Due to recent rains, water has pooled in various places in Farmer John’s field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares . Each square contains e

2016-06-23 16:42:07 362

原创 4-5 链式表操作集

本题要求实现链式表的操作集。函数接口定义:Position Find( List L, ElementType X ); List Insert( List L, ElementType X, Position P ); List Delete( List L, Position P ); 其中List结构定义如下:typedef struct LNode *PtrToLNode; stru

2016-06-22 22:11:43 1485

原创 POJ-1852 Ants

An army of ants walk on a horizontal pole of length l. cm, each with a constant speed of 1 cm/s. When a walking ant reaches an end of the pole, it immediatelly falls off it. When two ants meet they tur

2016-06-21 18:02:57 563

原创 4-4 链式表的按序号查找

本题要求实现一个函数,找到并返回链式表的第K个元素。函数接口定义:ElementType FindKth( List L, int K ); 其中List结构定义如下:typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNo

2016-06-20 20:41:23 5687

原创 4-3 求链式表的表长

本题要求实现一个函数,求链式表的表长。函数接口定义:int Length( List L ); 其中List结构定义如下:typedef struct LNode *PtrToLNode; struct LNode { ElementType Data; PtrToLNode Next; }; typedef PtrToLNode List; L是给定单链表,函数Len

2016-06-20 17:12:44 5849

原创 4-2 顺序表操作集 (20分)

本题要求实现顺序表的操作集。函数接口定义:List MakeEmpty(); Position Find( List L, ElementType X ); bool Insert( List L, ElementType X, Position P ); bool Delete( List L, Position P ); 其中List结构定义如下:typedef int Positio

2016-06-17 16:51:45 14964 4

原创 4-1 单链表逆转 (20分)

本题要求实现一个函数,将给定的单链表逆转。函数接口定义:List Reverse( List L ); 其中List结构定义如下:typedef struct Node *PtrToNode; struct Node { ElementType Data; /* 存储结点数据 */ PtrToNode Next; /* 指向下一个结点的指针 */ }; typedef

2016-06-16 17:10:48 11985 1

原创 PAT乙级—1048. 数字加密(20)-native

本题要求实现一种数字加密方法。首先固定一个加密用正整数A,对任一正整数B,将其每1位数字与A的对应位置上的数字进行以下运算:对奇数位,对应位的数字相加后对13取余——这里用J代表10、Q代表11、K代表12;对偶数位,用B的数字减去A的数字,若结果为负数,则再加10。这里令个位为第1位。输入格式:输入在一行中依次给出A和B,均为不超过100位的正整数,其间以空格分隔。输出格式:在一行中输出加密后的结

2016-06-13 16:40:35 2887

原创 PAT乙级—1019. 数字黑洞 (20)-native

给定任一个各位数字不完全相同的4位正整数,如果我们先把4个数字按非递增排序,再按非递减排序,然后用第1个数字减第2个数字,将得到一个新的数字。一直重复这样做,我们很快会停在有“数字黑洞”之称的6174,这个神奇的数字也叫Kaprekar常数。例如,我们从6767开始,将得到7766 - 6677 = 1089 9810 - 0189 = 9621 9621 - 1269 = 8352 8532

2016-06-13 15:44:00 470

原创 PAT乙级—1018. 锤子剪刀布 (20)-native

大家应该都会玩“锤子剪刀布”的游戏:两人同时给出手势,胜负规则如图所示:现给出两人的交锋记录,请统计双方的胜、平、负次数,并且给出双方分别出什么手势的胜算最大。输入格式:输入第1行给出正整数N(<=105),即双方交锋的次数。随后N行,每行给出一次交锋的信息,即甲、乙双方同时给出的的手势。C代表“锤子”、J代表“剪刀”、B代表“布”,第1个字母代表甲方,第2个代表乙方,中间有1个空格。输出格式:输出

2016-06-13 15:25:17 1030

原创 PAT乙级—1017. A除以B (20)-native

本题要求计算A/B,其中A是不超过1000位的正整数,B是1位正整数。你需要输出商数Q和余数R,使得A = B * Q + R成立。输入格式:输入在1行中依次给出A和B,中间以1空格分隔。输出格式:在1行中依次输出Q和R,中间以1空格分隔。输入样例: 123456789050987654321 7 输出样例: 17636684150141093474 3//思路:此题在于模拟一个除法竖式的过程

2016-06-13 14:49:45 527

原创 PAT乙级—1016. 部分A+B (15)-native

正整数A的“DA(为1位整数)部分”定义为由A中所有DA组成的新整数PA。例如:给定A = 3862767,DA = 6,则A的“6部分”PA是66,因为A中有2个6。现给定A、DA、B、DB,请编写程序计算PA + PB。输入格式:输入在一行中依次给出A、DA、B、DB,中间以空格分隔,其中0 < A, B < 1010。输出格式:在一行中输出PA + PB的值。输入样例1: 3862767 6

2016-06-13 14:12:47 996

原创 PAT乙级—1014. 福尔摩斯的约会 (20)-native

大侦探福尔摩斯接到一张奇怪的字条:“我们约会吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大侦探很快就明白了,字条上奇怪的乱码实际上就是约会的时间“星期四 14:04”,因为前面两字符串中第1对相同的大写英文字母(大小写有区分)是第4个字母’D’,代表星期四;第2对相同的字符是’E’,那是第5个英文字母,代表一天里的第14个钟头(

2016-06-13 13:52:15 3362

原创 PAT乙级—1013. 数素数 (20)-native

令Pi表示第i个素数。现任给两个正整数M <= N <= 104,请输出PM到PN的所有素数。输入格式:输入在一行中给出M和N,其间以空格分隔。输出格式:输出从PM到PN的所有素数,每10个数字占1行,其间以空格分隔,但行末不得有多余空格。输入样例: 5 27 输出样例: 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89

2016-06-13 13:29:45 721

原创 PAT乙级—1012. 数字分类 (20)-native

给定一系列正整数,请按要求对数字进行分类,并输出以下5个数字:A1 = 能被5整除的数字中所有偶数的和; A2 = 将被5除后余1的数字按给出顺序进行交错求和,即计算n1-n2+n3-n4…; A3 = 被5除后余2的数字的个数; A4 = 被5除后余3的数字的平均数,精确到小数点后1位; A5 = 被5除后余4的数字中最大数字。 输入格式:每个输入包含1个测试用例。每个测试用例先给出一个

2016-06-13 13:01:49 409

原创 PAT乙级—1011. A+B和C (15)-native

给定区间[-231, 231]内的3个整数A、B和C,请判断A+B是否大于C。输入格式:输入第1行给出正整数T(<=10),是测试用例的个数。随后给出T组测试用例,每组占一行,顺序给出A、B和C。整数间以空格分隔。输出格式:对每组测试用例,在一行中输出“Case #X: true”如果A+B>C,否则输出“Case #X: false”,其中X是测试用例的编号(从1开始)。输入样例: 4 1 2

2016-06-13 12:51:33 717

原创 PAT乙级—1010. 一元多项式求导 (25)-native

设计函数求一元多项式的导数。(注:xn(n为整数)的一阶导数为n*xn-1。)输入格式:以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。输出格式:以与输入相同的格式输出导数多项式非零项的系数和指数。数字间以空格分隔,但结尾不能有多余空格。注意“零多项式”的指数和系数都是0,但是表示为“0 0”。输入样例: 3 4 -5 2 6 1 -2 0 输出样例

2016-06-12 17:01:14 694

原创 PAT乙级—1009. 说反话 (20)-native

给定一句英语,要求你编写程序,将句中所有单词的顺序颠倒输出。输入格式:测试输入包含一个测试用例,在一行内给出总长度不超过80的字符串。字符串由若干单词和若干空格组成,其中单词是由英文字母(大小写有区分)组成的字符串,单词之间用1个空格分开,输入保证句子末尾没有多余的空格。输出格式:每个测试用例的输出占一行,输出倒序后的句子。输入样例: Hello World Here I Come 输出样例:

2016-06-12 15:57:27 658

原创 PAT乙级—1008. 数组元素循环右移问题 (20)-native

一个数组A中存有N(N>0)个整数,在不允许使用另外数组的前提下,将每个整数循环向右移M(M>=0)个位置,即将A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(最后M个数循环移至最前面的M个位置)。如果需要考虑程序移动数据的次数尽量少,要如何设计移动的方法?输入格式:每个输入包含一个测试用例,第1行输入N ( 1<=N<=100)、M(M>=0)

2016-06-12 15:42:02 481

原创 PAT乙级—1007. 素数对猜想 (20)-native

让我们定义 dn 为:dn = pn+1 - pn,其中 pi 是第i个素数。显然有 d1=1 且对于n>1有 dn 是偶数。“素数对猜想”认为“存在无穷多对相邻且差为2的素数”。现给定任意正整数N (< 105),请计算不超过N的满足猜想的素数对的个数。输入格式:每个测试输入包含1个测试用例,给出正整数N。输出格式:每个测试用例的输出占一行,不超过N的满足猜想的素数对的个数。输入样例: 20

2016-06-12 15:29:27 1616

空空如也

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

TA关注的人

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