自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 动态规划大纲211102

动态规划问题的基本思想:(1)动态规划问题的关键在于正确地写出基本的递推关系式和恰当的边界条件来完成状态转移方程。要做到这一点,必须将问题的过程划分成几个相互联系的阶段,选取恰当的状态变量,决策变量以及定义最优值函数,从而把一个大问题化成一族同类型的子问题 , 然后逐个求解。即从边界条件开始 , 逐段递推寻优 , 在每一个子问题的求解中 , 均利用了它前面的子问题的最优化结果 , 依次进行 , 最后一个子问题所得的最优解 , 就是整个问题的最优解。(2)在多阶段决策的过程中,动态规划方法是既把当前一段.

2021-11-02 09:14:51 101

原创 矩阵快速幂做斐波那契数列

#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int mod = 10000;int n;struct mat{ long long a[5][5];};mat operator *(mat x,mat y){

2020-07-07 19:37:50 142

原创 暑假训练数论板子

快速幂int ksm(int a,int b){int i=1,x=a;while(b!=0){if(b&1)i*=x;x*=x;b>>=1;}return i;}矩阵乘法struct mat{ //定义矩阵结构体 long long a[maxn][maxn];};mat operator*(mat x,mat y){ //重载乘号(定义

2020-07-07 15:23:46 173

原创 数位dp解不要62注释

#include<iostream>#include<cstdio>#include<cstring>using namespace std;int dp[10][3];void Init(){ //预处理,算出所有可能 memset(dp,0,sizeof(dp)); dp[0][0]=1; for(int i=1;i&...

2020-04-03 11:11:45 97

原创 二叉树的四种遍历(非递归)迭代打印

#include<iostream>#include<stack>#include<queue>using namespace std;template<typename Elem>struct BinNode{ Elem data; BinNode<Elem> *left; BinNode<Elem> *ri...

2020-04-03 11:10:55 115

原创 sunday算法注释

#include <iostream>#include <string>#define MAX_CHAR 256//用字符对应的ascii码作为数组下标#define MAX_LENGTH 1000using namespace std;void GetNext(string & p, int & m, int next[]){ for ...

2020-04-03 09:40:58 136

原创 python3输出bytes时的小问题

使用python3的bytes转换字符串时,如果是输出单个字符则会输出其编码值,如果输出多于一个字符例如print(name[begin:end]),如果字符串内字符存在ascii编码内则原样输出字符,如果不存在则输出其国际十六进制编码...

2020-03-29 14:43:21 1218

原创 无向图判断是否有环并输出环

void dfsVisit(vector<vector<int> >&graph, int node, vector<int>&visit, vector<int>&father){ int n = graph.size(); visit[node] = 1;//正在遍历状态 ...

2020-03-29 11:16:42 1315

原创 dfs拓扑

#include<iostream>#include<cstring>using namespace std;int n,m,topo[100]; //topo数组用来储存最终形成的拓扑序列int G[100][100]; //储存有序对信息int c[100]; //储存每个节点是否被访问过的信息int...

2020-03-28 15:32:53 228

原创 迭代法拓扑排序

this topologically sort 用到了优先队列把同级的节点排序#include<iostream>#include<cstring>using namespace std;int n,m,topo[100]; //topo数组用来储存最终形成的拓扑序列int G[100][100]; //储存有序对信息int c[1...

2020-03-28 15:32:16 230

原创 dp回文子串

要知道i,j之间的字符串是否是回文串只需要知道(i+1,j-1)是否是回文串并判断arr[i]是否等于arr[j]就可以了class Solution {public: string longestPalindrome(string s) { vector<vector<bool>> dp(s.length(),vector<bool>(s.le...

2020-03-27 14:07:13 223

原创 桶排序注释

#include<iterator>#include<iostream>#include<vector>using namespace std;const int BUCKET_NUM = 10;struct ListNode{ explicit ListNode(int i=0):mData(i),mNext(NULL){}//加关键...

2020-03-19 14:55:33 121

原创 基数排序注释

基数排序是一种稳定排序所以每一次排序并不会破坏原有的同级大小关系所以可以对每一位数分别排序最后将整个数组有序int maxbit(int data[], int n) //辅助函数,求数据的最大位数{ int maxData = data[0]; ///< 最大数 /// 先求出最大数,再求其位数,这样有原先依次每个数判断其位数,稍微优化点。...

2020-03-19 12:59:10 83

原创 volatile关键字简析

volatile主要用来防止变量的值由于某些不被编译器知道外来进程的原因而改变,加上volatile关键字后可以让编译器每次都从变量的内存地址获取值,而不是认定变量未改变就把上次读取的值认定为变量的值...

2020-03-14 10:35:52 59

原创 一道体现与大佬差距的水题注释

#include <iostream>#include <algorithm>using namespace std;int main() { int n, a[100], b[100], i, j; cin >> n; for (int i = 0; i < n; i++) cin >> a[i]...

2020-03-13 21:05:58 79

原创 最大堆操作

//插入后调整void Maxheap_In(int start){//start是插入点位置一般为最后一个空元素位置 int c=start;//current当前节点位置 int p=(c-1)/2;//父节点位置 int temp=arr[c];//记录当前位置数据 while(c>=0&&temp<arr[p]){ ...

2020-03-13 19:52:18 75

原创 STLequal函数简析

equal使用时参数可以用第一个容器的比对开始迭代器以及比对结束的下一个迭代器和第二个容器的比对开始迭代器比对元素数量由前两个参数确定;如果增添第四个参数即第二个容器的比对结束的下一个迭代器则比对元素由比对元素较多的容器确定,但此方法私以为并无用,比对元素数量都不同直接用.size()比较不就可以了吗函数的返回值为bool类型...

2020-03-13 15:06:23 299

原创 boolalpha作用

boolalpha是定义在<iostream>里的一个函数作用是将bool变量的值输出从0和1变为false和true

2020-03-13 14:56:47 163

原创 智能指针简析

在c++11中增添了智能指针这个模板概念使用时需添加头文件<memory>定义时可以使用的类型包括自定义类型下面用模板类型T代替两种形式:shared_ptr<T>ptr(new T);T *p=new T;shared_ptr<T>ptr(p);注意的是不可以用两个智能指针都直接对指针p托管;否则会重复释放造成程序崩溃可以通过已经托管p的...

2020-03-13 14:45:13 73

原创 四博弈论小结

???你在干嘛快去收藏夹复习去

2020-03-12 23:11:35 184

原创 lowbit:x&(-x)

看到一个很有意思的用法lowbit(int x){return x&(-x);}这段代码的意思是质数返回1;偶数返回能被x整数整除的最大2的n次方;即:lowbit(x)=2^k其中:k是指将x转化为二进制之后从右往左数第一个一的位置)无耻的整合(...

2020-03-12 19:45:29 481

原创 关于PI的数值

const double PI=acos(-1.0);用反三角函数计算出略精确的PI值,注意函数实参不能为int类型不然会报错;

2020-03-12 19:37:40 1228

原创 signed main()

主要用来区分#define int long long除此之外signed等同于int,似乎有些鸡肋,但记下来免得看不懂别人的代码…

2020-03-12 19:35:51 1134

原创 位运算求整数二进制有几个1

#include<bits/stdc++.h>#define mod 10001using namespace std;int cnt;int ANS(int num){ int ans = 0 ; for(int i=0;i<32;i++) { ans += !!(num&(1<<i)); } ...

2020-03-09 18:31:19 212 1

转载 lambda表达式

添加链接描述

2020-03-07 10:31:36 89

原创 奶酪工厂题解注释

#include<stdio.h>#include<string.h>using namespace std;typedef long long ll;struct node { ll p,num,id;//价格,数量,编号}x[10005];ll slove(ll n,ll s){ ll ans=x[0].p*x[0].num,kase=...

2020-03-07 10:31:04 556

原创 尺取法选连续数平方和等于特定数

#include<cstdio>#include<cstring>#include<cmath>#define LL __int64int num[2000],left[2000],right[2000];void solve(LL n){ int i,j; LL m=(LL)sqrt(n*1.0); LL sum=0,l=...

2020-03-07 10:28:33 96

原创 poj 2431,expedition探险队(优先队列+贪心注释

#include<cstdio>#include<algorithm>#include<queue>#define M 10005using namespace std;struct gas{ int dis;//注意这里的距离是距终点的距离 int fule;};bool cmp(gas A, gas B){ re...

2020-03-07 10:28:11 137 1

原创 深搜蜘蛛纸牌总结

include<iostream>#include<cmath>#include<algorithm>using namespace std;/*简直就是一个悲剧 自己写的错误百出 最后还是要学习别人的代码 才能AC*/const int INF=100000000;int vis[12];int a[12],ans;void DFS(in...

2020-03-07 10:27:50 341

转载 唯一分解定理入门(转载)

转载至添加链接描述唯一分解定理:每一个大于1的正整数均可分解为有限个素数的积,如果不计素因数在乘积中的次序,则分解方式是唯一的。将n的素因数分解中相同的素因子收集到一起,可只每个大于1的正整数n可唯一地写成 n = p1a1p2a2p3a3…pkak,其中,p1,p2,p3,…,pk ,是互不相同的素数,而a1,a2,a3,…,ak 是正整数,上面的分解式称为n的标准分解。性质:n的正约...

2020-03-07 10:27:29 366

原创 pat乙级1028人口普查反馈

在数据被限制在一个年月日范围内时,如果直接通过年月日挨个比较较为耗费编码速度,需要考虑的情况较多,例如在选取岁数最大值时不仅要添加年月日的最小条件还要防止其出生在未来,该代码转载码奴生来就只知道前进,巧妙将年月日转换为数字,直接比较数字省略了大部分冗杂的限制条件#include<stdio.h>#include<string.h>using namespace s...

2020-03-07 10:27:08 104

原创 归并排序理解

/*归并排序*///首先做一个两个有序数组合并的函数//将有序数组a[]和b[]合并到c[]中void MemeryArray(int a[], int n, int b[], int m, int c[]){ int i, j, k; i = j = k = 0; while (i < n && j < m) { if (a[i] < b[j...

2020-03-07 10:06:31 87

原创 希尔排序

/*希尔排序递归*/void ShellSort(int arr[]){ int L=sizeof(arr)/sizeof(*arr); int step; for(step=L/2;step>0;step/=2){//step从half-->1,最后step等于1相当于是一次完整的插入排序 for(int i=step;i<L;++i){ Insert(arr...

2020-03-07 09:43:25 83

原创 快速幂实现

快速幂的几种实现@TOC欢迎使用Markdown编辑器```cpplong long ksm(int a,int b){ if(a == 0) return 0; else if(a == 1 || b == 0) return 1; else if(b == 1) return a; else if(b % 2 == 0) return ksm(a,b/2) * ksm(a,b...

2020-03-02 12:13:22 142

原创 牛顿迭代法求平方根

知乎链接为知乎关于牛顿迭代法的解释,在使用牛顿迭代法时用到了基础数学知识点斜式求方程,求a的平方根,不妨设y=f(x)=x²-a;每一点的切线方程为f(x0)+f’(x0)(????...

2020-03-02 09:11:14 181

原创 快速排序优化

//快速排序优化#include<cstdio>#include<cstdlib>#include<algorithm>#include <cmath>using namespace std; int Partition(int A[], int left, int right){ int p = round(1.0*rand(...

2020-02-28 12:37:45 104

原创 高数随笔

偏导数存在不一定连续连续不一定偏导数存在可微-->连续可微-->偏导数存在

2020-02-27 09:32:48 88

原创 清除cin的错误状态

cin.clear();//清除cin的错误状态cin.sync();//清除缓冲区

2020-02-25 09:52:57 315

原创 欧拉函数唯一分解定理相关

每个数都可以被一种质因子整除,每个数可以分解为n个质因子的x次方乘积的形式(每个质因子的x不同,并且每个数是固定的.

2020-02-22 10:11:37 231

原创 杰西卡考试复习尺取法

因为课本的内容由int类型整数代替,如果用数组记录,数组需要开到比代表课本内容int整数还要大才可以方便记录,占内存,所以可以用map代替#include <iostream>#include <cstdio>#include <algorithm>#include <cstring>#include <set>#inclu...

2020-02-21 12:43:07 101

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除