- 博客(16)
- 收藏
- 关注
原创 刷题记录 --dp篇
最近在复习之前学过的算法,也有很多之前没接触过的。为了方便复习,把以后刷的题 不论难易都搬过来。目前在洛谷上面做题,后面应该会做一做cf和leetcode上的比赛这几天在做的是DP(动态规划),这个之前也没系统的刷过题,自己不看题解基本上是做不出来的,所以多刷一些,提升一下思维能力。现在刷的这个题单,不从头记录了,就从今天开始把。...
2022-05-05 18:49:16
681
原创 ## Codeforces Global Round 2
菜鸡 只会坐A题 5分钟A题做出来 ,剩下的时间一道题也没做出来 枯了!!!开始补题B Alyona and a Narrow Fridge这道题不会做, 刚开始还以为次序相连只能挨着放,完了发现连样例都过不了。完了后看tutorial 别人的代码,发现是用的贪心+二分。1-n,n个瓶子 ,把前k个瓶子 从低到高排序,每相邻两个为一行,每行高度按照高的那个算,总高度就是:h2+h4+h...
2019-04-08 22:21:10
171
原创 计算几何 --入门三角形面积公式与 三点的顺序
1.三角形面积公式。海伦公式 知道各边的长度求面积。p=a+b+c;s=sqrt(p*(p-a)(p-b)(p-c));2.知道两点坐标,求两点间的距离。a=sqrt((x1-x2)(x1-x2)+(y1-y2)(y1-y2));3. 三点顺序给三个点A,B,C的坐标,判断能否组成一个三角形;若能,判断A,B,C是顺时针给出的还是逆时针给出的平面中,有向量AB,AC。AB叉乘AC...
2019-02-18 19:19:28
748
1
原创 快速幂求模---
算法1.首先直接地来设计这个算法:--------很容易因为数字过大而溢出。int ans = 1;for(int i = 1;i<=b;i++) ans = ans * a;ans = ans % c;算法2. 根据公式a^b mod c = (a mod c) ^ b mod c改进为 :int ans = 1;a = a % c; for(int i = ...
2019-02-18 18:33:48
232
原创 筛法求素数 --代码
void getprim(){ int cnt=0; int book[100001];//标记数组 ,判断该数是否被筛选过 memset(book,0,sizeof(book)); book[1]=1; //1是特殊情况 for(int i=2;i<=100001;i++) { if(book[i]==0){ //没被筛选出来 。 prime[++cnt]=i;...
2019-02-18 14:50:45
233
原创 扩展欧几里得算法-学习笔记
long long exgcd(long long a,long long b,long long& x,long long& y){if(!b){x=1;y=0;return a;}long long r=exgcd(b,a%b,y,x);y-=a/b*x;return r;}大佬的模板 ,目前还是不理解,先去做几道题去。原文:https://blog...
2019-02-18 13:14:21
135
原创 求最大公约数----码下来防止遗忘。。。
用 gcd(欧几里得算法)求。定理:gcd(a,b) = gcd(b,a mod b) 这就是原理。递归int gcd(int x,int y){ if(b==0) return a; return gcd(b,a%b); }迭代int gcd(int x,int y){ while(b!=0){ int r=b; b=a%b; a=r; } return a;...
2019-02-18 12:25:55
137
原创 蓝桥杯 历届试题-小朋友排队-树状数组求逆序对数
n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。请问,要让所有小朋友按从低到高排队,...
2019-02-17 17:55:32
246
原创 二叉树的遍历
树 的遍历:1.前序遍历2.中序遍历3.后序遍历4.层次遍历前三者区别即每个父节点相对于它的左右子树的遍历顺序。先于左右子树为前序,后于左右子树为后序遍历。于左右子树之间为中序。一。前序遍历二叉树是一种半线性结构实现:1.递归2.迭代二.中序遍历:1. 思路首先接受访问的是左侧链末端的节点,继而它的右子树被遍历。此时控制权会回到谦让它上层的上层结点。此后依次按照这个...
2019-01-29 17:17:26
136
原创 数据结构之 栈混洗
栈混洗----所有元素均位于栈A中,通过中转栈S,将所有元素压入栈B中。A中弹出的每个元素,均有两种选择。1.直接压入栈B中。2.先压入中转栈S中,继续下一个序列。每个元素从A中弹出就不可以在回去。B中的所有元素的一个排序即为一个栈混洗。/*计数对于长度为N的序列,栈混洗的总数SP(N)为多少?SP(N)= 求和(k=1到k=n)SP(k-1)*SP(n-k);即 SP(N)...
2019-01-27 19:32:08
2314
原创 康拓展开
在做 九宫重排这道题的时候get到这个知识点,写下来。这道题是一道bfs题,但是 在判重的时候很麻烦,二维数组。所以先优化成一维数组,然后用康拓展开 压缩成它在全排列中的位置,来判重,这样才能避免超时。这是康拓展开的核心代码,那道题是0-8.自己算了前几个数阶乘。#include<stdio.h>//康拓展开 // X=a[n]*(n-1)!+a[n-1]*(n-2)!+.....
2019-01-27 19:03:51
121
原创 运用栈来实现10进制向其他进制的转换
很方便的解决了这个问题。#include<stdio.h>#include<stack>using namespace std;char digit[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};void convert(stack<char>&S,int...
2019-01-27 18:54:40
509
原创 用sort对结构体进行排序.自写排序规则+重载小于号
sort(数组起始指针,数组末尾指针,排序规则);默认从小到大排序。排序规则可以省略,也可以自己写。//这里自己写了排序规则#include<algorithm>struct S{ int a; int b;}arr[10];bool cmp(const S &a,const S &b){return a.a<a.b...
2019-01-27 18:39:11
1214
2
原创 优先队列里重载运算符
今天做HDU的1242单用bfs 求得的最短路径 时间不一定是最短,所以一直WA百度了题解,发现得用优先队列加广搜但是数据结构还没学过,只好看了看优先队列,优先队列 会自动排序,所以定义的结构体里需要重载’<’ 小于号这个也没有了解 ,又看了这个 ,现在只好先把这个记下优先队列明天补。。。struct note {int x,y,step;friend bool oper...
2018-11-20 22:26:15
430
原创 HDU 1241 石油储蓄 (简单DFS)
最近几天开始做简单的搜索题 做的杭电的 1010,2040,2041这是2041的题目和代码,上课时候在纸上写了一遍,对这个模板不熟悉,还是参考了大神们的标准代码。The GeoSurvComp geologic survey company is responsible for detecting underground oil deposits. GeoSurvComp works w...
2018-11-19 17:16:49
160
原创 枚举排列总结1
枚举排列枚举排列常用的方法有两种:1.递归枚举2. next_permutation (STL 中的库函数)例1: 生成1~n的排列先用递归的思想解决先输出 所有以1开头的序列 ,然后再输出以2开头的序列,以次类推,最后是以n开头的排列。以1开头的排列的特点是:第一位是1,后面是29的排列。29也需要按字典序输出。所以,所设计的递归函数需要以下参数:1.已经确定的前缀序列,以便输...
2018-11-13 17:56:40
295
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人