自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UML图绘制学习笔记(基于Rational Rose)

一、UML图包括的图的种类静态图:类图:表述类的信息,和类之间的关系用例图:站在系统用户(系统角色)的角度分析系统存在哪些功能。动态图:时序图:描述程序的执行过程、调用过程、返回值等信息。状态图协作图活动图二、类图1、在Logical View目录下实现类图,创建多个目录组织类图,因为可能有多个类.在该目录下创建新画布:点此可以创建新类:双击可以修改类,如下图(增添方法、属性等):当然,也可以直接在类图上进行操作,进行相应增删改,如下(内的是注释,后面的是变量名,:后...

2022-06-09 09:48:58 1282 1

原创 PyCharm的Debug的常用操作

下面是待Debug的程序,bug出现在test2,是除0异常。def test1(a,b): c = a/b return Truedef test2(a,b): c = a/b return Trueif __name__ == '__main__': a = 1 b = 1 test1(a,b) #假设该模块非常耗时 b = 0 test2(a,b) print('thanx')1、选中Debug点2、点

2022-05-31 10:00:32 2167

原创 PyTorch学习之误差反向传播

误差反向传播是指,对于每次求出的Loss(损失),通过链式求导法则和梯度下降法,更新所有要学习的参数。例如,对于线性模型:y^=x∗ω+b\hat{y}=x*\omega+by^​=x∗ω+b其可训练的参数就是ω\omegaω与bbb。PyTorch提供了很好的基于计算图的误差反向传播机制,也就是当我们建立完各个参数之间的运算关系之后,一步backward(),就可以求出它对于所有require_grad = True的变量的偏导数,以方便进一步进行梯度下降(GD)运算。.........

2022-05-17 22:12:33 573

原创 PyTorch学习之梯度下降法

梯度下降法是一种贪心算法,可以帮助求解函数的(局部)最小值。对于凸函数(如二次函数),梯度下降一定可以找到最优值。下面模拟梯度下降方法,任务是对于以下数据:x = [1.,2.,3.]y = [3.,6.,9.]我们使用线性回归模型模型y^=x∗ω\hat{y}=x*\omegay^​=x∗ω,找到使得损失最小的ω\omegaω。import torchimport numpy as npx = [1.,2.,3.]y = [3.,6.,9.]def forward(x): re

2022-05-17 16:05:39 629

原创 PyTorch学习之线性回归

0、问题求解步骤①选择数据集②选择模型③进行训练1、基本模型y^=x∗ω+b\hat{y}=x*\omega+by^​=x∗ω+b2、损失函数均方误差,即对于每一项,求预测值和真实值差的平方的和。然后求平均值。3、代码实现import numpy as npimport matplotlib.pyplot as pltx_data = [1.,2.,3.]y_data = [2.,4.,6.]def forward(x): return [w*v for v in x

2022-05-16 22:32:45 212

原创 Tkinter学习笔记

Tkinter是Python的GUI设计的良好组件。下面简单记录他们的功能。1、Label and ButtonLabel主要用于展示内容,其上可以配置颜色,放置字符串(str,textvariable)等操作。Button是用于触发时间,在点击完Button之后,可以在command中设置其激发的函数,完成进一步的功能。import tkinter as tk#创建窗口windows = tk.Tk()windows.title('my windows')windows.geometry

2022-05-06 11:05:16 250

原创 2022天梯赛L3-1 千手观音 题解【拓扑排序】

题目链接

2022-05-06 09:19:44 561

原创 Lost Arithmetic Progression【Codeforces Round #785 (Div. 2)】

题意给出两个增等差数列B、C,请问有多少个等差数列A,使得A和B的交集是C。特殊地,当A有无限多个,输出-1。思路以下st,d,num,ed分别表示首项,公差,项数,末项。其中,ed = st + (num - 1)ed.1、首先应当判断什么时候不存在这样的A当存在C中的元素不在B中时,A一定不存在。即我们需要判断:是否所有C中元素在B中都有。首先,应当满足C首项大于等于B首项,C末项小于等于B末项。其次,stc应当为stb + kdb。最后,dc应当为db的倍数。以上任一条件不满足,则存

2022-05-05 08:51:12 281

原创 【CodeForces - 1647D】Madoka and the Best School in Russia(分类讨论,因数分解)

题目链接题意:判断一个数nnn,能否有至少两种方法将其表示为n=a1a2...akn=a_1a_2...a_kn=a1​a2​...ak​(k>=1k>=1k>=1),需要满足对每一个aia_iai​都有:ai%d==0a_i \% d==0ai​%d==0andai%d2!=0a_i\%d^2 != 0ai​%d2!=0题解考虑将nnn形式化分解为:n=dkpn=d^kpn=dkp,其中,p%d!=0p\%d!=0p%d!=0.1、当k=0k = 0k=0或k=1k

2022-03-13 19:45:20 889

原创 Acwing 1223. 最大比例

题意:给出若干个数字(可能有重复),去重后从小到大排序,得到若干比例。求这些幂次的最大公幂次。例如,1258\frac{125}{8}8125​,254\frac{25}{4}425​,那么两者的最大公幂次是52\frac{5}{2}25​,因为两者都可以写成该数的整数次幂。我们就尝试求最大公幂次。容易发现,关于幂次的“最大公约数”,实际上和更相减损法十分类似。int gcd_sub(int x, int y){ if(x < y) swap(x, y); if(x == y) re

2022-03-04 22:23:55 119

原创 【acwing1296】 聪明的燕姿(搜索,因数分解)

题目链接:https://www.acwing.com/problem/content/description/1298/题意:我们称形如1+p1+p2+...+pk1 + p^1 + p^2 + ... + p^k1+p1+p2+...+pk是一个关于素数ppp的“素数链”。题目即要求:对于一个数S(<=2e9)S ( <= 2e9)S(<=2e9),能够由多少“素数链”相乘得到。例如题目的样例:S=42S = 42S=42,它可以由(1+2+22)(1+5)(1+2+2^2)(1

2022-03-03 10:23:03 64

原创 codeforces E. Anonymity Is Important 【推断题(线段树|STL)】

E. Anonymity Is Important 【推断 线段树|STL】题意给出若干次询问,当询问类型为1的时候,给出当前病人有病/无病/不确定的判断。首先可以想到用set存储【不确定有病/无病】患者的下表,这样以来,凡是set中未出现的下标,对应的病人都是健康 无病的。关键在于怎么判断set中的患者是有病还是不确定。显然,对于一个【未确定】的患者ppp,如果存在一个区间[a,b][a,b][a,b]使得p∈[a,b]p \in [a,b]p∈[a,b],且[a,b][a,b][a...

2022-02-28 11:13:36 320 1

原创 最长上升子序列(LIS)的贪心算法

我们知道通过dp的算法可以求出一段序列的最长上升子序列,时间复杂度为o(n^2)。下面来介绍一种o(nlogn)的算法来求LIS。设一段序列的长度为n,我们需要的是一个辅助数组f,长度最长为n,其实际长度是动态的,也表征了最长上升子序列的长度。对于f[i],其存储的是对于已经扫描过的序列中,所有长度为i的上升子序列的最后一个数的最小值。如:有序列1 4 2 3所有长度为2的上升子序列有1 2,1 3.那么f[2] = 2。这样做,可以保证对于同样长度的上升子序列,我们给出的是其尾元素的最小值,那

2021-02-02 23:17:16 809

原创 关于若干质数的较好性质【裴蜀定理等】

1、若a与b互质,则a*b与a+b互质2、现在有整数方程:ax+by+cz+.....=t(abc都是整数可正可负,t是整数可正可负)有整数解的充要条件是:gcd(a,b,c)|t(gcd是a、b、c......绝对值的最大公因数)【注意:a b c......全为正数的题目比较常见】3、(2的推论)若a,b,c为正整数,则gcd(a,b,c...) == 1的充要条件是存在x,y,z......(整数),使得ax+by+cz+...... = 1有整数解...

2020-10-03 16:30:03 263

原创 【取模注意】AtCoder - abc177_c Sum of product of pairs

题目链接本题题意是对每对数字求乘积,然后对所有乘积求和。容易想到用前缀和去处理,用第i个数乘以【第i+1之后所有数的和】,对每个i这样操作,得到的数再求和,就是最终的答案。但问题在于,数字可能很大,需要取模。【模运算的性质】模运算与基本四则运算有些相似,但是除法例外。其规则如下: (a + b) % p = (a % p + b % p) % p (1) (a - b) % p = (a % p - b % p) % p (2)【注意:两个取模的结果进行相减操作时(易知前

2020-09-28 22:38:37 344

原创 51Nod - 1383 -- 将一个数分成2的幂次和

题目链接如题,本题题意很简单,如1 = 1;2 = 1+1, 2 = 2;......但是问题的规模很大,所以本题不能仅仅依靠深搜这种朴素的思路。当然,作为深搜在小规模的模板题,这里给出了深搜的模板做法,尽管不能AC:错误思路(一)#include<iostream>typedef long long int ll;using namespace std;ll ans = 0;int pow[30];int dfs(int cur,int all,int

2020-09-22 20:18:08 206

原创 [蓝桥杯][2017年第八届真题]包子凑数 :题解和定理(最大公因数、可表示数的状态转移)

题目链接本题实际上问的是:对于方程ax + by + cz + ...... = Const方程而言(a,b,c...是系数,x,y,z...是变量,Const是常数),对于任意给定的Const,是否存在(非负)整数x,y,z...,使得方程成立。实际上,对于这类整数不定方程,我们有以下性质:1.若存在一对(a,b/a,c/......)互质,那么方程一定有解,且使得成立的x,y,z...有无数多个。其中,x,y,z...的解空间是整数。2.若存在一对(a,b/a,c/......)互质

2020-09-12 20:45:25 202

原创 【算法】求最小路的Dijkstra算法和Floyd算法

先行提示:图论题目中有可能两个点之间有直接相连的权值不同的边,一定要取最小值存到a[][]里!A.Dijkstra算法1.数据结构的准备#include<stdio.h>#include<string.h>int a[1000][1000]; //储存从i到j边的长度int dis[1000]; //储存从一条特定边到其他任一边的长度//注意!起点是哪条边,dis[那条边] = 0;int path[1000] ={0};int vis[1000] =

2020-08-30 14:11:04 170

原创 [蓝桥杯][基础练习VIP]FJ的字符串(评测网址+AC代码)

原题1、循环strcat法#include <bits/stdc++.h>using namespace std;char res[500000] = {0};int main(){ int n; int len = 0; scanf("%d",&n); for(int i = 1;i <= n;i++){ strcat(res + len + 1,res); res[len] = 'A' + i - 1; if(len == 0) len

2020-07-23 14:41:34 156

原创 【位运算】起床困难综合症(包含错误思路点拨)

原题解题思路:顺着做(每个数用数组存)的思路是人脑思路,但是电脑会TLE。我们可以反着来。大概的思路就是先假设是和m、每个门的数的最大值(即max(m,门i))同二进制位数的一个数,它的最高位是1,也就是10000000;然后问电脑:这数运算回去(按照输入的门的顺序,逆着顺序运算回去)在我的m范围之内吗?在,我就得寸进尺,我用11000000试(看是否 <= m);否则用01000000作为ans尝试。原则总是最高位优先,逐渐考虑低位。...

2020-07-22 18:40:58 258

原创 [蓝桥杯][2014年第五届真题]分糖果

题目解题报告题意十分简单。第一次写完全模拟,是超时了。因为出现了许多浪费时间的操作。比如a[i] -= a[i]/2(就是a[i]/2)然后a[i-1] += a[i]/2。实际上直接先全部砍半(因为都是偶数),在a[i] += a[i+1]就可以。修正后未超时。AC代码#include <bits/stdc++.h>using namespace std;int a[100];int n;bool judge(){ for(int i = 0;i <.

2020-07-12 20:24:49 109

原创 谷歌面试题:扔鸡蛋/摔手机

讲解:https://blog.csdn.net/csdnsevenn/article/details/80971550?ops_request_misc=&request_id=&biz_id=102&utm_term=%E6%89%94%E9%B8%A1%E8%9B%8B&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-80971550错误想法1.

2020-07-12 19:47:18 157

原创 最短Hamilton路径(代码及知识点)

题目给定一张 n个点的带权无向图,点从 0~n-1 标号,求起点 0 到终点 n-1 的最短Hamilton路径。 Hamilton路径的定义是从 0 到 n-1 不重不漏地经过每个点恰好一次。输入格式第一行输入整数n。接下来n行每行n个整数,其中第i行第j个整数表示点i到j的距离(记为a[i,j])。对于任意的x,y,z,数据保证 a[x,x]=0,a[x,y]=a[y,x] 并且 a[x,y]+a[y,z]>=a[x,z]。输出格式输出一个整数,表示最短Hamilton

2020-07-10 19:48:17 504

原创 quicksort 快速排序的原理和代码实现

《C语言程序设计-第2版》的解读注意理解“空位”,这里的空位在物理内存上并未空,是我们为了分析问题假设的。因为这样思考的话,我们能很放心大胆地将high指向的错排数据给low指向的“空位”。容易发现,low和high至少有一个指向空位,其中low位置最初指向的是index元素,那么它最初指向的也是个“空位”。空位不断改变。最后low = high的空位就是给index的!代码实现解析//s和e分别以为start下标和end下标#include<iostream&..

2020-07-09 17:32:40 164

原创 POJ-1995 Raising Modulo Numbers(快速幂)

背景知识介绍 (a + b) % p = (a % p + b % p) % p (1) (a - b) % p = (a % p - b % p ) % p (2) (a * b) % p = (a % p * b % p) % p (3) a ^ b % p = ((a % p)^b) % p (4) 由%的运算对乘法的性质可知,为了防止溢出,我们可以在实现快速幂的每个中间过程都%。这样得出的结果和最终%一次一样,但这样是防止溢出的!快速幂的代码实现.

2020-07-09 15:49:51 190

原创 UVA - 133 The Dole Queue(救济金发放)

题目:为了缩短领救济品的队伍,NNGLRP决定了以下策略:每天所有来申请救济品的人会被放在一个大圆圈,面朝里面。选定一个人为编号 1 号,其他的就从那个人开始逆时针开始编号直到 N。一个官员一开始逆时针数,数 k 个申请者,然后另一个官员第 N 个始顺时针方向数 m 个申请者,这两个人就出圆圈。如果两个官员数的是同一个人,那个人则出圈,如果选了两个不同的人,则先输出第一个第一个官员数出的那个人,然后2个官员再在剩下的人里面继续选直到没人剩下来,注意两个被选 中的人是同时走掉的,所以就有可能两个官员选中一

2020-07-08 21:39:58 123

原创 【计算机系统基础】符号表、符号解析(详解)

一、符号、符号表Global symbols(模块内部定义的全局符号) – 由模块m定义并能被其他模块引用的符号。例如,非static函数和非static的全局变量(指不带static的全局变量)如,main.c 中的全局变量名bufExternal symbols(外部定义的全局符号) – 由其他模块定义并被模块m引用的全局符号(突出“别人用”)如,main.c 中的函数名swapLocal symbols(本模块的局部符号) – 仅由模块m定义和引用的本地符号。例如,在模块m中.

2020-06-03 21:53:13 12496

原创 【计算机系统基础】目标文件格式

一、目标文件格式目标代码(Object Code) :指编译器或汇编器处理源代码后所生成的机器语言目标代码;目标文件(Object File) :存放目标代码的文件

2020-06-03 08:16:34 1174

原创 【计算机系统基础】预处理、编译、汇编、链接概述

1、步骤解读①.c -> .i:.i本质上还是高级语言文件对.i(预处理后的文件)进行词法、语法、语义分析,优化后生成汇编代码文件

2020-06-02 21:25:52 1170

原创 【计算机系统基础】缓冲区溢出攻击

一、BUG根源:越界访问二、以一个hacker程序为例1、准备(execve作为启动程序)execve可以加载程序,而且它还可以带参数列表。argc代表的是参数列表的长度。参数列表开始时文件名(可执行文件),以NULL结尾。比方说,命令行为"./hello"时,agrc = 2;而输入"./test 1209481904803910341",argc = 3;总之,别忘了NULL的存在。我们用exceve就可以构造一个启动程序,这就相当于自己在命令行里输入对应内容。

2020-05-29 10:54:21 1130

原创 【algorithm】next_permutation的使用

注意点:1、应用对象:数组2、注意:为了产生正常的排列,应该保证在数组内的数字从a[0]到a[i]递增3、使用模板:Eg1. int a[4]={0,1,2,3},s,i,cnt=0; do { }while (next_permutation(a,a+4));//这样包括源排列#include<stdio.h>#include<algorithm>using namespace std;int main()...

2020-05-20 16:44:16 148

原创 从今天开始,好好练代码,争取早日拿奖

It's a new start.

2020-05-19 01:04:35 95

空空如也

空空如也

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

TA关注的人

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