自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ImportError: DLL load failed while importing _imaging: 找不到指定的模块。

但在VisualStudioCode中选择base内核后又可以正常运行。

2024-07-29 12:04:39 162

原创 砝码称重(python)

动态规划学习动态规划 英文:Dynamic Programming,简称DP,如果某一问题有很多重叠子问题,使用动态规划是最有效的。所以动态规划中每一个状态一定是由上一个状态推导出来的,这一点就区分于贪心,贪心没有状态推导,而是从局部直接选最优的。对于动态规划问题,我将拆解为如下五步曲,这五步都搞清楚了,才能说把动态规划真的掌握了!1. 确定dp数组(dp [i][j])以及下标的含义2. 确定递推公式3. dp数组如何初始化4. 确定遍历顺序5. 举例推导dp数组...

2022-03-03 23:32:06 1650 1

原创 python刷题

#!/usr/bin/env python3# -*- coding: utf-8 -*- '''2018.1.30Python 练习100题http://www.runoob.com/python/python-100-examples.html''' '''题目001:有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?'''def tm001(): ''' 【个人备注】:按题意直接写出来 ''' arr = []

2022-02-22 20:40:44 1068

原创 (python)求排列

运用itertools库求排列import itertools#a=[1,2,3]#a=['a','b','c']a=['(',')','(',')']#a=[6,'(','a']b=itertools.permutations(a) #返回元组类型#去除相同的排列ans=set() #运用集合的特性for i in b: ans.add(i)for i in ans: print(i)...

2022-02-13 12:58:18 519

原创 (python)判断括号是否合法

检查由‘(’,‘)’构成的字符串是否是合法的字符串序列ls='()))'def check(ls): if ls[0]==')': return False temp=[] for i in ls: if i=='(': temp.append(i) elif i==')': if len(temp)==0 or temp.pop()!='(': ret

2022-02-13 12:48:05 1017

原创 python变量与变量之间的赋值

1.非数组,集合等组合元素之间的a=2s=as=s+1#print:#a=2#s=32 .组合数据类型init=[1,2,3]s=initinit[0]=6#print:#init=[6,2,3]#s=[6,2,3]#改变其中一个值而不改变另一个值s=init.copy()

2022-02-13 12:29:05 426

原创 蓝桥杯(python)时间显示

time=int(input())time=int(time/1000) #秒a=time/60/60/24 #天数计算time=time-int(a)*24*60*60 #一天中的时间a=int(time/3600) #整时print('{0:02}'.format(a),end=':')time=time-a*3600b=int(time/60) #整分print('{0:02}'.format(b),end=':')c=time-b*60print('{0:02}.

2022-02-13 00:18:43 1195

原创 蓝桥杯 (python)双向排序

n,m=map(int,input().split())num=[int(i) for i in range(1,n+1)]op=[]for i in range(m): op.append(input().split())for i in op: j=int(i[1]) temp=[] if i[0]=='0': #降序num[0]:num[i[1]] temp=num[0:j] temp.sort(reverse=True) .

2022-02-13 00:16:37 2769 5

原创 门牌制作【蓝桥杯python】

答案:624#门牌制作#math库#math.ceil(a) 向上取整#math.floor(a) 向下取整import mathk=0def check(m): n=0 while(m): if m%10==2: n+=1 m/=10 m=math.floor(m) return nfor i in range(1,2020+1): k=check(i)+kprint(k).

2022-02-09 14:28:41 614

原创 python+玩具谜题

first = input()n, m = [int(i) for i in first.split()]a=[[] for i in range(n)] #玩具小人for i in range(n): a[i]=input().split()b=[[] for i in range(m)] #指令for i in range(m): b[i]=input().split()position=0for i in range(m): if (b[i][0].

2022-01-30 11:15:46 733

原创 蓝桥杯魔方旋转问题(python)

