自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 MacBook安装gym

这个库有python版本要求,3.8,3.9,3.10都可以,我这里用的3.11又重新创建了环境QAQ。最近在搞强化学习,涉及一些小的项目需要用到gym,Mac版安装太麻烦,这里记录一些坑。到这里再运行最上面的安装gym的命令就可以安装成功了。

2023-10-18 20:28:30 361

原创 关于多个py文件生成一个可运行exe文件(用pyinstaller)

最近在搞数据库课程设计,需要生成py的可执行exe,百度了下,在这里总结下一开始我打算使用py2exe来生成,生成方法很简单,百度一下到处都是我就不说了之所以后来放弃了这个方法是因为没找到对应版本的,产生了报错indexError: tuple index out of range网上的解决方案是不用3.7的Python,改用Python3.6解决,太麻烦了我也没试然后我又换了个方...

2018-12-05 23:49:45 2677

原创 2018徐州网络赛-A-Hard to prepare-递推

题意就是有n个人围成圈,每个人能选择顶不同的帽子,但是相邻两个人选择的帽子的编号不能同或为0,问有多少种方案按照第一直觉选择帽子,第1个人有种选择方案,第2到第n-1个人均有种方案第n个人的方案数取决于第1个和第n-1个人的帽子编号是否相同相同时为种方案,不相同时有种方案,总答案是两种情况求和,到此是第一直觉但是我们忽略了交叉的情况,即第n-1个人的那种方案中包含了第n-1个人和第...

2018-09-12 09:57:24 301

原创 2018-沈阳网络赛-D-K短路

这个题就是求一个有向边的K短路问题,有向边必须将边分开存,当无向边时不用分开存#include <cstring>#include <cstdio>#include <iostream>#include <vector>#include <algorithm>#include <queue>#define I...

2018-09-10 21:00:54 222

原创 Gym-101775B-贪心(2017-EC-final-B)

这个题主要是如何分配每只羊我们可以一开始每个罪行分配一只羊然后剩下的优先分配给对方差贡献大的也就是先分配给增加一只羊后降低最多的#include <bits/stdc++.h>using namespace std;const int N=2e5+5;int t,n,m,sum,x;double v;struct P{ int val,num;...

2018-09-03 12:31:12 483

原创 ACM-ICPC 2017 Asia Urumqi-D-Lucas

这个题UVALive数据不对,可以去计蒜课提交https://nanti.jisuanke.com/t/28963这个题我也不会,题解是一个公式,然后Lucas求结果就行了以前用的Lucas得处理阶乘,这个版本的Lucas直接递归即可-----------------------------------------------------------------------------...

2018-09-03 11:31:15 236

原创 Gym-101775J-差分(2017-EC-final-J)

