自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 网络基础(一)【解决mininet中xterm域名无法解析的问题】

mininet是一个很好用的网络仿真实验平台,基于网络命名空间技术的python封装。我是在linux虚拟机中安装了mininet环境$ sudo mnmininet> xterm h1 h2启动一个xterm程序,然后wget一下百度的官网h1 # wget www.baidu.com发现报错了,说域名无法解析。然而回到虚拟机单独起一个终端,也wget一下百度...

2018-09-14 11:03:56 1583 1

原创 初学数据分析(一)【利用numpy实现矩阵标准化】

大数据分析中许多情况下需要用到矩阵标准化(使该矩阵每一列的平均值为0,标准差为1)Here is the formula: (X-mean())/std()以上运算是按列进行的,因为通常大数据分析中的矩阵X N*M,其中每一行代表一个数据,而列代表不同的性质,既是N个数据,每个数据有M种性质应用:假设现在已经有一个.npy元数据文件,我们打算用numpy来将它标准化,于是首先将其load进来,然后...

2018-02-28 17:47:11 13733 1

原创 data-science入门

概述对于data-science,有许多功能强大的library可供使用,比如Numpy, Matplotlib, NetworkX等等,都是我们实用的工具Numpynumpy array声明及对象查看Numpy是python的一个扩展程序库,我们主要用它来做维度数组以及矩阵的运算首先要在python中将它import进来,为方便以后的调用,我们将它作为import as np:import nu...

2018-02-26 05:24:42 978

原创 初学python(一)

概述首先了解了一下python是干嘛的,为易读性而设计,不像c,java等需要靠{}这种东西分部分,python只需要靠缩进(indentation)来分段,这样或许更加自然一点.优点:好编程,易读缺点:运行慢缩进python是indent-based语言,所以程序中的block是靠缩进来区分的如:a=1b=2 a+b以上就不能运行,会提示缩进错误要改成:a=1b=2a+b才能运行,并且...

2018-02-25 21:36:46 417

原创 初学Jupyter Notebook的使用

jupyter notebook 是一款基于HTML的notebook,可以在之上运行代码,text等,功能十分强大.

2018-02-25 20:44:05 512

原创 internet初步【在linux中连接cluster, 配置并远程启动jupyter notebook】

This is the first week of my exchange study in Switzerland. The courses here is not as easy as I originally imagined. Now it's 9.30pm in Swiss local time. I keep sitting in the learning center, browsing the homework assignment this week, planing how to sp

2018-02-24 04:38:56 989

原创 HDU 3092 Least common multiple【完全背包】

#include<stdio.h>#include<string.h>#include<algorithm>#include<math.h>using namespace std;int vis[3005],num,p[3000],ans[3010];double dp[3010];void cpnl() // cpnl means creat prime number list{ memset(vis,0,sizeof(vis)); num=0; for(

2017-09-05 23:39:28 472

原创 HDU 2844 Coins【多重背包】

题意:有n种不同的钱币,每种钱币的张数给定,问从这些钱币中可以组合出多少种价格,价格范围为1~m?思路:将不同面值的钱币看做背包,符合多重背包的模型,这里讲每个钱币的花费和价值都令为它的面值,这样之后统计能组合出多少种价值的时候直接判断dp[i]==i?(意为当用不超过i的花费能取到的最大价值为i时即为可以组合到该价格)

2017-09-03 21:56:22 343

原创 区分各种背包【01背包、完全背包、多重背包、2维背包】

简练——区分各种背包

2017-08-30 20:41:06 737

原创 HDU 2159 FATE【二维背包+完全背包】

题意:现在玩游戏欲升级,升级需要经验值n,杀怪可以赚经验值,但是会扣忍耐度,游戏中有k种怪,数目都无限多。现在玩家还有m点忍耐度,问能否在最多杀s个怪的情况下升级,若能则输出剩余的最大忍耐度。思路:1、此题有两个约束,一个是忍耐度,一个是最多杀的怪物数。抽象来说意味着对于每件物品,具有两种不同的费用。此即为二维背包的模型!而二维费用背包模型最常见的形式便是:物品总个数有上限限制,如此题的最多杀s个怪。而关于二维背包的处理,无非是增加一个状态维度即可,转移方程类比着选或不选第i个物品的思路写出即可。

