备忘录
Asura319
这个作者很懒,什么都没留下…
展开
-
Cube Reverse
一些枚举类题目会提到某种特殊的密码锁,比如按下一个钮旁边的按钮状态也会跟着变之类的。这个小玩应跟枚举关系不大,只是一个3×3的方块,我开始叹服我的无聊程度了。#include<stdio.h> #include<stdlib.h> #include<stdbool.h> #include<windows.h>#define MULTIPLE 5 // 一个点放大为若干乘以若干的方块 #define原创 2017-11-26 17:05:54 · 299 阅读 · 0 评论 -
适用于 C 控制台小游戏的双缓冲方法
摘要: 在 Windows 中使用 C 语言制作控制台小游戏可用的控制台双缓冲技术,此技术可以防止画面刷新时屏幕闪烁的现象,使画面过渡较为流畅。 在使用 C 语言制作控制台小游戏时,为了在画面更新的时候刷新显示内容,一个容易想到的方法是在每一帧刷新画面,Windows 下可以使用控制台命令刷新画面,形如: // 分配一块内存当作二维数组,存储屏幕显示的信息 char** new_screen(...原创 2018-04-12 18:06:55 · 5407 阅读 · 1 评论 -
使用指针表示引用类型描述函数内指针重定向的行为
听闻“大多数面试都会问到的问题”里有一道关于向函数内传入列表的题目,形如: def func(some_list): some_list[0] = 99; some_list = [33, 44, 55] return; li = [1, 2, 3] func(li) print(li) # 这里会显示什么? 答案是 “[99, 2, 3]” 。 因为...原创 2018-03-01 11:32:15 · 437 阅读 · 0 评论 -
Dijkstra 算法,“旅游规划”,另一种方式拯救詹姆斯邦德
“旅游规划”的题面如下:有了一张自驾旅游路线图,你会知道城市间的高速公路长度、以及该公路要收取的过路费。现在需要你写一个程序,帮助前来咨询的游客找一条出发地和目的地之间的最短路径。如果有若干条路径都是最短的,那么需要输出最便宜的一条路径。输入格式:输入说明:输入数据的第1行给出4个正整数N、M、S、D,其中N(2≤N≤500)是城市的个数,顺便假设城市的编号为0~(N−1);M是高速公路的条数;S...原创 2018-02-28 16:15:49 · 504 阅读 · 0 评论 -
图和两种遍历,Saving James Bond
图可以作为表示指定环境内所有对象的关系的形式。树可以认为是图的子集,图中节点的联系可能是成环的。图的元素包括边和点,按照不同的需要可能侧重表达点之间的关系或者点本身的信息。int graph[100][100] = {0}; ... void InsertEdge(int ver_a, int ver_b, int weight) { graph[ver_a][ver_b] = weig...原创 2018-02-07 17:51:20 · 425 阅读 · 0 评论 -
7-34 任务调度的合理性(25 分)_对图“入度为零”的简单判断方式
原题目见于PTA数据结构与算法题目集(中文)。 题目如下: ''' 假定一个工程项目由一组子任务构成,子任务之间有的可以并行执行,有的必须在完成了其它一些子任务后才能执行。 “任务调度”包括一组子任务、以及每个子任务可以执行所依赖的子任务集。 比如完成一个专业的所有课程学习和毕业设计可以看成一个本科生要完成的一项工程,各门课程可以看成是子任务。 有些课程可以同时开设,比如英语和C程序设计,它原创 2018-01-30 13:58:19 · 899 阅读 · 0 评论 -
埃氏筛法实例
关于埃氏筛法,简单说是选取素数较快的方式,这里展示一个返回素数表的函数。 注意这里的素数被置为 false。 //埃氏筛法实例, 初始全为 false, 非素数置为 true bool* PrimeTable(int table_size) { bool* table = (bool*)calloc(table_size+1, sizeof(bool)); int i,...原创 2018-01-08 17:00:31 · 871 阅读 · 0 评论 -
1040. 有几个PAT(25)_枚举和在线处理
题面长这样: 字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。 现给定字符串,问一共可以形成多少个PAT? 输入格式: 输入只有一行,包含一个字符串,长度不超过10^5,只包含P、A、T三种字母。 输出格式: 在一行中输出给定字原创 2017-12-27 14:58:56 · 288 阅读 · 0 评论 -
有关堆存取的习题两例:寻找大富翁、Windows消息队列
7-38 寻找大富翁(25 分) 和 7-26 Windows消息队列(25 分)两例关于堆的习题原创 2018-01-13 17:26:11 · 360 阅读 · 0 评论 -
有关堆 (数据结构) 的笔记
堆 (heap) 是一种存放数据的结构,其特性保证每次从堆中取出的数据是当前堆中的值最大 (或者最小,取决于你的定义) 的那一个。其他的数据结构如有序链表也能起到类似的作用,但涉及到频繁存取数据时效率不如堆。 通常使用数组形式表达的二叉树来表示一个堆。堆中的成员可以是基本的数据类型 (整数、浮点数或者字符) 或者自定义的数据类型 (比如结构体对象),但要保证它们可以以某种规则排序。原创 2018-01-13 16:26:00 · 551 阅读 · 0 评论 -
7-3 树的同构(25 分)
给定两棵树T1和T2。如果T1可以通过若干次左右孩子互换就变成T2,则我们称两棵树是“同构”的。 现给定两棵树,请你判断它们是否是同构的。 根据输入格式,可以想到树的建立可以使用一个结构体数组表示。再由树的特征,因为题意要判断树是否相同,是通过某两个内容一致的节点的特征是否一致来判断的,这里就不一定需要知道用数组表示的树的树根在哪里。原创 2017-12-18 21:40:04 · 702 阅读 · 0 评论 -
1024. 科学计数法 (20)(PAT乙级题库)
题面长这样: 科学计数法是科学家用来表示很大或很小的数字的一种方便的方法,其满足正则表达式[+-][1-9]”.”[0-9]+E[+-][0-9]+,即数字的整数部分只有1位,小数部分至少有1位,该数字及其指数部分的正负号即使对正数也必定明确给出。 现以科学计数法的格式给出实数A,请编写程序按普通数字表示法输出A,并保证所有有效位都被保留。 输入格式: 每个输入包含原创 2017-12-25 22:26:26 · 379 阅读 · 0 评论 -
C++ 简单模拟属性与函数左值
前言: C# 是优雅的编程语言,C# 的使用者可以方便地维护类中的字段,使用属性可以创建可读写或者只读的字段。而在 C++ 中也能简单地模拟这种方式。 样例: #include <iostream> /* * 模拟 C# 中的属性,属性支持读写但封装了保存值的变量 */ using namespace std; class Test { private: int ...原创 2018-08-12 22:00:33 · 360 阅读 · 0 评论