自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 最长递增子序列问题(算法导论作业15.4-5、15.4-6)

问题描述对于长度为n的序列S[1...n],找出长度最大的子序列,其子序列的每个元素均递增。15.4-5、时间复杂度O(n^2)刚看到这题时,想到了个投机取巧的方法。因为书中此节介绍了LCS(最长公共子序列)算法,于是可以直接将这个序列排序O(nlogn),然后将排序后的序列与原序列求LCS O(n^2),就可以求得解。后来经同学提醒,由于序列中可能存在重复元素,所求子序列只能保证非递...

2018-11-18 14:12:52 1434 2

原创 算法导论中红黑树插入算法的C+实现及优化改进

之前在上到算导的红黑树插入时,突然冒出个想法,下课的时候找徐教授交流,由于当时也没想透彻加上表述不清,就没深入下去。恰巧实验课要做红黑树插入的实现,于是整理了一番,记录于此以备以后查看。由于C++水平太菜,代码基本用C实现,用到了一些C++的新特性。一、红黑树插入实现首先是结点的数据结构,一共5个,分别是数据、颜色、指向左右孩子和父结点的指针,具体代码如下typedef stru...

2018-11-05 10:40:09 666

原创 第一章

函数题Position BinarySearch( List L, ElementType X ){ Position head, rear; head = 1, rear = L->Last; while(head <= rear){ if(L -> Data[(head + rear) / 2] == X) return (head + rear) / 2; e...

2018-05-04 10:40:33 199

原创 二战浙大失利+调剂科大教训帖

本打算调剂结果出了就总结下备战考研一路走来的经验教训,无奈拖延症发作,直至今日才静下心来认真总结一番。   先说说自己的基本情况,供各位学弟学妹参考。  我本科南京一所普通211,机械工程及自动化专业,结构设计方面工作了快7年,对cs一无所知,而且本科成绩很烂,绩点2.1差点没能毕业,这么多年也基本忘光,可以说算是真正的从零开始。我大概是16年过年期间兴起的跨考念头,第一战心态没调整好,专业课复习...

2018-04-18 00:45:12 31110 22

原创 PAT A1020

模板题,考察建树和遍历的基本操作坑点:注意输出格式,建立变量num记录已输出的节点,最后一个节点后没有空格AC代码如下#include <iostream>#include <queue>using namespace std;const int max_n = 40;int n,post[max_n],in[max_n];struct node{ int ...

2018-03-13 11:23:57 384

原创 PAT A1052

思路:将所有节点sort一下,按从小到大输出坑点:给出节点可能有无效节点,故需要先把输入保存起来,再找出有效节点,另外还有全是无效节点的特殊情况。AC代码如下:#include <iostream>#include <algorithm>using namespace std;const int max_n = 100010;struct Node{ int ...

2018-03-11 17:10:03 314

原创 PAT A1132

AC代码如下#include <iostream>#include <cstring> using namespace std;int char_to_int(char str[],int l,int r){ int num = 0; for(int i = l ;i <=r ;i++){ num *= 10; num += (str[i] - ...

2018-03-11 15:16:14 386

原创 PAT A1128

AC代码如下#include <iostream>#include <cmath>using namespace std;const int max_k=210;int output[max_k]={0};const int max_n=1100;int queen[max_n]={0};bool is_solution(int n,int a[]){...

2018-03-11 15:15:03 470

原创 PAT A1120

AC代码如下#include <iostream>using namespace std;const int max_n=10010;int num[max_n]={0};int ID[100]={0};int friendID(int a){ int sum = 0; do{ sum+=a%10; a/=10; }while(a); return su...

2018-03-11 15:08:27 206

原创 PAT A1116

AC代码如下#include <iostream>#include <iomanip>using namespace std;const int max_n = 10010;int contestants[max_n] = {0};//记录参赛者的名次int query[max_n];bool is_prime_num(int num) { //只有名次2...

2018-03-11 15:06:52 196

原创 PAT A1112

思路:每读入字符判断是否为stucked,若不是加入not_stuck表,若是加入stuck表,最后输出stuck表及按规则输出原串坑点:要分两次遍历,第一次更新not_stuck表,第二次更新stuck表,否则遇到一个字符未被阻塞还需去检查之前有没有加入stuck表AC代码如下#include <iostream>#include <cstring>using nam...

2018-03-11 15:05:40 321

原创 PAT A1059

思路:先找出素数,然后分别判断是否为其因子。坑点:1、输入为1时单独输出。AC代码如下#include <iostream>#include <cmath>using namespace std;const int max_n = 100010;bool is_prime(int n){ if(n == 1) return false; int sqr = ...

2018-03-11 14:59:26 282

原创 PAT A1025

AC代码如下#include <iostream>#include <algorithm>#include <cstring>using namespace std;const int max_n=30010;struct Student{ char id[15]; int score; int location_number; int l...

2018-03-11 14:55:52 150

原创 PAT A1011

水题,AC代码如下:#include <iostream>using namespace std;double profit=1.0;char max_three(double a,double b,double c){ if(a>b){ if(a>c) { profit*=a; return 'W'; } else { profit*...

2018-03-11 14:53:33 149

原创 PAT A1060

主要思路:将输入的两个字符串转化成科学计数法,然后比较指数和底数是否全部相等。坑点:1、0001要正确把前面0删去2、若数据为0,需要将指数置为0AC代码如下#include <iostream>#include <string>using namespace std;const int max_n = 110;struct science_num{ stri...

2018-03-11 14:50:35 184

原创 PAT A1032

很简单的一题,两个链表共用尾节点,找出第一个共用节点的地址。主要思路:先求两个链表的表长,然后将长的一个先行遍历,直至两者相等,然后两表同时遍历,找到公共节点,将其输出。坑点:因为用int存储的地址,注意输出格式补齐5位AC代码如下#include <iostream>#include <cstring>using namespace std;const int m...

2018-03-11 14:44:20 576 1

原创 PAT A1008

没什么难点,AC代码如下#include <iostream>using namespace std;const int max_n = 110;int floor[max_n]={0}; int spend_time(int from , int to) { if(from < to) return 6*(to-from); else return 4*(fro...

2018-03-08 01:17:40 169

原创 PAT A1005

因为数据和在0-900之间,故可以采用一种取巧的方法,直接分成0-9,10-99,100-900三段输出AC代码如下#include <iostream>using namespace std;const int max_n = 110;char N[max_n];const char *num[]={"zero","one","two","three","four",&

2018-03-08 00:58:26 149

原创 PAT A1002

解题思路:1、构造结构体poly,包含两个成员(指数和系数),将输入的两个多项式分别保存到两个poly数组;2、比较两个多项式的低幂项,将指数较低的 指数和系数 作为和多项式的 指数和系数,若指数相同,则将系数和作为和多项式的系数(注意此处有一坑点,若两个多项式系数刚好为相反数,则和多项式系数为0);3、按格式输出和多项式。AC代码如下#include <iostream>using...

2018-03-07 23:14:35 182

原创 PAT A1001

      此题数据规模不大,可将a,b定义为int,直接将其相加即可。此题的难度在于要按照规定的格式输出sum,主要有两种思路。1,将sum从个位起,按位存放到字符数组中,每存3位,加上一个逗号,然后将字符数组从高位输出;2,将sum从低位起,每3位存放到整形数组中,然后从高位输出,输出注意补0和逗号。AC代码如下,采用第二种思路#include <iostream>using n...

2018-03-07 21:31:29 441

空空如也

空空如也

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

TA关注的人

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