2017-08-30 20:33:26 676

原创 CodeForces 401D Roman and Numbers【数位dp+状态压缩】

题意:给你数n和m,求n的各位重排后有多少个满足膜m==0?思路:由于n的范围最大可以到18位,故不能暴力枚举(会超时),那么思路就放在了带记忆化的枚举上,数位dp。重点在于如何记忆化,比如现在枚举到了第pos位,然后还需要剩下待定的各位和膜m为mmod,在什么情况下就能直接返回已知结果?当然是当待定的各位还有哪些选择和mmod都确定时结果便确定了:这便是dp数组:dp[状态(还有那些数待安排)][mmod]注:此处dp数组并没有pos这一维度,原因在于状态中就已经包含pos此维度了。而下一

2017-08-29 13:03:33 439

原创 HDU 6156 Palindrome Function【数位dp】

题意:这是2017中国大学生程序设计竞赛网络选拔赛的题7。题意解释过来相当于要求给定进制下一段区间中有多少个回文数。思路:这种涉及到区间统计满足要求的数个数,并且要求是关于进制,数的各位的题目,考虑用数位dp。关于dp数组的维度,一个是进制,一个维度是枚举到的数位pos,一个是状态,故至少三维数组。关于dp的状态,考虑用当前枚举的这个数的开始位的位置编号,并且用临时数组记录从开始位到当前枚举的数位pos之间已经生成的各位,这样一来:1、dfs时方便状态转移,当pos还没枚举到一般数位时继续枚

2017-08-28 10:41:03 355

原创 POJ 3252 Round Numbers【数位dp+lead使用】

题意:统计一段区间的数中二进制表示下0的个数≥1的个数的数有多少个。思路:数位dp,只是之前的dfs中只需考虑状态和limit边界,而此问题中需要引入前导0的考虑(前导0当然不计入0的个数中),用变量lead表示是否前一位是前导0,用法跟limit一样一样的。

2017-08-28 10:22:47 325

原创 HDU 4734 F(x)【数位dp+memset优化】

题意:求[0...b]中10进制下各位数之和小于f(a)的个数,F(a) = A n * 2n-1 + A n-1 * 2 n-2 + ... + A 2 * 2 + A1 * 1思路:数位dp,关于思想不必多提,见HDU 2089 不要62【数位dp】 ,主要注意memset优化:通过优化算法,可以使得对dp数组的初始化不必对每个不同的F(a)都重新算一遍,这样就可以避免出现TLE的错误,比如此题,如果dp数组记录的是dp[pos][sum],sum是目前为止的和,那么该值是与输入F(a)有关的,故每

2017-08-22 22:51:44 352

原创 HDU 2089 不要62【数位dp】

题意:要求一段区间[n,m]上的所有的数中满足以下条件的数的个数:数的各位中不能出现4,且不能出现连续的62。思路:数位dp关于数位dp:这类题一般是关于求解一段区间中满足一些数位条件的数的个数,这些条件往往是与数位、进制有关的,比如要求数的k进制表示下有n个1,数的k进制下各位加权和不大于n等等。其处理方法是:求满足条件数的个数时要用dfs一位一位地确定,并且关键是要使用dp数组记忆已算出的结果,再枚举到相同情况时直接返回dp数组中的计数即可,外加一些优化,比如memset外提等。dp数

2017-08-22 21:57:20 400

原创 HDU 6154 CaoHaha's staff【找规律】

题意:这是2017中国大学生程序设计竞赛网络选拔赛的题5。说在一个坐标格上画封闭的图形,可以画x,y轴的单位长度的边,也可以画其对应的对角线,现给出一个面积,问至少要画几条边才能使框出的图形面积大于等于给出的面积。思路:这是一道找规律题目,画画图就知道,首先是极大值必是对角线构成的菱形,也即边长为1个对角线的菱形(4画)面积为2*1²,边长为2个对角线的菱形(8画)面积为2*2²....这样就粗略框出来一个模4的面积范围,而对于模4余1,2,3的中间状态,可以画图推出减少详见代码

