
算法
滚雪球~
https://quantkt.com
本人开发维护的量化资源论坛,分享各类量化技术,进行各类策略讨论
西西课堂 xixiketang.com 学习各类算法知识
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
计算几何总结与题目
参考:https://www.acwing.com/activity/content/code/content/635453/1. 前置知识点 (1) pi = acos(-1); (2) 余弦定理 c^2 = a^2 + b^2 - 2abcos(t)2. 浮点数的比较const double eps = 1e-8;int sign(double x) // 符号函数{ if (fabs(x) < eps) return 0; if (x < 0)原创 2022-05-09 03:02:05 · 255 阅读 · 0 评论 -
模拟退火过程
https://www.luogu.com.cn/problem/P1337#include<bits/stdc++.h>using namespace std;const int N=1100;int n;double x,y,a[N],b[N],c[N],ans;const double down=0.998;double GetAns(double x,double y){ double res=0,dist; for(int i=1;i<=n;i++) dis原创 2021-12-21 00:36:22 · 262 阅读 · 0 评论 -
面试非重复数字的全排列
akuna的电面题 脑子晕了没想出标算/// Permutation: all possible result of permute a list of numbers , for example [1,3,5] → [1,3,5],[1,5,3],[3,5,1],[3,1,5],[5,1,3],[5,3,1]/// [1,1,5] ->原创 2021-09-16 15:01:28 · 137 阅读 · 0 评论 -
校招笔试题目相关
2021.9.5字节笔试:第四题:n个任务,每个任务运行一次的成功概率是x,总共可以运行m次,问每个任务都成功的概率最大为多少。n<=10000每个任务多运行一次,都会使成功率变高,变高率 为(1-Lossi^(x+1))/(1-Loss ^x)。对这个式子求导,发现是递减的,故n个任务每次运行都会收益越来越少,故可以贪心,每次选择最大的,然后选择它删除,之后再选,可以用大根堆来维护这个过程。复杂度为nlogn。第三题:一个n位长的数,里面选出m个数,保持它们的相对位置,使选出的数尽可能大。n&原创 2021-09-06 21:45:17 · 115 阅读 · 0 评论 -
求一个字符串删去任意一个数后的生成效果,遍布全部o(N)
开始去掉最后一个,但是保存下来,然后倒着上来,每次覆盖前一个,保存前一个即可。原创 2021-09-05 00:41:25 · 112 阅读 · 0 评论 -
leetcode链表题目汇总
206. 反转链表https://leetcode-cn.com/problems/reverse-linked-list//** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr原创 2021-08-25 18:36:43 · 271 阅读 · 0 评论 -
leetcode题解
剑指 Offer 52. 两个链表的第一个公共节点参考:https://leetcode-cn.com/problems/liang-ge-lian-biao-de-di-yi-ge-gong-gong-jie-dian-lcof/solution/liang-ge-lian-biao-de-di-yi-ge-gong-gong-pzbs/双指针方法:如果两个链表有一个为空,则答案为空。否则:链表A头部为A链表B头部为B如果A!=B如果A指针为空,则变成B链表头部,否则A指针后移。如果B指原创 2021-07-21 15:45:50 · 180 阅读 · 0 评论 -
leetcode的class在本地直接调试
在Leetcode刷题的时候,发现基本都是vector作为参数。但是直接在leetcode的框里又不能调试。尝试了下直接复制到本地,声明类,然后声明vector来调试。参考:https://leetcode-cn.com/problems/form-largest-integer-with-digits-that-add-up-to-target/参考:https://blog.youkuaiyun.com/winnyrain/article/details/78189222直接通过class来调用,然后传进去v原创 2021-06-17 15:59:32 · 830 阅读 · 0 评论 -
A*算法的原理与相应题目
Luogu 1379 八数码难题 提高+/省选-#include<bits/stdc++.h>using namespace std;string s1="123804765";string s;int depth;int dx[4]={-1,0,1,0};int dy[4]={0,1,0,-1};int func(string s){ int res=0; for(int i=0;i<9;i++){ if(s[i]=='0')contin原创 2021-06-02 01:05:41 · 288 阅读 · 0 评论 -
c++函数中加入&,vector int int[]对全局的影响
题目:https://leetcode-cn.com/problems/single-threaded-cpu/vector作为变量,如果不加&相当于函数中单独开辟,如果加了&,则和外面的是一个对象#include<bits/stdc++.h>using namespace std;struct data{ int start,duration,id; bool operator<(const data &b)const{ i原创 2021-04-23 13:35:38 · 394 阅读 · 0 评论 -
leetcode sort与对vector进行sort 结构体 重载运算符
参考:https://leetcode-cn.com/problems/single-threaded-cpu/submissions/class Solution {public: struct data{ int start,duration,id; bool operator <(const data &b)const{ if(duration>b.duration)return 1; if原创 2021-04-23 13:17:09 · 459 阅读 · 0 评论 -
纯手写输入二叉树并建树输出前序(输入格式为[3,9,20,null,null,15,7])
纯手写输入二叉树并建树输出前序链接:https://leetcode-cn.com/problems/binary-tree-preorder-traversal/submissions/题目简单,但是如果输入的二叉树只是一个字符串,需要自己进行处理与建树,则难度增加很多。#include<bits/stdc++.h>using namespace std;struct node{ node *left,*right; int value;};queue<n原创 2021-03-30 22:53:17 · 642 阅读 · 0 评论 -
二分查找
luogu 2249 【深基13.例1】查找链接:https://www.luogu.com.cn/problem/P2249l+1<r的二分,最后状态l+1==r//保证a[l]<x&&a[r]>=x的二分#include<bits/stdc++.h>using namespace std;int n,m,l,r,mid,a[1100000],x;int main(){ scanf("%d%d",&n,&m); for(int原创 2021-03-24 14:47:29 · 123 阅读 · 0 评论 -
KickStart Round A 2021
K-Goodness String链接:https://codingcompetitions.withgoogle.com/kickstart/round/0000000000436140/000000000068cca3题意:修改一个字符串里的字符,使得它进行回文对比时刚好相差为K,至少修改多少字符。题解:直接进行对比,求出相异的格子数为M,则答案为abs(k-M)#include<bits/stdc++.h>using namespace std;int T,len,k;cha原创 2021-03-22 14:40:27 · 267 阅读 · 0 评论 -
c++中的strcmp的坑
参考:https://baike.baidu.com/item/strcmp/5495571?fr=aladdin参考:http://c.biancheng.net/c/strcmp.html题目:https://www.luogu.com.cn/problem/P1781#include<bits/stdc++.h>using namespace std;int n,i,r,ans,h;char a[1010],b[1010];int main(){ cin>>原创 2020-12-27 16:12:16 · 881 阅读 · 0 评论 -
关于快排中的cmp的坑
题目:https://www.luogu.com.cn/problem/P2676要把所有元素从大到小排序#include<bits/stdc++.h>using namespace std;int n,a[30000],i,r,ans,h,b;int cmp(int x,int y){ if(x>y)return 1; return 0;}int main(){ cin>>n>>b; for(int i=1;i<原创 2020-12-27 16:00:26 · 400 阅读 · 0 评论 -
A*算法介绍
参考:https://zhuanlan.zhihu.com/p/54510444在最短路径算法中dijkstra算法:每次贪心选择当前更新的点中距离最近的进行更新。贪心算法:每次选择离终点评估最近的点进行更新A*算法:综合了dijkstra和贪心,相当于即考虑了起点到此点的距离,又评估了此点到终点的距离。A*算法通过下面这个函数来计算每个节点的优先级。其中:f(n)是节点n的综合优先级。当我们选择下一个要遍历的节点时,我们总会选取综合优先级最高(值最小)的节点。g(n) 是节点n距离起点原创 2020-12-23 22:14:53 · 1199 阅读 · 0 评论 -
1000瓶毒药,小白鼠测毒问题
1000瓶药有1瓶有毒,如果小白鼠服用有毒的药,则24小时后死亡。现在需设计一种策略,使用尽可能少的小白鼠,在24小时内找出有毒的药。如果用最普通的二分,第一只喝1-500,根据生存情况可以继续进行二分,以此类推。但是由于只有24个小时,所以可以并行二分,第一只小白鼠喝1-500,同时第二只喝1-250,501-750,以此类推,相当于一开始就把所有二分的情况全部处理好。也可以用折位的方法,把药的编号化成2进制,比如1为0000000001,那么它需要由1号白鼠喝,15为0000001111,则需要由原创 2020-10-26 17:20:16 · 2581 阅读 · 2 评论 -
堆优化dijkstra
题目链接:https://www.luogu.com.cn/problem/CF20C本题是最短路模板题spfa的做法//spfa#include<iostream>#include<stack>#include<queue>#include<cstring>using namespace std;stack<int>st;struct edge{ long long n,o,v;}e[200005];long long原创 2020-10-22 18:36:42 · 353 阅读 · 0 评论 -
计算机图形学——光线追踪(RayTracing)算法
转自:https://blog.youkuaiyun.com/hmbxsy/article/details/80509876?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-taskhttps://blog.youkuaiyun.com/wcm_lucky/article/det...原创 2020-03-25 03:03:39 · 4158 阅读 · 0 评论 -
隐马尔科夫模型HMM
参考:https://www.bilibili.com/video/av48876236?p=11.直接计算法2.前向算法,本质上就是动态规划,相当于把海量状态全部压缩3.后向算法预测问题:维特比算法就是动态规划求概率最大问题相当于求最大概率路的同时记录下由哪...原创 2020-02-22 02:26:01 · 201 阅读 · 0 评论 -
python实现求解积分
例子 1:假设有随机变量 x,定义域 X,其概率密度函数为 p(x),f(x) 为定义在 X 上的函数,目标是求函数 f(x) 关于密度函数 p(x) 的数学期望。蒙特卡洛法根据概率分布 p(x) 独立地抽样 n 个样本 x1,x2,…..xn,得到近似的 f(x) 期望为:其实这个的理解就是要求一个拥有概率密度的函数期望值期望=积分(每个点的密度函数*每个点的价值函数)...原创 2020-02-21 01:51:49 · 3284 阅读 · 0 评论