算法
huaiyingdetective
这个作者很懒,什么都没留下…
展开
-
二叉树的前中后序遍历(非递归)
力扣173中序cpp初始化时将包括根节点在内的左链入栈。栈顶元素即为需要输出的下一个节点,将栈顶元素输出后,判断该节点有无右子树,如果有,将右子树的左链入栈,左链即为一个树从根开始,看成一个^形状的左侧/这条边上包括根的所有点。出栈时直接输出该节点。/** * Definition for a binary tree node. * struct TreeNode { * int val; * TreeNode *left; * TreeNode *right;转载 2021-04-01 18:53:44 · 116 阅读 · 0 评论 -
两个排序数组中找第k大的数(二分查找算法)
#define min(a,b) (a<b?a:b)int Binary_find_Kth( int* array1, int len1, int* array2, int len2, int k ){ /**在这里始终认为len1<len2**/ if( len1>len2 ) return Binary_find_Kth(array2,len2,array1,len1,k); if( len1==0 ) return array2[k-1]; if(转载 2021-03-30 20:32:33 · 528 阅读 · 0 评论 -
sort()运算符重载的写法记录
转载 2019-02-02 14:07:18 · 1299 阅读 · 0 评论 -
如何得到精确的pi,cos()等三角函数的输入值为弧度,返回值为double
const double pi=acos(-1);cos函数的输入值为弧度,也就是将cos函数后加上弧度,然后就可以得到想要的结果。我们需要把度化为弧度:假设度数为d,则对应的弧度为:d * pi / 180已知两边和夹角求第三边:余弦定理,c2=a2+b2-2abcosC...原创 2019-01-29 13:28:08 · 598 阅读 · 0 评论 -
用拓补序顺序来进行BellmanFord板子保存
#include <bits/stdc++.h>using namespace std;typedef long long LL;const int MAXN = 100005;struct Topo{//按照拓补排序写的Bellman-Ford int n; int deg[MAXN];//存储每个结点有几条以它为终点的边 LL dist[MAXN]...转载 2019-01-29 16:11:19 · 95 阅读 · 0 评论 -
题提供的输入在.txt中__如何将它复制到我的程序中
然后还可以到属性里面设置鼠标粘贴或者Ctrl+V或者直接让代码读文件做题的时候可以直接重定向stdin就是你默认的屏幕输入叫做stdin,默认的屏幕输出叫做stdout,C语言认识这两个东西这两个东西是可以重定向的freopen就可以让你需要的流或者文件来替代你选择的流这里就是用data.txt当做stdin这样你所有的读入工作都是在data.txt里面进行这行加到main的第一...转载 2019-03-24 20:08:20 · 112 阅读 · 0 评论 -
字符串分割
scanf("%d", &line);getchar();//读入第一行最后的换行符int index = 0;for (int i = 0; i < line; ++i) {string s;//从标准输入流当中得到一行字符串getline(cin, s);istringstream iss(s);//把字符串封装到iss中string tmp;while (get...转载 2019-03-23 20:05:23 · 353 阅读 · 0 评论 -
1ABCDE*3=ABCDE1
A,B,C,D,E都是0~9的整数,这是一个十进制算式乘出来个位是13*7个位是一所以E=7所以变成1ABCD7 x 3=ABCD71然后3X7=21进位的时候进位进了2所以3XD的个位是5D=5;所以变成了1ABC57 x 3=ABC5711+(3XC的个位数)=5所以3X8的个位数是4C=8;所以变成了1AB857 X 3=AB85712+(BX3的个位数)=8;B...原创 2018-12-07 23:23:55 · 3115 阅读 · 0 评论 -
题目1:有一个数的出现次数严格大于n/2;题目2:逆序对个数
归并排序的效率是比较高的,设数列长为N,将数列分开成小数列一共要logN步,每步都是一个合并有序数列的过程,时间复杂度可以记为O(N),故一共为O(N*logN)。 下面为方法四的代码#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int a[maxn], t[m...原创 2018-09-24 15:24:50 · 183 阅读 · 0 评论 -
转载POJ1017-Packets,POJ2393POJ 2376
POJ1017-Packets - CSDN博客 https://blog.csdn.net/lyy289065406/article/details/6674366本题除了原作者已经注释的部分,还要注意式子中+3,+8,+35的含义是多余部分也要占一个箱子,这个箱子随后被其他更小的箱子填满,是一个复杂的箱子,但要记得把这个箱子加上,所以加上这几个数既能够保证安排多余的箱子,又能够保证不会凭空...转载 2018-09-24 23:46:58 · 116 阅读 · 0 评论 -
POJ3040思路记录(有参考有完善)
【POJ】3040 - Allowance(贪心) - CSDN博客 https://blog.csdn.net/wyg1997/article/details/52043014没有等于的就选择超过最少的,这样最节省金钱,就能多付几次。第62行加上coin[j].v-1的目的是使c-t的最后比coin[j].v小的部分凑足一枚硬币,又不会导致凭空多出一枚硬币。#include <...转载 2018-09-14 19:45:38 · 215 阅读 · 0 评论 -
SCU-4593(代码部分来自泥煤DL)冒泡排序的交换次数来计算逆序数对数《挑战程序设计竞赛》(日译)P178(博主看了好久都没看懂)
#include"stdafx.h"#include<bits/stdc++.h>using namespace std;const int maxn = 1e5 + 5;int bit[maxn];int n;void init() { memset(bit, 0, sizeof(bit));}void add(int i, int k) { while (i ...原创 2018-10-12 21:03:57 · 371 阅读 · 0 评论 -
转载POJ2991中涉及的数学基础向量旋转
POJ2991 Crane(线段树成段更新+向量旋转) - 软件开发其他 - 红黑联盟 https://www.2cto.com/kf/201610/556382.html其他请参见《挑战程序设计竞赛》3.3.1.7转载 2018-09-27 17:45:21 · 153 阅读 · 0 评论 -
转载与理解【CF1041C】Coffee Break(自己做笔记)
https://blog.csdn.net/ezoixx130/article/details/82763823第三十行要加一是因为休息要花一分钟。lower_bound()函数需要加载头文件#include,其基本用途是查找有序区间中第一个大于或等于某给定值的元素的位置。所给的那些值一定是在一天内的,根本不用判断是不是超过了一天的时间!lower_bound()返回值 - CSDN博客 ...转载 2018-09-22 18:13:16 · 506 阅读 · 0 评论 -
int 最大值及POJ3468
const int mmin = 0x80000000;是一个技巧一定要注意POJ不允许#include<bits/stdc++.h>#include"stdafx.h"#include<iostream>#include<cstring>using namespace std;const int maxn = 1e5 + 5;long long...原创 2018-10-07 14:05:58 · 130 阅读 · 0 评论 -
HDU-1698(线段树set把区间全部更改,懒人标记)
#include<iostream>#include<algorithm>using namespace std;const int maxn = 1e5 + 5;long long dat[maxn << 2], setv[maxn << 2];int v, ql, qr;//该模板从dat[1]开始,父节点存储子节点之和,v存入变化量...原创 2018-10-07 15:41:53 · 367 阅读 · 0 评论 -
UVA-11992(线段树最复杂的题之一,二维,set,add同时存在,王泥煤DL的代码,本菜鸡抄都差点抄不对)
#include"stdafx.h"#include<bits/stdc++.h>#define inf 0x7fffffffusing namespace std;const int maxn = 1e6 + 5;long long _sum, _min, _max;long long dat[maxn << 2], setv[maxn << 2]...转载 2018-10-07 21:27:22 · 144 阅读 · 0 评论 -
POJ-3253
#include<stdio.h>#include<queue>using namespace std;int main() { priority_queue<long long, vector<long long>, greater<long long> > q;//用这个定义小堆 long long n; scanf("%...原创 2018-11-05 23:45:22 · 88 阅读 · 0 评论 -
CF1077AFrog Jumping位运算在算法中更加快速,做算法题要时刻记得考虑时间不超时
转载 2018-11-26 22:01:06 · 182 阅读 · 0 评论 -
Codeforces Round #509 (Div. 2)B题Buying a TV Set
#include<bits/stdc++.h>using namespace std;int main() { long long a, b, x, y, g; cin >> a >> b >> x >> y; g = __gcd(x, y); x /= g; y /= g; cout << min(...原创 2018-09-17 18:29:01 · 172 阅读 · 0 评论