2017-08-20 17:37:16 450

原创 HDU 6150 Vertex Cover【构造二分图】

题意:这是2017中国大学生程序设计竞赛网络选拔赛的题1。首先题目给你一个求最小顶点覆盖的近似算法:每次取度数最大的点删去它和其关联的所有边,继续该过程直到完成覆盖。现要求构造一个图来“卡”这个算法,就是说要构造一个足够“坏”的图,使得按照题目该出的近似算法求出的顶点覆盖集的规模>=你能给出的顶点覆盖规模。输出构造的图和给出你的顶点覆盖。

2017-08-20 17:19:29 754

原创 HDU 2955 Robberies【01背包】

题意:说强盗要去几个银行偷盗,已知各个银行的钱数和被抓的概率,以及强盗能容忍的最大的被抓概率。求他在被抓概率小于容忍值的情况下最多能偷到多少钱?思路:第一反应:01背包,将每个银行当物品,钱数作为价值,被抓概率做容量。但这有问题,被概率不能当做容量,因为被抓概率并非简单的相加,而是要转化为不被抓概率相乘再用1减,于是这就不好写出递推关系了!于是换种思路,这种问题还是得01背包,只是将价值和容量换一换,将抢到的总钱数作为容量,不被抓的概率作为价值,这样就有:dp[i][j]=前i个银行中,抢到的总价值不大

2017-08-18 14:27:23 327

原创 UVA 540 Team Queue【queue的用法】

题意:就是模拟平时食堂排队,学生分为不同的组,然后每来一个学生先从前往后看有没有自己一个组的,有的话就插列插到自个儿组最后一个。现在给出分组名单然后进行多次询问,输出每次出队询问时出队的学生编号。思路:对于每个组分别用一个queue模拟,然后组号也进行queue模拟即可

2017-08-17 12:56:22 439

原创 UVA 10328 Coin Toss【带限制条件的递推dp+计数技巧+高精度用java】

题意:进行n次掷硬币,求至少有k次连续出现正面的方案数。思路:此题和之前写过一题即为类似:点击打开链接均需要用到计数技巧:将至少化为至多之差。于是递推关系参照点击打开链接即可,再次特殊之处在于需要用到大数,而大数直接上java!

2017-08-15 22:24:49 523

原创 ZOJ 3747 Attack on Titans【带限制条件的递推dp+计数技巧】

题意:进击的巨人的题目背景(简直自带画面感和音效orz...),说要组建Levi班,现在从三个兵团中欲选出共n个人,对他们进行编号,编号有限制条件:驻扎兵团中至少要有m个分配到连续的编号,调查兵团中至多有k个分配到连续的编号,宪兵团不做限制,且三大兵团的人员近似无限。求一共有多少种编号方式?思路:其实最开始我关于限制条件理解错了,以上的题意应该才是正确的理解,那么容易想到这应该是一个递推dp,但是关键是在于对于至少m个的处理!根据这题我学习了:将至少化为至多,然后减一下即可,也即: 驻扎兵团中至少

2017-08-15 21:20:16 827

原创 UVA 156 Ananagrams【map+set】

题意:给你一些单词,这些单词构成一个“字典”,要求在这些单词中找出那些无论字母顺序怎样重排都只有自身在“字典”中出现的单词,注意判断两个单词是否相同对大小写不敏感,而输出需输出原输入的大小写敏感形式,且结果按字典序输出。思路:不需要读入一个单词将之排列组合一遍判断重复,只需要对每个单词构造它的“标准形式”:先所有字母转化为小写,然后对所有字母按字典序排序,构造出其“标准形式”。这样若两个单词“重排同构”,他们的标准形式必相同。实现方法:每读入一个单词,都将之塞入set中(自动按字典序排序),同时构造该单

2017-08-13 12:59:58 428

原创 CodeForces 429B Working out【递推dp】

