
知识体系
leoxry
天道酬勤,拼搏一个最好的自己送给未来的自己,每天开开心心敲代码就是一种幸福,不计得失,回归刚开始学习时内心的单纯
展开
-
二进制除法
二进制除法中包括除法和模2除法,两个计算并不同一、除法二、模2除法参考文章1链接:https://blog.youkuaiyun.com/e891377/article/details/85036212参考文章2链接:https://blog.youkuaiyun.com/u010190210/article/details/80707698...原创 2020-02-21 10:58:57 · 52971 阅读 · 2 评论 -
Idea - 问题 & 解决
1 Error:java: Compilation failed: internal java compiler error原因:项目中Java版本不一致解决:参考文章地址:https://blog.youkuaiyun.com/qq291539326/article/details/79311373/原创 2019-10-22 19:44:28 · 291 阅读 · 0 评论 -
树-堆结构
think: 1 今天上午学习了树中的堆结构将一些对结构的基本操作写了写,记录下来,后续继续优化。#include <stdio.h>#include <string.h>#include <stdlib.h>#define ElementType int#define MAXDATA 20000/* 根据具体情况定义为大于堆中所有可能元素的值*/#define MINDATA -1/*原创 2017-02-09 11:31:43 · 447 阅读 · 0 评论 -
考新郎——错排公式
think: 1主要考察错排公式中体现的递推思想 2延伸到n个数中m个数的错排错排公式链接 sdut题目链接 hdoj原题链接 参考博客1链接 参考博客2链接 参考博客3链接考新郎 Time Limit: 1000MS Memory Limit: 32768KBProblem Description 在一场盛大的集体婚礼中,为了使婚礼进行的丰富一些,司仪临时想出了有一个有意思的节目原创 2017-02-18 17:56:04 · 766 阅读 · 0 评论 -
N个数求和——天梯赛题目重现
think: 1题目将基础的求最大公约数和最小公倍数的知识深层次展现,题目让N个数求和,而这N个数以分数形式输入,将分数加减法和求最小公倍数知识相融合,将分母的约分化简则巧妙融合求最大公约数的知识,还有输出情况的多样性,更需要细心和心态平和5-1 N个数求和 (20分) 本题的要求很简单,就是求N个数字的和。麻烦的是,这些数字是以有理数分子/分母的形式给出的,你输出的和也必须是有理数的形式。原创 2017-02-21 16:38:43 · 3053 阅读 · 0 评论 -
镖局运镖——最小生成树(Kruskal算法)
think: 1图的最小生成树(Kruskal算法)——(并查集++)#include <stdio.h>#include <stdlib.h>int f[14];struct node{ int u; int v; int w;}ans[14];void Init(int *a, int n){ for(int i = 1; i <= n; i++)原创 2017-03-18 21:55:32 · 1003 阅读 · 0 评论 -
数据结构实验之链表九:双向链表
think: 1顺序输出双向链表+双向链表中查询关键字元素所在结点+双向链表中输出关键字结点的前驱结点关键字和关键字结点的后驱结点关键字 2注意需要判断关键字所在结点前驱结点和后驱结点是否存在,如果首结点为空结点,需要判断前驱结点是否为空结点sdut原题链接数据结构实验之链表九:双向链表 Time Limit: 1000MS Memory Limit: 65536KBProblem Descr原创 2017-03-10 20:12:53 · 543 阅读 · 0 评论 -
约瑟夫问题——循环链表
think: 1顺序建立循环链表+循环链表中的符合题意的元素结点的删除 2注意只有一个人玩死亡游戏的情况sdut原题链接约瑟夫问题 Time Limit: 1000MS Memory Limit: 65536KBProblem Description n个人想玩残酷的死亡游戏,游戏规则如下: n个人进行编号,分别从1到n,排成一个圈,顺时针从1开始数到m,数到m的人被杀,剩下的人继续游戏,原创 2017-03-10 21:12:54 · 423 阅读 · 0 评论 -
B - WERTYU——常量数组
think: 1常量数组运用 2getchar()和purchar()运用 3for循环结束的限制条件vjudge题目链接以下为accepted代码#include <bits/stdc++.h>using namespace std;int main(){ char st[] = "`1234567890-=QWERTYUIOP[]\\ASDFGHJKL;'ZXCVBNM,./";原创 2017-03-30 16:00:34 · 639 阅读 · 0 评论 -
priority_queue优先队列
blue学长的STL小课堂之优先队列/*priority-queue——优先队列*//* 常用函数: q.push(x);//入队 q.pop();//出队 q.top();//访问对首元素 q.empty();//判断是否为空 q.size();//返回元素数量*/#include <cstdio>#include <queue>using原创 2017-04-01 16:47:03 · 573 阅读 · 0 评论 -
离散题目7
think: 1用01字符串表示集合B即默认集合A的输入顺序,将其所有位置标记置为0,然后根据集合B中出现的元素,讲出现的元素位置置为1,然后根据集合A中的元素输入顺序进行输出 2一开始自己用双重for循环暴力求解超时,然后想到今天从同学哪里学习到的如何存储负坐标,因此讲负坐标的处理与桶排序思想结合起来,进而基本达到一种线性复杂度增长离散题目7 Time Limit: 1000MS Memor原创 2017-03-25 20:58:19 · 644 阅读 · 0 评论 -
sdut离散题目13
think: 1自反:在关系矩阵中主对角线元素键值为1 2反自反:在关系矩阵中主对角线元素键值为0 3对称:在关系矩阵中关于主对角线对称的元素的键值相等 4反对称:在关系矩阵中关于主对角线对称的元素的键值不同时为1离散题目13 Time Limit: 1000MS Memory Limit: 65536KBProblem Description DaYu平时只顾着看电影,没有学习离散,学原创 2017-04-02 18:49:48 · 576 阅读 · 0 评论 -
线性代数——矩阵乘积的代码实现
think: 1根据线性代数矩阵乘积部分的知识点,自己创作了自己的第一道题目,虽然并不真正能够作为一道测试题目使用,但对自己来说却拥有重要的意义,而且自己可以通过这样的方法途径优化建立自己的新的知识体系,热爱计算机,以兴趣为老师 2学会活学活用,将自己学到的知识与计算机知识结合起来,尝试将自己的其他学科的知识体系结合优化与计算机知识体系的联系,并希望可以建立一种新的更加优化的知识体系计算AB的矩原创 2017-03-17 11:50:46 · 2164 阅读 · 0 评论 -
离散题目12
think: 1getline()+ string + stringstream 2自己初始代码超时原因尚未解决sdut题目链接离散题目12 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 给出两个集合,以及两个集合上的关系。判断该关系能不能构成函数 Input 多组输入。第一行数字表示集合A;第二行数字表示集合B;原创 2017-04-03 21:49:05 · 773 阅读 · 0 评论 -
代码笔记:排序算法初级比较
Think: 1感觉自己的代码可能会超时,但是提交AC,自己需要思考更优化的算法 2贪心算法思想:由当前的最优解最终得到最终最优解(局部最优解得到最终最优解)商人小鑫 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 小鑫是个商人,当然商人最希望的就是多赚钱,小鑫也一样。 这天,他来到了一个遥远的国度。那里有着n件商品原创 2017-04-15 16:20:28 · 387 阅读 · 0 评论 -
递归的函数——三维数组+动态规划
Think: 1动态规划—百度百科 2动态规划——将多阶段过程转化为单阶段问题,然后逐个求解递归的函数 Time Limit: 1000MS Memory Limit: 65536KBsdut题目链接Problem Description 给定一个函数 f(a, b, c): 如果 a ≤ 0 或 b ≤ 0 或 c ≤ 0 返回值为 1; 如果 a > 20 或 b > 20 或 c原创 2017-04-15 17:18:37 · 1230 阅读 · 0 评论 -
矩阵快速幂基础模板
#include <bits/stdc++.h>using namespace std;struct node{ int v[14][14];};int n;struct node multiply(struct node x, struct node y)///矩阵相乘{ struct node z; memset(z.v, 0, sizeof(z.v));原创 2017-05-01 12:44:29 · 407 阅读 · 0 评论 -
最长公共子序列问题——动态规划
Think: 1递推关系: a[i][j] = 0//i == 0 || j == 0 a[i][j] = a[i-1][j-1] + 1//st1[i-1] == st2[j-1] a[i][j] = max(a[i-1][j], a[i][j-1])//st1[i-1] != st2[j-1] 2建议参考博客 3博客参考图片,以下图片来自于建议参考博客 最长公共子序列问题 Tim原创 2017-04-15 19:01:25 · 467 阅读 · 0 评论 -
动态规划之暴力枚举不断尝试
Think: 1动态规划+递归—->暴力枚举不断尝试sdut题目链接取数字问题 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 给定M×N的矩阵,其中的每个元素都是-10到10之间的整数。你的任务是从左上角(1,1)走到右下角(M,N),每一步只能够向右或者向下,并且不能够走出矩阵的范围。你所经过的方格里面的数字都必须被选原创 2017-04-15 21:35:24 · 794 阅读 · 0 评论 -
免费馅饼——动态规划
Think: 1状态转移方程: 状态a[i][j]表示在时刻i在位置j所能接到的最大馅饼数 a[i][0] += max(a[i+1][0], a[i+1][1]) a[i][j] += Max3(a[i+1][j-1], a[i+1][j], a[i+1][j+1]) a[i][10] += max(a[i+1][9], a[i+1][10])sdut题目链接 hdoj原题链接免费馅饼原创 2017-04-15 22:18:56 · 664 阅读 · 0 评论 -
D - Expedition POJ - 2431——桶排序+贪心+优先队列
Think: 1题意一个卡车需要到小镇修理,他有一个无限加油箱,耗油量为每单位行程1单位耗油量,路上会经过加油站,假设已小镇作为坐标原点,则给出加油站的一维线性位置和储油量或卡车的初始一维线性位置和初始油量,题意如果能到达小镇,输出到达小镇的经过的最少加油站数量,如果不能到达小镇,则输出-1 2题目给出了卡车初始位置坐标范围,考虑可以运用桶排序,最少加油站问题则体现了贪心的思想,可以考虑用优先队原创 2017-04-06 20:24:36 · 673 阅读 · 0 评论 -
A - Solve equation——进制转换运算
Think: 1进制转换运算可思考转换为基底表示,类似于时间转换中将h,m转换为s表示一样,然后进行基底之间的运算vjudge题目链接以下为Accepted代码#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>int main(){ int T, c, k, d, i; cha原创 2017-05-02 22:03:23 · 422 阅读 · 0 评论 -
J - Min Number FZU - 2111——桶思想深化
Think: 1题意:给出一个高位数的数,交换有限次数,且首位交换后不能为零,求交换后所得到的最小数值 2自己估计的一下,暴力枚举基本超时,因此考虑是否可优化,进而尝试是否可结合桶思想,再添加限制判断条件或提前结束条件 3反思:一开始交换步骤出现错误(再度初始化思考不全面),导致Wrong Answervjudge题目链接以下为Wrong Answer代码——交换步骤再度初始化不完全#incl原创 2017-05-02 22:26:15 · 517 阅读 · 0 评论 -
sum of power——大数取模
Think: 1大数取模 2相似题目——可考虑快速幂优化SDUT题目链接sum of power Time Limit: 1000MS Memory Limit: 65536KBProblem Description Calculate mod (1000000000+7) for given n,m.Input Input contains two integers n,m(1≤n≤1原创 2017-05-11 21:25:59 · 736 阅读 · 0 评论 -
Parity check——打表找规律+大数取模
Think: 1打表找规律,寻找循环节 2字符串存储大数+大数取模SDUT题目链接Parity check Time Limit: 2000MS Memory Limit: 524288KBProblem Description Fascinated with the computer games, Gabriel even forgets to study. Now she needs t原创 2017-05-11 21:49:00 · 638 阅读 · 0 评论 -
J - Java Beans ZOJ - 3714——循环数组
Think: 1循环数组 2细心循环数组的循环值位置vjudge题目链接以下为Accepted代码#include <bits/stdc++.h>using namespace std;int main(){ int T, n, m, i, t, mav; int a[204], b[204]; scanf("%d", &T); while(T--) {原创 2017-04-21 19:37:11 · 478 阅读 · 0 评论 -
C - 哈密顿绕行世界问题——DFS
Think: 1DFS: 1>控制结束条件 2>传递 2反思: 1>不自信 2>未判断最后一个城市是否可以到达初始出发城市(感谢鑫哥点拨) 3收货: 1>DFS加深理解 2>通过宏观分步调试判断出现错误地方 3>哈密顿图理解:不重复经过每个结点回到最初出发结点vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>us原创 2017-05-23 19:49:59 · 709 阅读 · 0 评论 -
Choose and divide UVA - 10375——埃式筛法+组合数阶乘运算
Think: 1埃式筛法+组合数阶乘运算 2唯一分解定理(算术基本定理)vjudge题目链接以下为Accepted代码/*Eratosthenes筛法+组合数阶乘运算*/#include <cstdio>#include <cstring>#include <cmath>using namespace std;int tp, primes[10004], a[10004], e[100原创 2017-05-25 16:32:52 · 457 阅读 · 0 评论 -
GCD XOR UVA - 12716 ——筛法建立约数表+xor运算+数学规律
Think: 1埃式筛法思想建立约数表 2初始打表寻找运算的数学规律 3xor运算(不带进位的二进制加法) 运算法则1. a ⊕ a = 02. a ⊕ b = b ⊕ a3. a ⊕b ⊕ c = a ⊕ (b ⊕ c) = (a ⊕ b) ⊕ c;4. d = a ⊕ b ⊕ c 可以推出 a = d ⊕ b ⊕ c.((a^b) == c <=> a(a^c) == b)5.原创 2017-05-26 12:01:39 · 509 阅读 · 0 评论 -
E - Fire Game——双起点BFS
Think: 1双起点BFS 2队列思想(结构体队列)实现BFSE - Fire Game Fat brother and Maze are playing a kind of special (hentai) game on an N*M board (N rows, M columns). At the beginning, each grid of this board is consis原创 2017-05-17 11:29:37 · 482 阅读 · 0 评论 -
C~K的难题——费马小定理
Think: 1快速幂 2费马小定理推论建议参考博客链接C~K的难题 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 众所周知 C~K 喜欢数学,但是他最近被一个题给难住了,题目是这样的。 要求 (A/B)%10007,但由于 A 很大,我们只给出 n (n = A%10007)(我们给定的A必能被B整除,且 gcd(原创 2017-05-17 17:39:59 · 804 阅读 · 0 评论 -
冒泡排序
Think: 1冒泡排序内在思想的两种实现方法sdut题目链接冒泡排序 Time Limit: 1000MS Memory Limit: 65536KBProblem Description 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交原创 2017-04-26 19:39:48 · 756 阅读 · 0 评论 -
Irrelevant Elements UVA - 1635
Think: 1埃式筛法筛取素数 2唯一分解定理 3组合数公式(C(k, n) = ((n-k+1)/k)*C(k-1, n))vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <cmath>using namespace std;int is_primes[104000], pr, primes[1040原创 2017-05-27 22:32:13 · 406 阅读 · 0 评论 -
D - Escape HDU - 3533——预处理+BFS
Think: 1知识:预处理+BFS 2反思: 1>英文读题能力需要加强,读题心态要静下来 2>Error:数组越界 3>Error:预移动状态推演 4>Error:可达性状态判断错误vjudge题目链接以下为Accepted代码#include <cstdio>#include <cstring>#include <queue>using namespace std;struct原创 2017-05-28 22:30:15 · 488 阅读 · 0 评论 -
Send a Table UVA - 10820——欧拉函数初级应用
Think: 1分析+欧拉函数 2紫书分析:输入一个n值,判断有多少个二元组(x, y)满足1 <= x, y <= n, 且x, y互素, 可以发现,除了(1, 1)之外,其他的x, y都不相等,设满足x < y 的二元组有f(n)个,则ans = 2*f(n) + 1;由欧拉函数的定义可以得到f(n) = phi[2] + phi[3] + … + phi[n]; 3欧拉函数: phi[原创 2017-05-29 16:23:36 · 442 阅读 · 0 评论 -
Password UVA - 1262——DFS
Think: 1方法: 1>数学规律+DFS or 数学规律+递推 2>暴力枚举 2反思:题意没有理解好,结果一直Wrong Answer(符合对应列都出现的元素没有去重)vjudge题目链接以下为Accepted代码#include <cstdio>#include <algorithm>#include <cstring>using namespace std;int k, an原创 2017-05-30 17:00:27 · 400 阅读 · 0 评论 -
J - 迷宫问题 POJ - 3984
Think: 1BFS+记录路径J - 迷宫问题 POJ - 3984定义一个二维数组:int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 0,};它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走,要求原创 2017-05-20 21:08:28 · 592 阅读 · 0 评论 -
埃式筛法——快速筛选n以内的素数
/*埃氏筛法(快速筛选n以内素数的个数)*/#include <bits/stdc++.h>using namespace std;const int N = 1e7;int prime[N];//第i个素数bool is_prime[N];//true表示i是素数int Ans(int n){ int i, j, k; k = 0; memset(is_prime,原创 2017-05-21 08:59:03 · 2947 阅读 · 0 评论 -
Ivan's Car URAL - 1930——前向星+spfa算法
Think: 1题意理解:从A结点到B结点,每次有两种状态,上或者下,上下交替时需要齿轮数量加一 2思路: 1>结点编号可达到10000,因此基本不能用邻接矩阵存储,所以思考前向星存储边和结点的关系 2>一个结点到另一个结点,思考最短路径 3反思: 1>初始状态可以有两种操作,向上或者向下 2>存储的是无向图,因此边的存储至少需要开临界边数的两倍建议参考博客:深度理解前向星vjudge原创 2017-06-16 22:18:45 · 399 阅读 · 0 评论 -
Headshot UVA - 1636——初级概率题目
Think: 1>题意分析:输入一个字符串,代表子弹序列,需要注意子弹序列为圆形可环绕,你的朋友先开了一枪,轮空,现在你来决定直接开枪还是转一下再开枪存活概率高,直接开枪存活概率为P(00)/(P(00)+P(01)),转一下存活概率为P(0)/(P(0)+P(1)),P(00) + P(01) = P(0);以下为Accepted代码#include <cstdio>#include <cst原创 2017-06-01 20:22:22 · 402 阅读 · 0 评论