#simulationopration=input()color={0:'白',1:'白',2:'白',3:'白',4:'橙',5:'橙',6:'绿',7:'绿',8:'红',9:'红',10:'橙',11:'橙',\ 12:'绿',13:'绿',14:'红',15:'红',16:'黄',17:'黄',18:'黄',19:'黄',20:'蓝',21:'蓝',22:'蓝',23:'蓝'}tempColor={'T1':'黑','T2':'黑','T3':'黑'}#turn Xdef .

2022-01-21 21:14:24 925

原创 matlab读取txt文件

matlab读取txt文件对于纯数据文件的txt文件,直接使用load函数load data.txt %import the txt file data in the workspace对于含有字符的文本文件,使用importdata()函数clear;close all;clc;%% testing imported datadata=importdata('C:\Users\22542\Desktop\data_txt.txt');data=data.data;x=dat

2021-09-25 08:18:11 1115

转载 牛顿迭代法求解多元函数的最小值--以二元函数为例

【python】牛顿迭代法求解多元函数的最小值–以二元函数为例空空7 2021-04-18 21:11:31 129 收藏 3文章标签: python 数据分析版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文转载链接:[https://blog.csdn.net/qq_45726331/article/details/115804812]一元函数到多元函数的牛顿迭代法python代码实现过程一元函数到多元函数的牛顿迭代法参考 多

2021-07-06 00:10:29 9812

原创 2021/5/18

sort()----STL的排序函数复杂度:nlog2(n)-----排序的范围是[first , last)2.输出组合数/*输出 1--n 的组合数*/#include<bits/stdc++.h>using namespace std;int main(){ int n; cin>>n; //cout<<"start"<<endl; for(int i=0;i<(1<<n);i++){ //从0-.

2021-05-18 20:36:00 67

原创 子集生成和组合问题

子集生成和组合问题问题导引:处理不需要输出全排列,而是输出组合,即子集(子集内部的元素没有顺序)解决方案:利用二进制数只有0,1的优点,0代表不取,1代表取如何读取二进制数的0,11.逐个位置判断i的当前位是否为1i&(1<<j);数kk的二进制有多少个1kk&(kk-1);eg:打印n个数中任意有m个数的组合#include<bits/stdc++.h>using namespace std;void print_set(in

2021-05-15 10:42:00 121

原创 算法竞赛中的二进制处理

检查二进制的每一个位逐个位值进行检查:eg:求0-2的每一个组合数for(int i=0;i<(1<<3);i++){ //g共有2^3种可能 for(int j=0;j<3;j++){ //逐个位置 if(i&(1<<j)) cout<<j; }}速度更快的方式//采用kk=kk&(kk-1)的方式eg:计算变量kk的二进制数中1的个数#include<bits/stdc++.h>

2021-05-15 10:23:21 112

原创 蓝桥杯跑步锻炼

#include<bits/stdc++.h>using namespace std;int st[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};bool is_run(int a){ return (a%4==0&&a%100!=0)||a%400==0; }int main(){ int sum=0; int ans=0; for(int i=2000;i<=2019;i++) { if(is_run

2021-04-15 15:05:18 100

原创 sort函数排序

c++标准库里的排序函数的使用方法包含在头文件为#include的c++标准库中Sort函数有三个参数:(1)第一个是要排序的数组的起始地址。(2)第二个是结束的地址(最后一位要排序的地址)(3)第三个参数是排序的方法,可以是从大到小也可是从小到大,还可以不写第三个参数,此时默认的排序方法是从小到大排序。Sort函数使用模板:Sort(start,end,排序方法)实现大到小的排序这就如前文所说需要在sort()函数里的第三个参数里做文章了,告诉程序我要从大到小排序!需要加入一个比较函数

2021-04-05 11:58:11 384

原创 string的随意位置插入字符

#include<bits/stdc++.h>using namespace std;int main(){ string s="123456"; s.insert(3,"+"); for(int i=0;i<s.size();i++) { cout<<s[i]; } return 0;}

2021-04-05 11:10:20 3148

原创 整型与字符串间的转换

整型转字符串itoa(); 把整型数转换成字符串函数名:number为整型变量; s1为将整型转换为字符串后存储的目标数组; key为转换进制数(取值可为2,8,10,16)。itoa(number,s1,key);//在<stdlib.h>eg:L———R的数转换为2进制有多少个1.#include<bits/stdc++.h>using namespace std;int cnt;int main(){ int L,R; cin>>L&gt

2021-04-03 11:06:57 511

原创 16进制转8进制

string的运算符操作#include<bits/stdc++.h>/*16进制转8进制*/using namespace std;int n; int main(){ cin>>n; while(n--) { string s1="",s2=""; cin>>s1; for(int i=0;i<s1.size();i++) { //将16进制的二进制码输入s2 switch(s1[i]) {

2021-04-03 09:42:37 75

原创 对数

C语言求对数C语言关于对数仅提供两种方法:y=log(double x)表示数学中的 ln(x)y=log10(double x)表示数学中的 lg(x)y=log a(b)要进行变换log(b)/log(a)

2021-03-18 12:23:57 2107

原创 二分与前缀和

二分时间复杂度O(log n).数据区间:L----------------mid-----------------R代码实现:while(L<R){mid=(L+R+1)/2;if(mid在L->mid) L=mid;else R=M-1;}给定一个按照升序排列的长度为 n 的整数数组,以及 q 个查询。对于每个查询,返回一个元素 k 的起始位置和终止位置(位置从 0 开始计数)。如果数组中不存在该元素,则返回 -1 -1。输入格式第一行包含整数 n 和

2021-03-17 19:51:09 97

原创 基姆拉尔森计算公式求星期

蔡勒公式简介:蔡勒(Zeller)公式,是一个计算星期的公式,随便给一个日期,就能用这个公式推算出是星期几。w=(y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1)%7符号说明:符号解释w星期,0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六c年份前两位y年(年份后两位m月(在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2019年1月1日要看作2018年的13月1日来计算)

2021-03-15 22:26:44 537

原创 辗转相除求最大公约数(最小公倍数)

算法简介:用较大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余数是0为止。如果是求两个数的最大公约数,那么最后的除数就是这两个数的最大公约数。eg:453%36=21;36%21=15;21%15=6;15%6=3;6%3=0;所以453和36的最大公约数为3;#include<bits/stdc++.h>using namespace std;int gcd(int a,int b)//函数实现

2021-03-15 19:29:23 79

原创 #define用法与typedef用法

#define <宏名/标识符> <字符串>eg:#define PI 3.1415926 //无分号typedefeg:typedef long long ll;//有分号

2021-03-13 19:37:40 100

原创 费解的开关

你玩过“拉灯”游戏吗?25 盏灯排成一个 5×5 的方形。每一个灯都有一个开关,游戏者可以改变它的状态。每一步,游戏者可以改变某一个灯的状态。游戏者改变一个灯的状态会产生连锁反应:和这个灯上下左右相邻的灯也要相应地改变其状态。我们用数字 1 表示一盏开着的灯,用数字 0 表示关着的灯。下面这种状态1011101101101111000011011在改变了最左上角的灯的状态后将变成:0111111101101111000011011再改变它正中间的灯后状态将变成:0111

2021-03-13 17:38:45 69

原创 蓝桥杯翻硬币

小明正在玩一个“翻硬币”的游戏。桌上放着排成一排的若干硬币。我们用 * 表示正面,用 o 表示反面(是小写字母,不是零)。比如,可能情形是:oo*oooo如果同时翻转左边的两个硬币,则变为:oooo***oooo现在小明的问题是:如果已知了初始状态和要达到的目标状态,每次只能同时翻转相邻的两个硬币,那么对特定的局面,最少要翻动多少次呢?我们约定:把翻动相邻的两个硬币叫做一步操作。输入格式两行等长的字符串,分别表示初始状态和要达到的目标状态。输出格式一个整数,表示最小操作步数数据范围输入

2021-03-13 17:32:16 109

原创 枚举实现偏移量

偏移的枚举情况代码实现枚举偏移量for(int i=-1,i<=1;i++){ for(int j=-1;j<=1;j++) { //添加处理 }}

2021-03-11 17:28:41 234

原创 带分数

带分数100 可以表示为带分数的形式:100=3+69258714还可以表示为:100=82+3546/197注意特征:带分数中,数字 1∼9 分别出现且只出现一次(不包含 0)。类似这样的带分数,100 有 11 种表示法。输入格式一个正整数。输出格式输出输入数字用数码 1∼9 不重复不遗漏地组成带分数表示的全部种数。数据范围1≤N<106输入样例1:100输出样例1:11思路:将1-9的全排列枚举出来,再进行数位(cal函数)的划分#include&lt

2021-03-09 22:32:01 63

原创 递归实现组合型枚举

递归实现组合型枚举从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。同一行从小到大升序的顺序输出,每行一个;eg:cin>>5>>3cout<<1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5 #include<bits/stdc++.h>using namespace std;int n,m;int st[25];voi

2021-03-09 21:40:19 111

原创 递归枚举和next_permutation()实现全排列

实现全排列一:使用 next_permutation(a,a+n);函数介绍:next_permutation(num,num+n)函数是对数组num中的前n个元素进行全排列,同时并改变num数组的值。next_permutation()在使用前需要对欲排列数组按升序排序,否则只能找出该序列之后的全排列数。返回值:如果存在下一个排列返回true;否则返回false输出:next_permutation() 的字典序一定比前一个排列的字典序大参数:next_permutation(arr

2021-03-09 19:16:57 186

原创 递归实现指数型枚举

递归实现指数型枚举从 1∼n 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。输入格式输入一个整数 n。输出格式每行输出一种方案。同一行内的数必须升序排列,相邻两个数用恰好 1 个空格隔开。对于没有选任何数的方案,输出空行。本题有自定义校验器(SPJ),各行(不同方案)之间的顺序任意。数据范围1 ≤ n ≤ 15输入样例:3输出样例:322 311 31 21 2 3状态压缩非递归法由题意:共有 2^n 个情况状态压缩的特性:可以枚举所有选与不选

2021-03-09 14:54:53 43

原创 二维递推

输入(n,m)代表要到的终点从(0,0)开始,只能向右或向下走,不能后退;求有几种方案注意:利用二维递推,考虑到 f [ 0 ] [ j ] 和 f [i] [0]都是一种方案;所有声明数组时要初始化为0;目标位置f [n] [m]=f [i-1] [j] + f [i] [j-1] ;#include<iostream>#include<cstdio>#include<ctime>using namespace std;int main(){

2021-02-22 15:33:52 270

原创 2021-2-10《冒泡排序》《插入排序》《选择排序》《希尔排序》

#include<stdio.h>int bubbleSort(int a[],int N){ int sw=0; int flag=1; int i,j; for(i=0;flag;i++)//i为已排序元素的最后一个 { flag=0; for(j=N-1;j>=i+1;j--)//只需要比较到第i+1 { if(a[j]<a[j-1]) {int k; k=a[j-1]; a[j-1]=a[j]; a[j]=k;

2021-01-17 23:12:45 54

原创 2021-1-17汉诺塔

/*汉诺塔*/#include<stdio.h>void hanio(int n,char a,char b,char c);int main(){ int num; char A,B,C; printf("begin\n"); scanf("%d %c %c %c",&num,&A,&B,&C);//输入汉诺塔圆盘个数,各个支柱的名字。 hanio(num,A,B,C); return 0;}/*汉诺塔实现函数*/void hanio

2021-01-17 15:50:11 61

原创 2021-1-17插入排序

/*插入排序*/ #include<stdio.h> void put(int a[],int n)//定义输出格式 { int i; for(i=0;i<n;i++) { if(i>0)printf(" "); printf("%d",a[i]); } printf("\n"); } void insertionSort(int num[],int a) //插入排序函数 { int k,y,x; for(x=1;

2021-01-17 15:13:42 100

空空如也

空空如也

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

TA关注的人

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