题意:给定一个n*m的网格,一个人从左上走到右下(只能往右或往下走),另一个人从左下走到右上(只能往右或往上),每个格子都有一定卡路里值,经过就可以获得该数值,两人在网格中只能相遇一次,相遇点卡路里值两人都不获得,求两人获得数值和的最大值。思路:是一个递归dp问题,首先从四个角开始递归算出到达[i][j]的路径数值最大值,然后就是枚举相遇点,注意相遇点的情况需要仔细考虑,由于题目要求其实是:她们的路径只能有一个相遇点,也即相遇点处的走法只能有两种。

2017-08-12 21:06:06 352

原创 UVA 10815 Andy's First Dictionary【cctype函数+set基本用法】

题意:给你一段英语文字,按字典序输出文字中出现的单词,要求不重复(不区分大小写),且全部用小写输出。思路:由于STL中的set自动有去重功能,可以直接用set存储。而关于字符类的操作,在cctype头文件中有一些很有用的函数可以使用。首先:set的基本用法

2017-08-12 12:59:23 337

原创 UVA 101 The Blocks Problem【vector】

题意:有n个方块,四种操作:1、move a onto b:把a和b上面的方块都放回原来的位置,然后把a放到b上面;2、move a over b:把a上面的放回原来的位置,然后把a放在b所在的方块堆的上面;3、pile a onto b :把b上面的放回原来的位置,然后把a和a上面的方块整体放到b上面;4、pile a over b :把a和a上面的方块整体放到b所在堆的上面。求经过若干步操作之后方块的分布情况

2017-08-11 11:20:21 304

原创 UVA 10474 Where is the Marble?【vector的sort用法】

题意:给出两个数n和q,下面输入n个数,再依次输入q个询问,分别查找q个数在n个数中是第几大,思路:很简单,排序加二分查找,主要目的在于熟悉一下vector的sort用法:

2017-08-06 22:01:19 293

原创 朴素贝叶斯分类器【java实现 + 从mysql数据库读数据】

目标:1、用java写一个贝叶斯分类器,通过一个人的几项特征(性别、是否吸烟、是否纹身、是否戴眼镜、是否骑自行      车)来判断其是否为一个学生。2、其中训练数据从mysql数据库中读取,测试数据从标准输入输出读取

2017-07-30 16:52:43 4372

原创 POJ 1131 Octal Fractions【高精度用java】

题意:给一个八进制的0-1之间的小数,现在要求它对应的十进制的小数。思路:明显要用高精度实现进制转换,这里直接上java,常规思路搞定。

2017-07-26 13:08:23 495

原创 用java实现对MySql数据库中数据的读取、插入、修改和删除

目标:1、实现eclipse同数据库的连接2、在eclipse中用java实现对数据库的控制

2017-07-25 21:16:21 10715

原创 POJ 1001 Exponentiation【高精度用java】

题意:简单明了,就是高精度求幂,但是要注意处理特殊情况:去除前导0(包括以“0.”开头的0)、去除后缀0(trailing zero)思路:首先毋庸置疑——高精度,若用c语言写当然循规蹈矩即可。最近师兄让我学习java,学习过程中发现java自带大数类型,而且有许多专门的方法可供使用,这使得高精度问题用java解决十分简便!

2017-07-25 19:19:27 479

原创 用python-pulp解决线性规划问题

Linux环境下,要是用python的pulp涉及先安装pulp(easy_install)和调试安装glpk(更改源,在命令行中下载即可)

2017-05-09 09:38:38 7424

原创 关于typedef用法总结【待补充】

关于typedef用法总结【待补充】

2017-04-22 09:42:31 369

原创 CodeForces 767E Change-free【贪心+优先队列】

题意:只有面值为100的纸币和1元的硬币,现纸币无限多,但只有 m 个一元硬币,给出接下来的 n 天去食堂每天花费 的钱数:c[i] 元。已知收银员在第 i 天找零 x 元的话,不满意度会增加 w[i],求最小不满意度。思路:从贪心的角度理解,我们首先是尽可能地每天都用硬币支付,直到某一天发现手里的硬币为负值了,说明前面一定有一天需要用纸币换取硬币,那么贪心的想法就是既然不论选哪一天都是相当于多了100个硬币(效果是一样的),只需找到选择哪一天不满意度最小即可,于是可以想到用优先队列来做!

2017-03-09 21:58:45 467

原创 CodeForces 767C Garland【DFS+vector】