这个题过了一年才补QwQ这个题可以用差分的思想来做,首先来了解一下差分:差分就是将一串数分别于前一个数做差,例如:一个序列1 2 5 4 7 3,差分后得到1 1 3 -1 3 -4 -3这里注意得到的差分序列第一个数和原来的第一个数一样(相当于第一个数减0)差分序列最后比原序列多一个数(相当于0减最后一个数)性质:1、差分序列求前缀和可得原序列2、将原序列区间[L...

2018-08-31 21:45:01 631

原创 hdu-6201-DFS

这个题我们可以建图再去搜索当一条边连接的两个城市能够从一个到另一个能赚钱的话比如说输入 x y z,如果x城市到y城市能赚钱(也就是price[y]>=price[x]+z)就建立一条从x到y的单向边那么DFS从所有入度为0的点开始沿着边搜索,势必钱是越赚越多的所以更新赚的钱即可#include <iostream>#include <cstri...

2018-08-29 20:28:32 148

原创 hdu-5884-二分(+玄学)

这个题正确做法是二分K然后去验证每次验证都是K叉哈弗曼树,也就是排序完了在每次合并最小的K个数但是要注意一点开始有N个数字,归并完应该是1个,也就是合并了N-1个每次归并会把K个数字变成1个,也就是每次减少了K-1个那么如果N-1不是K-1的倍数,需要优先处理前(N-1)%(K-1)+1个最小的数以上是正确做法,下面再说玄学事情1.如果用优先队列会慢很多(很快的都是双队...

2018-08-24 13:39:56 154

原创 CTU-2017-G 二分图匹配(最大独立集)

题意是问最多有多少个灯能在任意两个间距不少于1.3m的情况下被安置那么很明显矛盾所在是两盏灯距离小于1.3m时只能选择其中一盏那么就好办了,将有矛盾的建双向图然后求最大独立集就是最大的安置灯数了另外注意一点是这个题卡匈牙利算法的邻接矩阵方法邻接矩阵时间复杂度n的立方,所以这题会超时改成邻接表,时间复杂度是nm,就能AC了#include <cstdio>...

2018-08-24 12:05:17 384

原创 hdu-3829-二分图匹配(最大独立集)

这个题需要找到矛盾所在也就是有的小朋友喜欢某只狗(猫),但是另外一个小朋友却不喜欢这只狗(猫)那么如何建图呢考虑到,如果这只狗(猫)不被移除,那么两个小朋友中必有一个小朋友不高兴所以我们建图可以将有矛盾的两个小朋友建立双向边(双向边是因为:有矛盾的两个小朋友不可能A高兴能表示B不高兴,但是B不高兴却不能表示A高兴)然后进行二分图匹配,匹配完找到的是有多少对矛盾的小朋友(但是...

2018-08-24 11:58:10 296

原创 CTU-2017-B 二分

这个题可以直接二分答案来验证这个时间能不能满足题意验证时要注意一点,后面的多出来的水不能去弥补前面缺少的水#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <que...

2018-08-22 21:43:51 252

原创 CTU-2017-H 找循环

这个题就是求1-n的一个排列,最少交换多少次能变成递增排列看过置换的都知道任何一个排列都能表示成几个循环的乘积那么我们这里找出每个循环,记录每个循环有几个元素在一个循环里最少的交换次数就是元素个数减一#include <cstdio>#include <cstring>#include <algorithm>#include <io...

2018-08-21 19:44:09 245

原创 UVALive-8292-二分法里数列

如图的数列就是法里数列特点是分子分母互质这个题其实就是寻找最逼近一个浮点数的法里数法里数的产生:假设已知两个法里数a/b和c/d,那么两者之间的法里数就是(a+c)/(b+d)#include <cstdio>#include <cstring>#include <algorithm>#include <iostream&g...

2018-08-19 19:46:42 247

原创 Gym-101128A-思路DFS

我们存图的时候正着存一遍,倒着存一遍正着DFS每个点的儿子,记录下来每个点有多少个子孙,反向亦如此然后这样想:总点数n减去某个点的子孙和它本身,也就是剩下的点,如果小于晋升人数a表示这个点一定晋升然后反向的子孙数与本身的和如果大于晋升人数b表示这个点一定不可能被晋升#include <cstdio>#include <cstring>#incl...

2018-08-17 15:50:20 197

原创 uvalive-3026-kmp找循环节

这个题题意是找出一个字符串的前缀是否能表示成前缀的前缀的幂次一开始想的是枚举前缀然后去匹配,果然超时后来想的是既然前缀能表示成一个幂次了,那他的适失配函数用该是有规律的我们都知道失配函数是当一个状态无法匹配时转移到另外一个状态,那么当一个能表示成幂次的串失配时,它转移到的新状态到失配点这一段就是一个循环节#include <cstdio>#include <v...

2018-08-14 14:17:09 151

原创 hdu-2066-最短路

这个题只要把小孩的家看做0节点,把和小孩家相邻的城市和他家连起来且边权值为0即可(QAQ)这里用spfa,好久不写了有点生疏#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#includ...

2018-08-14 14:01:12 180

原创 hdu-4825-Trie(字典树)

这个题是找亦或最大的,那么越高位亦或得1越好,所以可以从最高位开始取反找,如果有就选,没有就只能选相同的#include <cstdio>#include <cstring>#include <algorithm>#include <iostream>#include <vector>#include <stack&...

2018-08-13 21:16:55 252

原创 hdu-1251-Trie(字典树)

这个题要查询是以某个串为前缀的串的个数那么我们可以利用val数组,初始为0,然后每次插入一个字符串的时候就令该串的所有节点val值+1最后要查询的串的最后一个字符所对应的编号的val值就是以查询串为前缀的串的个数这里再说下字典树的ch[i][j]记录的是编号为i的节点的子节点j的编号比如说ab这个串,当a编号是7时,ch[7]['b'-'a']储存的就是b的编号#includ...

2018-08-13 10:52:46 555

原创 hdu-2767-Tarjan求强联通+缩点

先讲一些知识点(强联通都知道就不说了)根据这个还有这个总结得极大极小连通子图(貌似有的离散课本讲了):极大的就是本身,极小就是包含连通图中所有顶点,但是在多加一条边就会产生环,减少一条边就无法构成连通,也就是生成树无向连通图的极大连通子图是其本身(唯一),极小连通子图是其生成树(不唯一)无向不连通图的极大连通子图就是各个连通(不唯一),极小连通子图是各个连通的生成树(不唯一)有...

2018-08-10 20:54:01 169

原创 hdu-5451-共轭数+矩阵快速幂+循环节

这个题构造矩阵这里就不讲了,详情见hdu-2256这个题由于太大了,所以根本没法做,于是就想去寻找循环节这里先说下方法,不说为什么(因为我也没弄懂QAQ)循环节就是mod*mod-1,这样把指数模掉这个循环节就好啦,也算是降幂了#include <cstdio>#include <cstring>#include <iostream>u...

2018-08-10 10:50:56 187

原创 hdu-2256-共轭数+矩阵快速幂

首先我们可以自然地发现原式然后联想到共轭数的性质想到,并且那么,也就是说因为,这样把上式取整得(是整数部分,是非整数部分的系数,再说下共轭数的性质还有一个)那么再去想如何求我们可以设那么由此得最终得到递推式也就是      构造矩阵得,且,#include <iostream>#include <cstdio>#incl...

2018-08-10 09:48:10 261

原创 hdu-1465-错排公式

这样想,错排n位时,先把其中一位错排,假设把一个数k放在第一位,那么有n-1种放法,然后1可以随意放置,但是有两种情况。1:1放在了第k位,也就是1和k交换了,那么剩下的直接错排有F(n-2)种方法;2:1不放在第k位,此时相当于F(n-1)(这个我没想懂)。所以递推公式就是F(n)=(n-1)*(F(n-1)+F(n-2))。#include <cstdio>#include...

2018-08-08 13:08:36 173

原创 uva-10294-Polya

这里说下Polya相关的知识点1.置换n个元素1,2,3...n之间的一个置换   表示1被1到n中某个数a1取代,2被1到n中某个数a2取代,...直到n被1到n中某个数an取代,且a1,a2,...an互不相同。n个元素则表示n阶置换,且共有n!个(1-n的全排列)。2.置换乘法设:   ,       则3.等价类通过置换的变换操作后可以相等的元素属于...

2018-08-07 21:05:55 226

原创 hdu-2087-kmp

看了刘汝佳的mp算法于是去刷lkuangbin专题,网上也有用next函数的,这里就不说了https://blog.csdn.net/starstar1992/article/details/54913261/void getFail(char *b,int *c)//递推求失配函数,即模板串匹配自己{ int m=strlen(b); c[0]=0; c[1]...

2018-08-07 16:37:02 395

原创 hdu-3292-佩尔方程+矩阵快速幂

这个题理解完了可以提取出x^2-n*d^2=1这个式子,一看就是典型的佩尔方程,然后求解第k项就行了。要注意n是完全平方数的时候无解。求最小特解用的暴力#include <iostream>#include <cstring>#include <cstdio>#include <cmath>#include <vector...

2018-07-29 17:48:49 177

原创 hdu-6222-佩尔方程 or 规律打表

这个题要说的东西太多了。1.可以根据题意暴力打表,找出规律,用Java大数打表即可,此处不多说2.这个题是一个简单的佩尔方程,这里说一下方程的几个特点,不证明佩尔方程的一般形式为  其中,d>1且d不是完全平方数,当d为完全平方数时,只有    这一组特解如果(x1,y1),(x2,y2)为方程的两组解,那么(x1*x2+d*y1*y2,  x1*y2+x2*y1)也是方...

2018-07-29 00:28:18 889 1

原创 hdu-4990-矩阵快速幂 or 等比数列+快速幂+除法取模

这个题有两种解法,一个是等比数列加快速幂,二是矩阵快速幂。矩阵快速幂很好做,代码这里不写了:题目已知奇数项a[n]=a[n-1]*2+1,偶数项a[n]=a[n-1]*2。分别拆分可得奇数:a[n]=a[n-1]+2*a[n-2]+1,偶数项:a[n]=a[n-1]+2*a[n-2]+1。发现都是同一个式子,所以直接矩阵快速幂就可以了等比数列就是列出前几项观察可得a[n]=2^(n-1)+...

2018-07-26 19:32:40 433

原创 uva-12563-01背包+输出最优解

这个题有几个点注意:1.给出的唱歌时间总长度是1e9,实际上只有3*60*50=9000s。所以背包的前提满足。2.唱歌时间是t,但是必须留出来1s唱Jin Ge Jin Qu,所以背包时容量最大为t-1。3.在这个题我们称输出的时间是“恰好的时间”(都能理解),但是一般的背包记录的是在当前容量能唱的歌的数量,这样当样例是     3 10060 70 80  这种情况时,从6...

2018-07-25 20:03:57 659

原创 poj-2250-LCS+输出路径

这个题思路很明显,就是将字符串每个单词处理为一个元素,然后进行LCS求解,再打印路径就好。问题在于输出路径,这里我写的是直接逆序寻找路径,比较好写,还有一种是dp时就进行记录的,那个个人觉得很麻烦,就不写了。#include <iostream>#include <cstring>#include <cstdio>#include <cma...

2018-07-25 19:42:03 202

原创 hdu-6301-思路贪心

这个题如果从直接的想法做很简单,但是时间肯定过不去,难处理的在于如何把用完了的数字重新利用这个题解是dls的代码,大体思路是用pre[i]记录i所在的区间的左端点,然后设置一个标记用来记录已经处理完的位置(不是填完数字的位置,是既填完了数字又将可利用的数字处理完了的位置),当标记小于pre[i]时表明:从标记到新的区间左端这个区间的数字可以重新利用了,然后用set回收一下。这样就解决了这个问题...

2018-07-24 19:43:56 175

原创 CodeForces-450B-矩阵快速幂

很经典的矩阵快速幂,这个题也可以求循环节#include <cstring>#include <cstdio>#include <iostream>#include <vector>#include <algorithm>#include <queue>#define INF 0x3f3f3f3fusi...

2018-07-20 11:02:34 220

原创 hdu-1114-完全背包变形

首先根据题意一眼就知道是完全背包,但是要求最小值,那么就把dp初始化为INF然后将背包大小为0的时候初始化为0,将max改为min,完全背包即可。但是这里说明两点1:为什么这样就是求出恰好装满的最小值呢?最小值就是min,好理解,而恰好是利用的j>=w[i]。当背包不断增大时,首先存进去的肯定是j=w[i]的,此时是恰好装满。2:网上的题解都是一位数组滚动的,这里用的二维,做的时...

2018-07-18 14:30:10 160

原创 hdu-1078-记忆化搜索

这个题一看就想到搜索,嗯,然后记忆化一下就好了。#include <cstring>#include <cstdio>#include <iostream>#include <vector>#include <algorithm>#include <queue>#define INF 0x3f3f3f3f...

2018-07-17 23:25:51 145

原创 bzoj-1248-二维数组前缀和

这个题主要利用了二维数组的前缀和来求每一个R*R区域内的值。这里坐标加一处理是为了后面的求前缀和的时候减一操作不至于越界。还有一点要注意的是f[i][j]表示的是包含边上的目标的值。#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#includ...

2018-07-11 17:34:54 989

原创 poj-3186-区间dp

这个题确实没想到QAQ。一开始根据样例判断出一个规律:每次从两边取的时候先取小的,所以就爆了一发,wa了。然后想区间dp,顺着题意往下想的...就是dp[i][j]由dp[i-1][j]和dp[i][j+1]转化而来,这样做咋都做不出来,然后我也没转换一下思想...QAQ所以说正解就是dp[i][j]由dp[i+1][j]和dp[i][j-1]转换而来,倒推,依次选择每个点为终点,倒着加点,加一个...

2018-07-09 19:03:42 161

原创 hdu-1074-状态压缩dp

第一次做状态压缩dp。这里注意一个点就是枚举n个作业的顺序不同从而使得更新条件不同。当正向也就是1-n枚举时候,dp[i]>=dp[i-temp]+score更新。当逆向也就是n-1枚举的时候,dp[i]>dp[i-temp]+score更新。题目要求多解下输出最小字典序,而且输入是按照字典序从小到大输入的,当逆序遍历时候,因为输出的是x-(1<<pre[x])这个状态,要...

2018-07-04 22:12:35 190

原创 HNU-10269-dp

算法实验的题目(准备考试ingQAQ)#include <iostream>#include <cstring>#include <cstdio>#include <algorithm>#include <cmath>#include <vector>#include <queue>#include

2018-06-11 17:47:43 114

原创 HDU-1069-经典DP

这个题题意就是选出一部分排列好的砖使得砖的高度最高。两个处理上的点:1.加入砖块时要加入输入的全排列,假设高度是3时,2.4.3这组加进去还要加进去4.2.3。例如:排完序后面一块砖是5.4.3,由于宽度相等,所以就不能选择了,实际上把这块2.4.3旋转一下变成4.2.3就能选择了。2.排序。排序要先排宽度再排长度,反之亦可,就是不能按照面积排(我一开始就按照面积排序怎么也不对QAQ)。然后就开始...

2018-05-22 15:37:18 1091 1

原创 POJ-3169-差分约束

根据题意可得:关系友好时,BL-AL<=DL。关系不友好时,BD-AD>=DD(一定要注意题目说明了牛是按照编号站的,也就是递增的,所以方程都是大的牛位置减去小的牛位置)。那么发现这个是个差分约束系统,即:BL-AL<=DL,AD-BD<=-DD。那么以此建图,求出有负权最短路即可。这里再说下差分约束系统,就是几个只含两个未知数,并且形如X-Y<=D这种形式的方程组。...

2018-05-21 14:32:57 239 1

空空如也

空空如也

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

TA关注的人

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