组合数C(n,m)的计算

C(n,m)的计算方式: 1.公式:C(n,m) = n!/((n-m)! * m!),在算法上较难实现,阶乘很快会爆 long long 2.递推:C(n,m) = C(n-1,m-1) + C(n-1,m) 在算法上当然会采用第二种方式计算,而且因为 C(n,m)本身值很大,所以大多数碰见它的情

Trie树(Prefix Tree)介绍

什么是 Trie 树 Trie 树,又叫字典树、前缀树(Prefix Tree)、单词查找树 或 键树,是一种多叉树结构。如下图: 上图是一棵 Trie 树,表示了关键字集合{“a”, “to”, “tea”, “ted”, “ten”, “i”, “in”, “inn”} 。从上图可以归纳出 Tr

 

C语言对文件的读写操作

文件使用方式 含义 如果指定的文件不存在 “r”(只读) 为了输入数据,打开一个已存在的文本文件 出错 “w”(只写) 为了输出数据,打开一个文本文件 建立新文件 “a”(追加) 向文本文件尾部添加数据 出错 “rb”(只读) 为了输入数据,打开一个二进制文件 出错 “wb”(只写) 为了输出数据,

基础 

C语言 多文件项目

将所有文件放到一个项目下,可以一次编译所有 cpp 文件,通过 main 文件引用别文件中函数的方法:将所有函数声明在一个.h 文件中,在需要调用这个函数的文件中#include".h"即可(文件前面加上#pragma once,可以保证头文件只被编译一次,避免一些错误) #include<> 首先

基础 

拓扑排序 最短工期 PTA

题目: 一个项目由若干个任务组成,任务之间有先后依赖顺序。项目经理需要设置一系列里程碑,在每个里程碑节点处检查任务的完成情况,并启动后续的任务。现给定一个项目中各个任务之间的关系,请你计算出这个项目的最早完工时间。 输入格式: 首先第一行给出两个正整数:项目里程碑的数量 N(≤)和任务总数 M。这里

 

STL常用容器总结之十一:heap

头文件 algorithm make_heap();建堆,大顶堆从小到大排序,小顶堆从大到小排序 pop_heap();把第一个和最后一个调换,然后把[first,end-1]重新构堆 push_heap();假设一开始是个有效堆,加进来一个或者一组元素重新构堆 sort_heap();堆排序 #i

STL 

约瑟夫环

n 个人中每数到 m 出队一人,第 k 次出队人的编号 //约瑟夫环// #include<stdio.h> //返回的是第K次出队的人的编号// int ysfh(int n, int m, int k) { if (k == 1) return (n + m - 1) %

递归 

c语言中time函数的用法

头文件 time.h @函数名称: localtime 函数原型: struct tm *localtime(const time_t *timer) 函数功能: 返回一个以 tm 结构表达的机器时间信息 函数返回: 以 tm 结构表达的时间,结构 tm 定义如下: struct tm{

基础 

STL常用容器总结之八:map

map 的详细用法: map 是 STL 的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在 map 中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可能在我们处理一对一数据的时候,在编程上提供快速通道。这里说下 map 内部数据的组织,map 内

STL 

STL常用容器总结之九:set

set 的概念 set 翻译为集合,是一个内部有序且不含重复元素的容器,可用于删除重复元素的题目。 set 的基本操作 头文件#include<set> set<typename> s;定义一个 set; s.insert(x);将 x 插入 set 容器中,并自动排序和去重 O(logN)//注意

STL