数据结构与算法
文章平均质量分 73
目前专栏包括PTA平台上题目的C++或C语言实现, 部分题目会涉及测试集的思考和提示.
闲不下来的王小C
闲不下来,只是闲不下来
展开
-
四阶段法-出行分布计算 底特律法
底特律法计算未来出行分布% trans_planning 计算未来出行量分布function main()clc;clear;confirm = 0;while confirm == 0 inner = 0; % 是否使用算例标识 e = input('确定本次计算使用误差精度(推荐0.03):'); OD = input('请输入当前交通量方阵(输入1使...原创 2020-04-05 23:42:00 · 2842 阅读 · 3 评论 -
1021 Deepest Root (25 分)c++实现【已AC】
#include<iostream>#include<set>#include<vector>#include<cstdio>using namespace std;const int maxn = 10005;set<int> G[maxn];bool marked[maxn]{ 0 };int component = ...原创 2020-03-24 21:31:06 · 138 阅读 · 0 评论 -
C语言指针突破
指针的基本概念"&"的使用"*"的使用指针变量的申明指针变量的初始化指针键指针的表达式指针指向的变量参与运算指针值与整数进行运算指针使用快捷运算符指针使用关系运算符指针的递增与比例因子指针与数组指针与字符串指针数组指向函数的指针指针类型的兼容性与类型转换指针与结构体指针原创 2017-09-30 20:44:27 · 317 阅读 · 0 评论 -
code block使用问题汇总
1.CodeBlocks,cannot open output file permission denied 在CodeBlocks环境,mingw32编译器时经常遇到这个问题,原因有两个: 1.有正在run的exe文件。 2.目录名字中有空格或汉字。 对于第一个问题,从任务管理器找到exe结束任务,对于第二个问题,把路径改成全英文。2.C++程序调试时出现“Program原创 2017-09-30 17:57:32 · 3296 阅读 · 0 评论 -
DIAL算法计算单位流率-python实现
dail算法DIAL算法又称STOCH算法,它基于路段分配流量,并将OD量仅仅加载到连接OD对的有效路径上,成功避免了路径枚举,被公认为是相当高效的Logit型随机网络加载算法。也就是说,DIAL算法并非利用Logit随机加载模型计算路径流量和路段流量,但结果却与这些公式吻合。dail算法步骤对OD起点r,DIAL算法执行如下3个步骤: 步骤1:预处理 (1)对 ∀i∈N∀i∈...原创 2018-04-26 20:48:20 · 3756 阅读 · 7 评论 -
论文阅读-AKS_CoRR_2011
作者年份近似比Hoogeveen199153\frac{5}{3}35An, Kleinberg, Shmoys20121+52\frac{1+\sqrt{5}}{2}21+5Sebo201385\frac{8}{5}58Rico Zenklusen20191.5Title: Improving Christofides’s A...原创 2019-12-12 15:56:41 · 594 阅读 · 0 评论 -
论文阅读-Hoogeveen_1991_OR-Letters
作者年份近似比Hoogeveen199153\frac{5}{3}35An, Kleinberg, Shmoys20121+52\frac{1+\sqrt{5}}{2}21+5Sebo201385\frac{8}{5}58Rico Zenklusen20191.5Title: Analysis of Christofides’ ...原创 2019-12-12 15:49:20 · 490 阅读 · 0 评论 -
论文阅读-Click Chain Model in Web Search
论文出处: WWW 2009论文作者: Fan Guo, Chao Liu, Christos Faloutsos等概括能够增量计算的基于Bayes的click model, 核心是Bayes公式中的"证据"函数的计算, 以及模型中用户行为相关的参数的估计.模型发展 cascade model - DCM&UCM - CCMIntroductionclick model提供了一...原创 2019-12-08 17:00:03 · 272 阅读 · 0 评论 -
1067 Sort with Swap(0, i) (25 分)【已AC】
题目题目链接: 1067 Sort with Swap(0, i)题目大意是只用sort(0, x)的方式,对一个[0, …, N-1]的序列进行排序. 其中sort(0, x)的意思是调换序列中的0和x元素的位置.例如:原序列:{4, 0, 2, 1, 3} Swap(0, 1) =&gt; {4, 1, 2, 0, 3} // 0和1位置调换Swap(0, 3) =&gt; {4,...原创 2019-03-10 15:59:01 · 345 阅读 · 0 评论 -
pat考试总结
参加完pat甲级2018冬季考试, 考的不是很理想, 只拿了70多分, 总结一下.IDE使用: vs2010不需要关闭SDL检查, 默认就没有打开; 考试过程中不能使用右键快捷键, 向控制台粘贴内容可以通过下图中的方法.熟悉机房的薄膜键盘, 之前就听说考场键盘比较影响发挥, 即使我以前一直用的是长键程的机械键盘, 但还是因为考场键盘的布置比较奇怪, 有些影响打字速度和心情.拿到题目, 仔细...原创 2018-12-10 16:13:09 · 2756 阅读 · 0 评论 -
1154 Vertex Coloring (25 分)(c++实现 已AC)
题目题目链接: https://pintia.cn/problem-sets/994805342720868352/problems/1071785301894295552题目大意: 给定一个图, 以及图上的边, 任意一条边连接的点颜色不相同, 若成立,...原创 2018-12-10 15:56:33 · 377 阅读 · 0 评论 -
1155 Heap Paths (30 分)(c++实现 已AC)
题目:https://pintia.cn/problem-sets/994805342720868352/problems/1071785408849047552题目大意: 给一个二叉树判断是否是最大或最小堆. 这道题考察的知识点是递归和dfs, 通过一次深度优先的遍历就可以把所有路径找出来, 每找出一个路径就判断一下是不是递减, 是不是递增.注意递归题目中, 重点关注边界条件–到达叶节点,...原创 2018-12-10 10:24:17 · 245 阅读 · 0 评论 -
1153 Decode Registration Card of PAT (25 分)(c++实现 已AC)
题目题目链接: https://pintia.cn/problem-sets/994805342720868352/problems/1071785190929788928题目大意: 这是一道排序题, 考察内容包括sort函数的使用和自定义compare函数的写法. 题目不难, 注意输出格式, 以及要求稍微有些繁琐.代码(待重构)#include&lt;iostream&gt;#inc...原创 2018-12-10 09:45:54 · 344 阅读 · 0 评论 -
1152 Google Recruitment (20 分)(c++实现 已AC)
思路题目的大意很简单, 在L长度的数字字符串中找到第一个k长度的素数. 如果找不到哦啊返回404, 找到了返回这个k长度的字符串.一个简单暴力的思路就是遍历L长度, 检查从这个字符起往后k长度的字符串表示的数字是否是素数.测试点:// 样例测试点20 523654987725541023819// 样例测试点10 32468024680// 当L 小于k时, 返回`404`...原创 2018-12-10 09:40:35 · 2881 阅读 · 0 评论 -
PTA活用递推类 1093 Count PAT's (25 分),1101 Quick Sort (25 分)
思路对于一类涉及序列的问题, 假如序列中每一位的值都可以通过“左右关系”计算得到,可以考虑所谓的“左右两侧的结果”是否可以通过递推的预处理来得到,后面的计算就不用反复求解。——算法笔记A1093处理的是PAT三个字母之间的前后关系, 计数只与‘A’左右的‘P’和‘T’数量有关,故可以用此办法A1101处理的是当前数字的左右的大小关系, 是否左边都比它小,右边都比它大, 这道题的思路...原创 2018-11-25 22:35:48 · 140 阅读 · 0 评论 -
树状数组之查找中位数详解(1057 Stack (30 分))
intuition最近在刷pta甲级的题目, 解题过程中遇到一个之前没有用过的知识点——树状数组, 原题链接在这里1057 Stack (30 分), 题目的大致意思是在传统的栈的基础上,要添加一个查询当前栈中元素的中位数的功能, 首先想到可以用通过维护一个BST来做, 在一个二叉搜索树中插入和删除元素都是数据结构的基本内容, 查找在所有节点中比当前节点小的节点数也可以在log(n)的复杂度实现...原创 2018-11-23 20:43:16 · 2069 阅读 · 4 评论 -
1043 Is It a Binary Search Tree (25 分)C++实现(已AC)
题目题目链接 :https://pintia.cn/problem-sets/994805342720868352/problems/994805440976633856思路:建树的思路是不可行的, 对于普通二叉树一定需要中序遍历和另一个遍历来复原,对于二叉搜索树来说, 即使有一些规则限制, 通过一个前序遍历序列, 不能判断在只有一侧树时的情况. 引起的问题:判断镜像还是原始二叉搜索树后...原创 2018-11-13 15:35:02 · 378 阅读 · 0 评论 -
1026 Table Tennis (30 分)C++实现(已AC)
题目:题目链接:https://pintia.cn/problem-sets/994805342720868352/problems思路:感觉我的思路比较清奇, 导致代码写的比较长…我的思路是: 建立一个客户列表,时间按照秒保存,按照到达时间排序; 桌子放入一个列表, 桌子的结构包括一个计数器,一个释放时间,一个vip的标签; 这样数据就准备好了开始干坏事.在一个大循环里:更新最早有...原创 2018-11-05 16:47:37 · 829 阅读 · 0 评论 -
1015 Reversible Primes (20 分)C++实现 (已AC)
题目题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805495863296000思路:这道题的思路很简单, 检查输入数是否是质数, 如果是的话, 把它按进制转换, 再翻转, 转换回10, 判断是否为质数.坑点:别忘了1不是质数检查输入的N是否是质数本题中不涉及的可能存在的坑, 如果D是一个大于1...原创 2018-10-31 16:49:54 · 156 阅读 · 0 评论 -
1014 Waiting in Line (30 分)C++实现(已AC)
题目题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805498207911936思路:创建一个窗口列表,每个列表维护一个M长度的队列, 以及队列末尾的人服务结束的时间, 逐个插入客户,当有队列不满的时候, 直接插入到当前人数最少的队列;当所有队列都满的时候, 找到队首客户服务时间结束最早的队列,把队首客户...原创 2018-10-31 11:48:51 · 400 阅读 · 0 评论 -
1012 The Best Rank (25 分)c++实现(已AC, 已重构)
题目:链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805502658068480思路:像是自己见一个数据库, 用以增和查, 我的思路是按照4个科目(M, C, E, A)建四个表, 每张表的内容为&lt;姓名, 成绩&gt;,这个表在类内用map维护, 成绩输入完成后, 做一张&lt;姓名, 排名&gt;表...原创 2018-10-30 19:11:56 · 227 阅读 · 0 评论 -
1010 Radix (25 分)C++实现-终于AC了
题目题目链接:https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536是一道目前为止比较有意思的题,也是碰到的为数不多需要考虑上溢出的题目知识点:整型上溢出, 二分查找思路:题目是一个进制转化问题,思路是将两个数都转化为10进制进行比较,对于未知数的base通过逐个base尝试转化为10进制...原创 2018-10-30 10:17:34 · 1810 阅读 · 2 评论 -
1004 Counting Leaves (30 分)c++实现
题目https://pintia.cn/problem-sets/994805342720868352/problems/994805521431773184解题思路与代码实现思路1:构建一个结构体,包含三个元素,id,是否有孩子, 层级构建一个数组维护树结构读取元素以及其孩子,对其孩子id对应的数组位置的level进行更新,为本节点+1读取完数据后, 按照level对数组遍历, 对...原创 2018-10-24 18:31:02 · 312 阅读 · 0 评论 -
C语言 06-图2 Saving James Bond - Easy Version
This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land ...原创 2018-04-24 23:34:24 · 288 阅读 · 0 评论 -
c语言 04-树6 Complete Binary Search Tree
A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:The left subtree of a node contains only nodes with keys less than the node’s key.The right su...原创 2018-06-03 15:07:03 · 339 阅读 · 0 评论 -
c语言 05-树8 File Transfer
05-树8 File TransferWe have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a fi...原创 2018-06-03 15:16:31 · 205 阅读 · 0 评论 -
C语言 04-树5 Root of AVL Tree
An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is...原创 2018-04-24 20:29:09 · 287 阅读 · 0 评论 -
C语言 03-树3 Tree Traversals Again
An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac...原创 2018-03-29 23:33:45 · 1095 阅读 · 0 评论 -
C语言 03-树2 List Leaves
Given a tree, you are supposed to list all the leaves in the order of top down, and left to right.Input Specification:Each input file contains one test case. For each case, the first line gives ...原创 2018-03-29 23:20:40 · 634 阅读 · 0 评论 -
C语言 02-线性结构4 Pop Sequence
Given a stack which can keep MMM numbers at most. Push NNN numbers in the order of 1, 2, 3, …, NNN and pop randomly. You are supposed to tell if a given sequence of numbers is a possible pop sequence ...原创 2018-03-24 14:45:47 · 513 阅读 · 1 评论 -
C语言 02-线性结构3 Reversing Linked List
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elements on L. For example, given L being 1→2→3→4→5→6, if K=3, then you must output 3→2→1→6→5→4; if K=4,...原创 2018-03-24 14:44:43 · 578 阅读 · 0 评论