
c语言
文章平均质量分 61
Stark_JC
这个作者很懒,什么都没留下…
展开
-
C语言笔记
指针相关 sizeof和strlen的区别: 字符指针 字符指针创建 用指针进行字符修改 指针大小 指针运算 与自增/自减运算符结合 二维数组,指针数组,数组指针 函数指针与指针函数 typedef 结构 结构声明 ->运算符与++、*等结合使用 联合 联合的大小 位字段 输入与输出 %d,有符号整型数,字节数看机器,本机4字节 printf...原创 2018-03-03 14:41:35 · 454 阅读 · 0 评论 -
大数运算
乘法 数组保存值,最好逆向保存。 一个数的第i 位和另一个数的第j 位相乘所得的数,累加到结果的第i+j 位上。这里i, j 都是从右往左,从0 开始数。ans[i+j]=a[i]∗b[j];ans[i+j]=a[i]∗b[j];ans[i+j] = a[i]*b[j]; 数组里保存原始值,最后再处理进位。 例题 描述: 求2^N的值,其中512<=N<=1024。 ...原创 2018-09-16 21:15:47 · 316 阅读 · 0 评论 -
回溯法
回溯法 一般思路: void func(层数){ if(满足结束条件){ 输出; } else{ for i in 当前层数可行解{ func(层数+1); } } } n皇后问题 代码 #include "stdafx.h" #include <vector&原创 2018-09-16 21:15:31 · 427 阅读 · 0 评论 -
贪婪算法
贪婪算法 huffman树 最短路径算法 dijkstra 贪婪算法 在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的仅是在某种意义上的局部最优解。贪心算法没有固定的算法框架,算法设计的关键是贪心策略的选择,贪心策略使用的前提是局部最优能导致全局最优。必须注意的是,贪心算法不是对所有问题都能得到整体最优解,选择的贪心策略必须具备无...原创 2018-09-16 21:15:11 · 529 阅读 · 0 评论 -
动态规划
动态规划 走格子问题 最长公共子序列 例题 hero shoot eagle 动态规划 一般解法: 1. 利用最优子结构定义一个关于解的目标值的递归方程,采用“自底向上”而非使用递归时的“自顶向下”。 2. 将每个子问题的解保留,需要时可以查找。 走格子问题 问题:从左下角走到右上角,每步只能往上、右方向,每个格子有值,求到终点值最大。 思路: 假设矩阵为如下形...原创 2018-09-08 20:19:10 · 503 阅读 · 0 评论 -
OJ 正则二叉树(使用递归)
问题 给定一颗二叉查找树,其中结点上存储整数关键字,请你判断它是否一棵正则二叉树,即每个内部结点均有两个子结点。 输入 第一行是测试样例数 T(T <= 20),接下来是 T 个测试样例。对于每个测试样例,第一行是二叉树结点个数 n (n <= 30),第二行是一个含有n个关键字的序列,表示二叉树的先序遍历结果。保证关键字均不相同。 输出 如果二叉查找树是正则的,则输...原创 2018-09-08 19:22:39 · 3628 阅读 · 0 评论 -
OJ(while+cin.get()判断结束)
今天要记录一道看起来十分简单的OJ题目,但开始对于cin的一些操作忘得差不多了,没做出来,故记下来给自己提个醒。 描述 给出包含N个单词的一行输入,输出N行。第一行和输入一样。每次输出过一行后,这一行的第一个单词在下一行被放到最后。 输入 包含N个单词的字符串,单词以一个空格分开。N不在输入中给出,你需要计算单词的数量来获得。字符串包含的字符数小于100。 输出 输出N行。...原创 2018-09-01 17:10:18 · 2189 阅读 · 0 评论 -
OJ(string截取与初始化)
Description 给定一个正整数,在中间添加一个加号,要求得到的加法式子的结果最小。 Input 输入的第一行是一个整数T(T <= 60),代表输入数据的组数。每组数据是一个整数N,N至少2位,最多8位,且不含0。 Output 对于每组数据,输出可能得到的最小和。 Example Input 3 19 217 5123 Output 1...原创 2018-09-01 17:10:03 · 342 阅读 · 0 评论 -
OJ(getline自定义分隔符)
描述 输入是某电话公司的若干客户姓名及电话号码,中间用逗号分隔,然后是若干要查询的客户姓名,输出是这些查询的客户姓名及其电话。 输入 第一行是一个正整数n(不超过100000),表示某电话公式的客户个数,然后是n个客户,每个客户占一行,由一个字符串构成的姓名和一个电话号码组成,中间用逗号分隔,每个姓名的长度不超过45。 接下来是一个正整数m,然后是m个需要查询的客户姓名,每个姓名占一行。 ...原创 2018-09-01 17:09:46 · 1953 阅读 · 0 评论 -
数据结构之排序(1)——插入排序
直接插入排序 不带哨兵 带哨兵 拓展元素为结构时 折半插入排序 希尔排序 各算法复杂度表插入排序主要包括三个:直接插入排序、折半插入排序和希尔排序。基本思想都是: 每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中,直到全部记录插入完成。 下面依次进行讲解并编程实现。直接插入排序主要思想: 1. 循环i从1~n-1,每次循环执行步骤2-4。 2. 查找arr[i]在arr[原创 2018-04-11 16:34:36 · 748 阅读 · 0 评论 -
c++ 大小写转换
char 字符大小写转换 #include <iostream> using namespace std; int main() { char c = 'e'; c = toupper(c);//并不会直接覆盖 cout << c; system("pause"); return 0; } string 字符串大小写转换 #i...原创 2018-09-16 21:17:35 · 590 阅读 · 1 评论