Source:CodeForces 767C  题意:题目给出一个根节点已经确定的树,每个节点上有个权值,这个权值可以为负数,0,正数(可以为负数!),然后求问能不能找到两个节点,分别将从这两个节点到其父节点的边砍掉,由此形成的三个非空部分的权值和相同?  思路: 首先分成三个部分权值和相同,说明要能够分出来这个树一定满足权值总和为3的倍数。其次容易想到我们需要计算以每个节点为根的

2017-03-05 12:41:51 406

原创 HDU 5120 Intersection【π的表示】

题意:给出两个一样大的圆环(内圆半径r,外圆半径R),以及它们的位置。求它们相交的面积。思路:思路很直接就是写一个求两个圆相交面积的函数,然后ans=f(R,R,d)-2*f(r,R,d)+f(r,r,d) 即可

2017-03-03 21:10:01 375

原创 HDU 5119 Happy Matt Friends【背包+位运算】

题意:有N个数,从这些数中选一个或多个进行亦或运算,问一共有多少种选法使得最后的亦或结果大于给定的M。思路:这道题要用dp,应该是比较容易想到的,其实就是一个背包问题

2017-03-03 13:47:54 457

原创 HDU 5115 Dire Wolf【区间dp】

题意:阅读题目情景第一反应——炉石传说 ,说有一群狼每只狼都有自己的基础攻击,还有对两边随从的攻击力加成(orz....这不就是炉石里的恐狼前锋?如下图)现需要制定一个消灭顺序,使得自己受到的总伤害最小(每消灭一只狼受到其基础攻击和来自两边狼对其攻击加成的伤害) 思路:首先因为最后要全部消灭,所以每只狼的基础攻击都会抗一遍,所以只需考虑如何使受到攻击加成伤害最小,一般思路是贪心,从加成最大的开始消灭,但是不对!举出一组例子就明显了,比如加成7 8 2 从加成最大的开始杀并不是最优的,所以贪心暂时p

2017-02-21 11:16:38 537

原创 HDU 6010 Daylight Saving Time【打表+结构体内重载操作符】

题意:夏令时或者说成夏时制,表示每年的时间变迁——每年3月份的第2个星期天的2:00会跃变为3:00,同时标准时从PST变为PDT;每年11月份的第1个星期天的2:00会跃变为1:00,同时标准时从现在随便给出一个2007年到2010年的一个时间点,要求判断这个时间点是PDT , PST , Both or Neither思路:很明显需要打一个每年 PST变为PDT 和 PDT变为PST 的日期表(记为StoD[] 和 DtoS[])用递推即可,因为平年365天模7余1 故同一日期的礼

2017-02-20 16:16:40 1191

原创 Problem E. Bet(2016 China-Final)【高精度除法】

题意:这是2016 ACM-ICPC China-Final的E题,题意是赌博游戏,给出n个队的赔率,问你最多能下注多少个队,才能使得不论你下注的这些队中哪一个队赢了你都可以赚,也就是说回报的金钱大于下注的总额。思路:先用数学翻译一下此题,其实很简单就可以推出一个不等式:用P-i代表我下注的总额中第i个队占的金额占比,应有:P-i > A-i/(A-i+B-i)要使得尽可能下注多的队,就将所有队的A-i/(A-i+B-i)排序,挨着取,直到总和>1思路很简单,但是此题的坑在于如果单纯地用doub

2017-02-11 12:23:46 1255

原创 Problem H. Great Cells(2016 China-Final)【数学计数+智力题】

题意:这是2016 ACM-ICPC China-Final的H题,在N×M的网格里填[1,K]的整数,定义一个格子是great的,如果满足这个格子中的数是本行和本列中严格的最大值。定义A-g为网格中恰好有g个great格子的填法数,求Σ(g+1)A-g思路:这题乍一看需要用组合数学 容斥原理计算A-g,但是这样做比较麻烦复杂。但其实这题是(g+1)的套路。。。简便做法是观察整体,把问题转化成每个位置是great格子对最终答案的贡献和,这样就绕开了A-g的计算。

2017-02-04 14:08:22 1740

空空如也

空空如也

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

TA关注的人

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