chagelo
  • 首页
  • 关于
  • 标签
  • 分类
  • 归档

pyqt学习

发表于 2019-11-27 | 更新于 2019-12-02 | 分类于 Python , PyQt
本文字数: 6.2k

什么是Pyqt

  Pyqt是python的一个第三方模块,它主要支持gui编程,和Python的Tkinter、PyGTK、wxPython;另外,Qt是一个跨平台的C++应用程序开发框架,广泛用于开发GUI程序;

Qt Designer

  Python图形界面,可以通过载入pyqt模块,通过代码实现,也可以通过Qt Designer来实现,它可以通过拖拽、点击完成图形界面的设计,最后得到的是ui文件,pyqt支持将ui文件转换成py文件,即可以生成py代码。下面给出我的designer.exe的路径

D:\Anocanda\Anaconda\envs\py37\Library\bin\designer.exe D:\Anocanda\Anaconda\Library\bin\designer.exe

阅读全文 »

字符集与编码

发表于 2019-11-20 | 更新于 2021-01-20 | 分类于 其他
本文字数: 6.7k

编码

  ascii编码是针对公共字符的编码,阿拉伯数字、英文字母,还有一些特殊字符;而如GB2312是针对汉字的编码,使用两个字节表示一个汉字;

阅读全文 »

Python基础之遇到的小问题记录

发表于 2019-11-20 | 更新于 2019-12-20 | 分类于 Python
本文字数: 3.5k

快速获得一个数组的反序(numpy数组也支持)

  如[1,2,7,6,3],我们想要获得[3,6,7,2,1]

1
2
arra = [1, 2, 7, 6, 3]
print(arra[::-1])

  如果是一个二维数组arra,那么它的arra[::-1]的结果,即是将原数组的第0行和第n-1行交换,第1行和第n-2行交换,\(\dots\)

阅读全文 »

[HDU-4292] Food

发表于 2019-10-28 | 分类于 算法 , 网络流 , 最大流
本文字数: 16k

链接

\(\text{HDU - 4292 Food}\)

题意

  这里有\(N\)个人、然后提供\(F\)种食物、\(D\)种饮料,并且对于\(F\)种食物、\(D\)种饮料,仅仅分别提供有限数量\(a_i,b_i\),现在对于\(n\)个人,给出每一个人喜欢食物和饮料的编号,现问最多可以可以让多少人感到满足;如果一个人可以获得任意一份他喜欢的食物和任以一份他喜欢的饮料,那么他会感到满足;

  数据范围:多组测试样例,\(1\leq N,M,D\leq 200\).

阅读全文 »

[POJ 3080] Blue Jeans

发表于 2019-10-28 | 分类于 算法 , 字符串 , kmp
本文字数: 12k

链接

\(\text{POJ - 3080 Blue Jeans}\)

题意

  给你\(m\)个长度为60字符串,求它们的最长公共子串,如果有多个最长公共子串,输出字典序最小的,如果不存在或者最长公共子串的长度小于3则输出no significant commonalities;

  数据范围:共\(n\)组测试样例,每组一个\(m\),\(2\leq m\leq 10\).

分析

  由于数据范围比较小,我们可以\(kmp+\)暴力,假如\(m\)个串的集合为\(s\),那么我们枚举\(s[0]\)的所有长度\(\geq\) 3的所有子串,那么答案存在,必为其中的某一个,我们枚举这些子串,看对于一个子串是否能够同时和\(s[1\dots m]\)进行匹配成功,我们可以将得到的\(s\)集合排个序,使得我们找到一个可以与\(s[1\dots m]\)所有串匹配的子串,就可以直接输出它;

阅读全文 »

I/O流

发表于 2019-10-25 | 更新于 2019-12-21 | 分类于 随笔
本文字数: 19k

缓冲区

  遇到与底层相关的概念,往往都很模糊,所以才想要把这个问题解决清楚;

  那么什么是缓冲区呢,我为什么会有这样的疑问呢;接触到Java的I/O流,其中底层是怎么实现的,其中BufferedReader中的Buffered是什么意思,C语言中的输入、输出底层是什么实现的,它们跟缓冲有什么关系;

  缓冲区(Buffer)就是在内存中预留指定大小的存储空间用来对I/O的数据做临时存储,这部分预留的内存空间叫缓冲区。

  对于scanf()来说,它是从缓冲区里读取数据到对应的变量里,如果缓冲区没有数据,这时候执行scanf(),它会因读取不到数据而一直等待,从而发生死锁;

阅读全文 »

[Luogu-P3375] KMP字符串匹配

发表于 2019-10-24 | 更新于 2019-10-28 | 分类于 算法 , 字符串 , kmp
本文字数: 7.3k

链接

