算法笔记

以下是为您整理出来关于【算法笔记】合集内容,如果觉得还不错,请帮忙转发推荐。

【算法笔记】技术教程文章

算法笔记_codeup1934(找x)

我的解法:(注意此处为多组数据,即多点测试) #include <bits/stdc++.h>using namespace std;int main(){ int n; while(scanf("%d",&n) != EOF){ int arr[n]; for(int i = 0; i < n; i++){ cin >> arr[i]; } int findnum; scanf("%d", &findnum); int i; for(i = 0; i < n; i++){ if(arr[i] == findnum){ printf("%d", i); ...

强化学习经典算法笔记(零):贝尔曼方程的推导

强化学习经典算法笔记——推导贝尔曼方程 ??在写强化学习经典算法笔记(一):价值迭代算法Value Iteration和强化学习经典算法笔记(二):策略迭代算法Policy Iteration的时候,感觉关键的部分——为什么要这样进行值(策略)迭代,没有讲清楚,概念有点模糊,所以感觉有必要重新关注一下Bellman Equation的来龙去脉,也是加强自己对这一块内容的理解。 相关概念 ??在介绍贝尔曼方程之前,必须对几个概念有所了解,下面我们一一介绍。...

BFS——《算法笔记》8.2小节 问题 A: Jugs【图】

首先,我的代码过了样例,但OJ上并没有过(只过了50%),并且神奇的是该题提交记录里没一个人过的(不知道是不是题目的问题) 下面是我的代码,用BFS解决,找出最优路径:#include<iostream> #include<queue> #include<string> #include<string.h> using namespace std; struct node {int a, b;int ope; }; string op[6] = {"fill A","fill B","empty A","empty B","pour A B","pour B A"}; int v_a, v_b, goal; int vis[1050][1050...

【算法笔记】B1051 复数乘法【代码】【图】

题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805274496319488 思路: 难点在于对复数其他形式的认识。两个复数相乘,积的模等于各复数的模的积,积的辐角等于各辐角的和。code:#include <bits/stdc++.h> using namespace std;int main(){double r1, p1, r2, p2, r, p;cin>>r1>>p1>>r2>>p2;r = r1 * r2 * cos(p1 + p2);p = r1 * r2 * sin(p1 + p2);if (r > -0.005&&r < 0)r = 0;if (p >= 0)printf("...

【算法笔记】B1057 数零壹【代码】

思路:步骤1:把大写字母改成小写字母;步骤2:把每个字母的序号加到sum里得到序号和;步骤3:序号和换算成二进制,保存到数组里,统计0和1的个数。 code 1 #include<bits/stdc++.h>2 using namespace std;3 vector<int> binary;4 int main(){5 int sum = 0;6 string str;7 getline(cin, str);8 int len = str.length();9 for(int i = 0; i < len; i++){ 10 if(str[i]>=A&&str[i]<=Z) str[i] += 32; 1...

【算法笔记】B1055 集体照【代码】

思路:对输入的姓名身高按降序排序,然后调整每排的站位并输出,调整站位的时候先确定中心再调整一边比较容易实现。#include<bits/stdc++.h> using namespace std; const int maxn = 10010; struct student{string name;int height; }; int cmp(student a, student b) {return a.height != b.height ? a.height > b.height : a.name < b.name; } int main(){int n, k, m;cin>>n>>k;vector<student> stu(n);for(int i = 0; i < n; i...

排序算法笔记(C++版)【代码】

排序算法笔记(C++版) 记录最近学习的排序算法 1.冒泡排序 时间复杂度:O(n)[最好],O(n2)[平均],O(n2)[最差] 空间复杂度:O(1) 代码: #include<iostream> #include<windows.h>//计时用 using namespace std;//冒泡排序算法 void bubbleSort(int data[], int n) {//打印原始数据信息cout << "\n 待排序数据为:";for (int i = 0; i < n; i++) cout << data[i] << " ";//算法计时LARGE_INTEGER nFreq, t1, t2;double dt;QueryPe...

【算法笔记】动态规划——走棋盘【代码】【图】

题目描述 一个棋盘有n行m列,从棋盘的左上角走到右下角,每次只能往右走一步,或者往下走一步,总共有多少种走法?Input: m = 3, n = 2 Output: 3 总共有三种走法 1.右 -> 右 -> 下 2.右 -> 下 -> 右 3.下 -> 右 -> 右解题思路 假设将某个格子作为终点,该格子位于第iii行第jjj列,走法总数 = 终点上方格子的走法总数 + 终点左边格子的走法总数。原问题的解包含子问题的解,符合最优子结构的定义,典型的动态规划问题。 写成方程:...

【算法笔记】B1053 住房空置率【代码】

看了半天发现是题目理解错了,可能空置的里面观察期超过D则判定空置,而不是用电量低于e的天数超过D。 code 1 #include <bits/stdc++.h>2 using namespace std;3 4 int main(){5 int n, d, p_empty = 0, empty = 0;6 double e, use;7 cin>>n>>e>>d;8 int days[n];9 for(int i = 0; i < n; i++){ 10 int day = 0; 11 cin>>days[i]; 12 for(int j = 0; j < days[i]; j++){ 13 ...

OpenSSL密码库算法笔记——第6.3.5章 验证原理【图】

签名验证过程分成两步:计算信息摘要和验证签名,计算信息摘要利用散列函数(如SHA-1,参见[15])求出消息M的散列值e = H(M),然后对这个散列值e和接收到的签名(r,s)进行签名验证。 算法描述如下: ─────────────────────────────────────── 算法 签名验证 输入: 接收到的消息M、签名(r,s)、椭圆曲线参数,签名者的公钥Q。 输出: 签名有效或者是签名无效。 步骤: ...