- 博客(40)
- 收藏
- 关注
原创 Python中enumerate()用法
在遍历可迭代对象时,能够同时提供元素的索引和值,避免了使用额外的索引变量。它默认从0开始索引,可以通过start参数自定义索引的起始值。它特别适用于在遍历过程中需要同时获取元素位置和元素内容的情况。使用使得代码更加简洁和可读,避免手动维护索引计数器。
2024-11-14 13:57:02
684
原创 深度学习中batch_size和epoch的区别
batch_size是每次更新时使用的数据样本数,它决定了训练时每一步计算的规模。epoch是整个训练数据集在模型中被“完整地”使用一次的次数,决定了训练的轮数。
2024-11-14 11:35:09
986
原创 数学建模——模型假设环节介绍
模型假设是数学建模中的一个重要环节,它通过对现实世界问题的简化与假定,使得复杂的系统能够用数学语言进行描述和分析。然而,假设必须具有合理性,并在建模过程中根据实际情况适时调整,否则可能影响模型的准确性和实用性。
2024-11-13 20:36:22
1338
原创 pytorch中的ImageFolder 用法
是 PyTorch 中模块提供的一个常用类,用于从文件夹中加载图像数据。它是一种非常方便的方式来加载按文件夹结构组织的图像数据集。这个类能够自动将文件夹中的子目录作为标签,并且将其中的图像文件加载为 PyTorch 张量。
2024-11-12 20:09:55
721
1
原创 pytorch中的transform用法
是 PyTorch 提供的一个图像转换工具,它包含一系列的变换操作。图像大小调整(Resize)裁剪(Crop)图像翻转(Flip)颜色调整(Color Jitter)图像归一化(Normalization)转换为张量(ToTensor)transformtransforms是 PyTorch 中处理图像数据的一组强大工具,适用于图像预处理和数据增强。通过可以组合多个转换操作。ToTensor()Resize()等是常用的转换。通过DataLoader。
2024-11-12 20:01:50
901
原创 洛谷车厢重组解题
#include<cstdio>using namespace std;int jsq=0,a[10001],n,t;//t储存要交换的车厢int main(){ scanf("%d",&n); for(int i=0;i<n;i++) { scanf("%d",&a[i]);//输入 } for(int i=0;i<n-1;i++) { for(int j=0;j<n-1;j++).
2021-03-13 20:09:47
188
原创 洛谷选举学生会
不用sort冒泡做法#include <iostream>using namespace std;int main (){ int m;cin>>m; int n; cin >> n; int* in = new int[n]; for (int i = 0; i < n; i++) cin >> in[i]; for (int j = 0; j < n - 1; j++) { for (int i = 0; i &l
2021-03-13 20:05:14
148
原创 洛谷明明的随机数题解
#include <stdio.h>int elimination(int a[], int count){ //去除数组中重复的元素 int i, j, k; for (i = 0; i < count; i++){ for (j = i + 1; j < count; j++){ if (a[j] == a[i]){ for (k = j + 1; k< count; k++) a[k - 1] = a[k]; count--
2021-03-13 20:01:47
174
转载 洛谷杨辉三角题解
#include<cstdio>int a[21][21];int main(){ int n; scanf("%d",&n); for(int i=1;i<=n;i++) a[i][1]=a[i][i]=1;//赋初值 for(int i=1;i<=n;i++) for(int j=2;j<i;j++)//因为a[i][1]、a[i][i]已经赋值过了,所以循环是2~n-1 a[i][j]=a[i-1][j]+a[i-1][j-1]; .
2021-03-12 21:54:26
256
原创 洛谷单词覆盖还原题解
#include <stdio.h>#include <string.h>#include<iostream>using namespace std;int main(){ char a[300]; gets(a); int Gcount = 0,Bcount = 0,i; for(i=0;i<strlen(a);i++){ if(a[i]=='b'&&a[i+1]=='o'&&a[i+2]=='y'){ B
2021-03-12 21:50:03
244
原创 洛谷凯撒密码题解
#include <stdio.h>#include <string.h>int main(){ char str[50]; int n,length,j; scanf("%d%s",&n,str); length=strlen(str); for(j=0;j<length;j++){ str[j]=(str[j]+n-'a')%26+'a'; } puts(str); return 0;}
2021-03-12 21:47:25
201
转载 二进制链表转整数
题目要求:将输入的二进制数转换为十进制数,而二进制数的表现形式是输入的链表的多个节点值解法思路:利用二进制转换为十进制的通解:第i位值*2^(i-1)之和具体实施:为求某位值在链表中的位序,我首先求出了输入链表的长度,并且引入了一个新的结构体指针做遍历链表用途然后再遍历一次求结果,因为不想再引入新的指针来遍历,因此直接就用head指针了,虽然这样会把链表本身改变,但是以后也用不到了不是嘛嘿嘿(下次一定会改~)/** * Definition for singly-linked list. * s
2021-03-10 16:00:02
83
原创 洛谷P3156题解(线性表)
题目来源#include <stdio.h>#include<iostream>const int MaxSize = 2e6+5; using namespace std;typedef long long DataType;typedef long long ll;typedef struct{ DataType data[MaxSize]; int length;}SeqList;int CreatList (SeqList *L,DataType a[
2021-03-07 14:57:03
427
原创 cf1462 B. Last Year‘s Substring
题目来源解题思路:特判每一种情况:xxx2020 2xxx020 20xxx20 202xxx0 2020xxx还有就是把数串,当成string字符串来处理,因为这样可以直接访问下标,比较方便。#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--){ int n; cin>>n; string s; ci
2021-03-01 21:14:18
160
原创 巧法题 Special Permutation
题目来源我个人觉得这个题比较有意思,巧法一下子就做出来,我们只要把最大值先输出以后,其他的按顺序遍历,就永远不会出现数值和下标一样的情况。我只能说 秒啊!#include<bits/stdc++.h>using namespace std;int main(){ int t; cin>>t; while(t--){ int m; cin>>m; cout<<m<<" "; for(int i=1;i<m;i++
2021-02-25 17:33:16
115
原创 cf1490C.Sum of Cubes
题目来源做题思路:首先可以看到给的时间挺长的,我们就想到了暴力法,第一次暴力直接TLE,10的12次方开三次根号是10000,如果进行遍历的话,也是需要O(n*n)的。所以需要用特别点的方法:我们枚举两个数中的一个,然后求出来b,然后判断a的3次方与强转成整数型的b开立方的立方的和是否为x。同时b也要满足大于0。上代码!!#include<bits/stdc++.h> using namespace std;int main(){ int t; cin>>t;
2021-02-24 18:09:22
208
原创 CF1490B. Balanced Remainders
题目来源题目翻译:解题思路:本题的解题方法和数组本身没有关系,主要是计算出和3取余等于0,等于1,等于2的个数有多少。在三者不相等的情况下,分情况讨论,找三个数的最大值,让它减,后者加。比如是c0最大,我们就让c0–,c1++(c0-1的话,也就相当于c1+1了,因为c0是和3取余等于0的个数,题目要元素加1,取余为0的+1的话,自然c1就+1了),另外其他的两个就以此讨论就行。上代码!!#include<bits/stdc++.h>using namespace std;con
2021-02-23 17:27:31
264
原创 cf1256A Payment Without Change
题目来源:https://codeforces.com/contest/1256/problem/A翻译:题目描述你身上有 a 个 n 元的硬币和 b 个 1 元的硬币。请问能不能在不找零的情况下购买 s元的物品。输入格式本题有多组数据。第一行一个数 q代表有 q组数据。接下来的 q 行,每行有 4 个数,a,b,n,s含义如题。输出格式对于每组数据,如果能在不找零的情况下购买 s 元的物品,则输出"YES" ,反之则输出"NO"。题目分析:首先我们想着是先尽量用大额的,用n面值的钱数小
2021-02-06 09:50:24
133
原创 STL常用算术生成算法
accumulate // 计算容器元素累计总和fill // 向容器中添加元素accumulate:功能描述:计算区间内 容器元素累计总和函数原型:accumulate(iterator beg, iterator end, value);// 计算容器元素累计总和// beg 开始迭代器// end 结束迭代器// value 起始值#include <numeric>#include <vector&g.
2021-02-04 22:27:41
152
2
原创 STL 常用的遍历算法
for_each //遍历容器transform //搬运容器到另一个容器中for_each:for_each(iterator beg, iterator end, _func);// 遍历算法 遍历容器元素// beg 开始迭代器// end 结束迭代器// _func 函数或者函数对象#include <algorithm>#include <vector>//普通函数void print01(int val) { cout <.
2021-02-03 21:01:49
129
原创 常用的拷贝和替换算法
算法简介:copy // 容器内指定范围的元素拷贝到另一容器中replace // 将容器内指定范围的旧元素修改为新元素replace_if // 容器内指定范围满足条件的元素替换为新元素swap // 互换两个容器的元素copy:copy(iterator beg, iterator end, iterator dest);// 按值查找元素,找到返回指定位置
2021-02-01 20:09:20
201
原创 排序算法
sort //对容器内元素进行排序random_shuffle //洗牌 指定范围内的元素随机调整次序merge // 容器元素合并,并存储到另一容器中reverse // 反转指定范围的元素sort:sort(iterator beg, iterator end, _Pred);// 按值查找元素,找到返回指定位置迭代器,找不到返回结束迭代器位置// beg 开始迭代器// end 结束迭代器// _Pr.
2021-01-29 20:29:50
172
原创 CF1475A
虽是水题,想法很重要想法:给定一个正整数 n,如果 n 有大于 1 的奇因数,输出YES,否则输出NO。我们最先想到能一直除以 2,如果余数为 1,那么输出 NO,否则输出 YES。还要注意一点 n 的范围是 10 的 14 次方,int 的范围最大大约是 10 的 11 次方,所以要用 long long。#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t;
2021-01-28 20:17:46
163
原创 位运算
按位运算: int a=60; //111100 int b=13; //001101 //注意括号必须加上,而且&、|并不是&&、|| //&:按位& //a&b 比较每一位,和逻辑与的结果一样 //a=60 111100 //b=13 001101 //a&b 001100 = 12 cout<<"a&b = "<<(a&b)<<endl; // .
2021-01-27 19:19:32
69
原创 CF 1472 B. Fair Division
https://codeforces.com/contest/1472/problem/B解题方法:假设1g的糖有sum1个,2g的糖有sum2个。sum1是奇数:怎么都不会平分的,输出NO。sum1是偶数:1、如果sum2是奇数,两两相等还差1个2g的糖。如果sum1不为0,则可以用2个1g的糖去对1个2g的糖,输出YES;如果没有1g的糖,剩下1个2g的糖没有糖去让二者平分,输出NO。2、如果sum2是偶数,则可以直接平分,输出YES。#include<bits/stdc++.h&
2021-01-25 18:13:15
161
原创 二叉搜索树
二叉搜索树 二叉搜索树时能够高效的进行如下操作的数据结构: 1、插入一个数值 2、查询是否包含某个数值 3、删除某个数值注意:所有的结点,都满足左子树上的所有结点都比自己小,而右子树上的所有结点都比自己大这一条件。平均每次操作需要O(log n)的时间。二叉搜索的实现:和堆一样,实际上在许多情况下都不需要自己实现二叉搜索树。C++的STL中有set和map容器。set是像前面所说的一样使用二叉搜索树维护集合的容器,而map则是维护键和键对应的值的容器。...
2021-01-24 20:24:55
109
原创 C++ STL——list容器
list基本概念**功能:**将数据进行链式存储链表(list)是一种物理存储单元上非连续的存储结构,数据元素的逻辑顺序是通过链表中的指针链接实现的链表的组成:链表由一系列结点组成结点的组成:一个是存储数据元素的数据域,另一个是存储下一个结点地址的指针域STL中的链表是一个双向循环链表list的优点:采用动态存储分配,不会造成内存浪费和溢出链表执行插入和删除操作十分方便,修改指针即可,不需要移动大量元素list的缺点:链表灵活,但是空间(指针域) 和 时间(遍历)额外耗费较大
2021-01-20 16:24:46
151
原创 POJ 3617 贪心
DescriptionFJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competition. In this contest every farmer arranges his cows in a line and herds them past the judges.The contest organizers adopted a new registration scheme this
2021-01-19 15:11:10
85
原创 寒假训练——day11
自学STL之map简介:map中所有元素都是pairpair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值)所有元素都会根据元素的键值自动排序本质:map/multimap属于关联式容器,底层结构是用二叉树实现。优点:可以根据key值快速找到value值函数原型:insert(elem); //在容器中插入元素。clear(); //清除所有元素erase(pos);
2021-01-18 17:57:41
170
原创 寒假训练——day10
自学STL之set简介:所有元素都会在插入时自动被排序本质:set/multiset属于关联式容器,底层结构是用二叉树实现。set和multiset区别:set不允许容器中有重复的元素multiset允许容器中有重复的元素主要详细讲一下排序:set容器默认排序规则为从小到大,下面介绍一下从大到小。示例一 set存放内置数据类型#include<iostream>#include<set>using namespace std;//仿函数c
2021-01-17 20:40:32
94
原创 寒假训练——day9
自学STL之stack、queuestack容器概念:stack是一种先进后出**(First In Last Out,FILO)的数据结构,它只有一个出口栈中只有顶端的元素才可以被外界使用,因此栈不允许有遍历行为栈中进入数据称为 — 入栈 push栈中弹出数据称为 — 出栈 pop构造函数:stack<T> stk; //stack采用模板类实现, stack对象的默认构造形式stack(const s
2021-01-16 19:47:13
91
原创 寒假训练——day8
自学STL之dequedeque容器基本概:* 双端数组,可以对头端进行插入删除操作deque与vector区别vector对于头部的插入删除效率低,数据量越大,效率越低deque相对而言,对头部的插入删除速度回比vector快vector访问元素时的速度会比deque快,这和两者内部实现有关deque构造函数:deque<T> deqT; //默认构造形式deque(beg, end); /
2021-01-15 17:29:55
100
原创 寒假训练——day7
自学STL之vector(实现)vector容量和大小:#include<iostream>#include<vector>using namespace std;void printVector(vector<int> &v){ //最好用引用的方式传进来,因为有可能想改变值的大小 for(vector<int>::iterator it=v.begin();it!=v.end();it++){ cout<
2021-01-13 17:43:24
94
原创 寒假训练——day6
自学STL之vector功能:vector数据结构和数组非常相似,也称为单端数组vector与普通数组区别:不同之处在于数组是静态空间,而vector可以动态扩展vector构造函数:vector<T> v; //采用模板实现类实现,默认构造函数vector(v.begin(), v.end()); //将v[begin(), end())区间中的元素拷贝给本身。vector(n, elem);
2021-01-12 17:32:46
124
原创 寒假训练——day5
今天的战绩:总结:只有F题是自己独立完成的,对于其他已完成的题,思路是有的,要不然tle要不然wa,老师讲解的时候用的stl,我真心感觉,stl大法好,这周我要再巩固一下stl。另附随笔一份:...
2021-01-11 20:58:26
102
原创 寒假训练——day4
哈尔滨学院2021ACM冬令营vj第二题给你n个整数,请按从大到小的顺序输出其中前m大的数。Input每组测试数据有两行,第一行有两个数n,m(0<n,m<1000000),第二行包含n个各不相同,且都处于区间[-500000,500000]的整数。Output对每组测试数据按从大到小的顺序输出前m大的数。Sample Input5 33 -35 92 213 -644Sample Output213 92 3HintHint请用VC/VC++提交我的代码:直接sor
2021-01-08 15:38:49
107
原创 寒假训练——day3
递归 第一部分递归:在数学与计算科学中,是指在函数的定义中使用函数自身的方法基本上所有的递归问题,都可以使用递推公式来表示。而所谓的递推公式就是将一个递归问题的规律,用数学公式的形式表示出来。满足递归的条件:1.递归表达式(规律)2.终止递归的条件(递归出口)...
2021-01-07 20:11:05
94
原创 寒假训练——day2
最基础的“穷竭搜索”定义:穷竭搜索是将所有的可能性罗列出来,在其中寻找答案的方法。主要介绍深度优先搜索和广度优先搜索。深度优先搜索(DFS)是搜索的手段之一。它从某个状态开始,不断地转移状态直到无法转移,然后回退到前一步的状态,继续转移到其他状态,如此不断重复,直至找到最终的解。广度优先搜索(BFS)也是搜索的手段之一。它与深度优先搜索类似,从某个状态出发探索所有可以到达的状态。不同之处在于搜索的顺序,广度优先搜索总是先搜索距离初始状态近的状态。总结:广度优先搜索与深度优先搜索一样,都会生成所有能够
2021-01-06 16:15:17
105
原创 寒假训练——day1
第一天做的是一道贪心题贪心之处:题目想要平均排队时间最小,就需要让打水快的人尽量往前排思路:假如有n个人打水,每个人的打水时间分别为x1,x2,x3,…,xn那么打水的总时间为x1*(n-1)+x2*(n-2)+…+xn*0要让打水的总时间最小,就要让x1<x2<…<xn解题方法:先排序,使x1<x2<…<xn计算总时间,x1*(n-1)+x2*(n-2)+…+xn*0总时间除以n,再把x1,x2,…,xn和时间输出注意:保留两位小数!!!!!(易错
2021-01-04 20:10:22
159
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人