\(\text{Luogu-P3375 KMP字符串匹配}\)

题意

  输入两个串\(s_1、s_2\),求出\(s_2\)在\(s_1\)中所有出现的位置(匹配的开始位置),并输出子串的\(next\)数组的;

  数据范围:\(s_1\)长度为\(n\),\(s_2\)长度为\(M\),\(n\leq 1000000,m\leq 1000000\).

分析

  这是一个\(kmp\)的模板题;

  这里我用了\(Java\)来写,然而一直TLE,不知什么原因,最后发现了原因,在于String的使用;

  在\(ACM\)竞赛中需要特别注意Java中String及与其有关的一些函数;String是一个不可变的对象,每次对String进行修改时都等同于生成了一个新的String临时对象,如果需要经常对其修改,那么这是相当浪费时间的;

  在此题中,我使用了一个String.format()函数来控制格式的输出,这个函数会返回一个String,而我又在for里反复使用了它,所以会TLE;我试了仅仅使用String.format()输出了一个元素,是不会超时的,所以仅仅是\(O(1)\)的使用它是不会超时的。

阅读全文 »

[ABC143] E.Travel by Car

发表于 2019-10-22 | 更新于 2019-10-24
本文字数: 6.8k

链接

\(\text{ABC143 E - Travel by Car}\)

题意

  给你一个由\(n\)个城镇(编号\(1\)到\(n\))和\(m\)条路组成的无向图,第\(i\)条路的距离为\(C_i\); 你将要乘车去一些城镇旅游,你的汽车的油箱的容量是\(L\),在路上行驶\(1\)单位的距离将消耗\(1\)单位的油,在你旅游途中的每个城镇,你都可以选择加油与不加油,选择加油,你可以将你油箱加满油;现在将对你进行\(Q\)次询问,每次询问从城镇\(S_i\)到城镇\(T_i\),旅途中的最少加油次数,如果不能抵达输出\(-1\);

  数据范围:\(2\leq n\leq 300,0\leq M\leq \frac{n(n-1)}{2},1\leq L\leq 10^{9},S_i\neq T_i,1\leq C_i\leq 10^{9},1\leq Q\leq N(N-1)\).

阅读全文 »

python程序随笔:191016

发表于 2019-10-16 | 更新于 2019-10-17 | 分类于 随笔
本文字数: 8.5k

实现文件的自动分类

程序的实现

阅读全文 »

2019牛客多校第一场

发表于 2019-10-13 | 更新于 2019-10-16 | 分类于 题解
本文字数: 6.9k

E. ABBA

题意:

  你拥有一个长度为\(2*(n+m)\)的字符串,它含有\(n+m\)个\(A\),以及\(n+m\)个\(B\),你把个字符串给分解,最后可以得到\(n\)个子序列\(AB\)与\(m\)个子序列\(BA\),问这个字符串有多少种,最终结果对(\(10^9+7\))取余;比如\(\underline{A}\space\underline{BA}\space\underline{B}\),第一个\(A\)与最后一个\(B\)匹配,中间的\(AB\)进行匹配,这就是对应\(n=1,m=1\)的一种合法的字符串;

分析:

  使用\(dp[i][j]\)表示含有\(i\)个\(A\)和\(j\)个\(B\)的合法字符串的个数,目标为\(dp[n+m][n+m]\);

  首先,一个事实是,对于一个合法的含\(n\)个\(AB\)含\(m\)个\(BA\)的串,考虑它的前\(n\)个\(A\)作为\(AB\)的\(A\),考虑前\(m\)个\(B\)作为\(BA\)的\(B\);

  然后,对于\(i、j\),考虑在当前位置插入\(A\),或者在当前位置插入\(B\),那么我们有转移方程: \[dp[i][j]=dp[i-1][j]+dp[i][j-1]\]

  然而中间并非所有的状态都合法;比如对于\(n=1,m=1\)的情况,\(AABB\)是不可行的,它没有被添加到最后的结果中,原因在于,在状态转移的过程中,从\(A\)到\(AA\)的转移是不可行的;第一个\(A\)用作\(AB\)的A,而对于第二个\(A\)来说,由于此时\(AB\)的\(A\)数量已经够了,它应该是\(BA\)的\(A\),所以它前面必须有\(B\),那么\(AA\)显然是不可行的;

  如果在之前情况基础上,在最后位置插入\(A\),那么\(B\)的数量\(j\)必须不小于,\(A\)的数量\(i\)减去组成\(n\)个\(AB\)的\(A\)的数量,即\(i-n<=j\),如果插入\(B\),也同理;

阅读全文 »
pre page1234…8next page
chagelo

chagelo

life ends up with programming.
73 日志
49 分类
57 标签
RSS
GitHub E-Mail
© 2021 chagelo | 212k