c++STL 高效函数应用总结

一.三种二分查找函数(下面使用时都必须排序)头文件:#include<algorithm>1.binary_search()(1)功能:查找某个元素是否出现,其返回值是bool,若找到这个元素返回真,否则返回假。(2)模板:数组中:binary_search(num,num+n,k)//在num数组中找元素kvector中:binary_search(num.begin(),num.e...
分类: 其他 发布时间: 05-20 23:44 阅读次数: 6

带权并查集

1.概念:在并查集的基础上,对其中的每一个元素赋有某些值。在对并查集进行路径压缩和合并操作时,这些权值具有一定属性,即可将他们与父节点的关系,变化为与所在树的根结点关系,带权值的并查集只不过是在并查集中加入了一个value[ ]数组value[ ]可以记录很多种东西,不一定是类似距离这种东西,也可以是相对于根节点的状态2.例题1 poj1182 食物链题目:动物王国中有三类动物A,B,C,这三类动...
分类: 其他 发布时间: 05-20 23:44 阅读次数: 6

KMP算法入门

一.KMP算法概念来看上图,当比较串与模板串比较到AB处不相同时,原始做法是模板串前进一个单位,比较串回溯到开始重新比较,这样做效率低下,很多重复部分。我们要明确一点:模板串与比较串此时的1-2和3-4部分是相同的!所以如果此时串中开头与结尾的一部分是对称相同的,我们可以直接把比较串移动到C处与A比较(而模板串不回溯),这样就能提高效率!充分利用了目标字符串ptr的性质(比如里面部分字符串的重复性...
分类: 其他 发布时间: 05-20 23:44 阅读次数: 6

快速幂取模算法

1.快速幂适用问题: 大数据的a^b mod c2.取模运算的一些公式:(1)ab mod c = (a mod c)b mod c(2)(a*b)mod c = [(a mod c)*(b mod c)]mod c3.快速幂实现思路(1)任何数字都可以表示成二进制的01串形式,同理:a^b mod c也可以把b拆成二进制串表示   b = b0*2^0 + b1 * 2^1 + b2*2^2 +...
分类: 其他 发布时间: 05-20 23:43 阅读次数: 7

Gym 101350C 思维

题意:有一群袋鼠去餐厅吃饭,每只袋鼠吃xi的食物,每个x大的盘子可以装x多的食物,并且价格为x。现在问你有一群袋鼠,给出他们的食量,问最少花费和最大盘子尺寸是多少。样例:2 1 5 2 4 2out5 5 6 2思路:最少花费肯定是食物的量,因为大不了都用规格为1的盘子。而盘子尺寸应该是满足:1.整数个盘子恰好可以装下每只袋鼠的食量  2.盘子尽量大所以:由上可以看出,其实是求这些袋鼠食量的最大公...
分类: 其他 发布时间: 05-20 23:43 阅读次数: 7

Gym 10135D 思维

题意:给你一些竹子的高度,规则是一个竹子长高x,其他所有竹子都减少x,问这些竹子是否都能到达同一高度样例:232 4 221 2out : yes  no思路:如果只有两棵竹子,那么要想他俩能达到同一高度,那么他俩的差必须是偶数,同理,三棵时,看第一二棵树差必须是偶数,三四颗树差必须是偶数,那么要想满足达到同一高度,必须满足,排序后两两之间相差高度必须都是偶数!代码:#include <io...
分类: 其他 发布时间: 05-20 23:43 阅读次数: 7

Gym 101606C 思维

题意:代码很简单,题意很难懂。可能打过台球的人会容易理解这个题目。大体意思是:有七种颜色的球,每种颜色对应有一个价值,现在给你桌子上剩下的球,问你怎么打能让总价值最大。打球规则是:1.如果这次打的球是红色,那么下个打的球必须是其他颜色。2.如果这次打的球是其他颜色(桌子上还留有红球),那么下个球必须是红色3.如果桌子上还有红球,那么被打出去的球还可以再拿回来重新打思路:看懂题意后,题目就不难做了。...
分类: 其他 发布时间: 05-20 23:43 阅读次数: 7

区间dp入门

一.什么是区间dp?顾名思义:区间dp就是在区间上进行动态规划,求解一段区间上的最优解。主要是通过合并小区间的 最优解进而得出整个大区间上最优解的dp算法。二.核心思路既然让我求解在一个区间上的最优解,那么我把这个区间分割成一个个小区间,求解每个小区间的最优解,再合并小区间得到大区间即可。所以在代码实现上,我可以枚举区间长度len为每次分割成的小区间长度(由短到长不断合并),内层枚举该长度下可以的...
分类: 其他 发布时间: 05-20 23:42 阅读次数: 8

POJ 3280 Cheapest Palindrome 区间dp

题意:给你一个字符串和每个字符添加和删除的花费,可以在任一位置添加或者删除字符,求使字符串变成回文串的最小花费。思路:dp[i][j]表示i~j区间变成回文串的最小花费,假设现在要求dp[i][j],已知比他小区间的所有最优值。则 : dp[i][j] 在 dp[i][j]删除头部构成的回文串dp[i+1][j] + delete[ s[i] ] 和  dp[i][j]添加尾部构成的回文串dp[i...
分类: 其他 发布时间: 05-20 23:42 阅读次数: 8

POJ 3661 running 区间dp

题意:给你一个人要跑的分钟数n和他的疲劳值m,每一分钟他可以选择休息或者是跑步,每一分钟可以跑的距离给出。1.如果跑步,那么他的疲劳值就会增加1,最大不超过m,也就是说到达m后他必须休息2.如果休息,那么他的疲劳值就会减少1,最小到0,但到0后他可以继续休息,保持0不变要求最后达到n分钟后这个人的疲劳值必须是0,求这个人可以跑的最大距离思路:咋一看这个题,有点贪心的感觉,有点懵。但其实是个区间dp...
分类: 其他 发布时间: 05-20 23:42 阅读次数: 9

UVA140 宽带 剪枝+映射铺展+题意

题意:题目给你每个节点和它所之间连接的对象,距离为1.给出所有节点的排列,求每个排列所有可直接连接的节点间距离的最大值中 的最小值。思路:枚举全排列,判断每个相连结点的距离,剪枝优化反思:1.对于题意没有理解清楚,TLE到怀疑人生,后来恍然醒悟,给出的节点不一定是按顺序升序给出的,比如我可以给出A D E F,而不是ABCDEF,所以这里就要记录一下出现的节点,而不能单单是求最大的字符orz(哭)...
分类: 其他 发布时间: 05-20 23:42 阅读次数: 8

基姆拉尔森计算公式(今天计算星期几)

1.用途:给你年月日,计算今天星期几2.公式:Week = (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400+1) mod 7;其中: d为几号,m为月份,y为年份3.注:把一月和二月看为是上一年的十三月和十四月!!4.板子:int Date(int y,int m,int d) { if(m==1||m==2){//一二月换算 m+=12; ...
分类: 其他 发布时间: 05-20 23:41 阅读次数: 10

实验三 Android程序设计

实验三 Android程序设计 课程:Java程序设计 班级:1652 姓名:孔月 学号:20165208 指导教师:娄嘉鹏 实验日期:2018.5.14 实验名称:Android程序设计 实验要求: 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程; 完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什
分类: 其他 发布时间: 05-20 23:41 阅读次数: 7

计算机网络之应用层初识

一,定义   应用层是直接为用户提供服务的,两个应用层的通信之中有一个逻辑连接(有主机a的应用层...-物理层-交换机a-路由器-交换机b-主机b的物理层-...应用层),也就是说我们可以假想成一个直接的连接,也就是我们可以使用应用层发送和接收报文。 二,标准应用层协议和非标准   在应用层上的协议并且被internet官方标准化和归档的协议陈为标准应用层协议,比如http,ftp,ssh等   非标准应用层协议是用户自定义在应用层上的一些协议,因为有时候对应官方规定的协议对于程序员来说有可能
分类: 其他 发布时间: 05-20 23:41 阅读次数: 6

Canvas -- 角度与弧度

角度 直观说:角度也就是数学中的多少度。如 60°,180°,90° 其他表示方法: 90° 即 π / 2。 60° 即 π / 3. 180° 即 π。 Canvas 中的弧度。 同角度一样。计算公式:假设当前弧度为 deg,( js 中的 π 用 Math.PI 表示) ** 弧度 = deg * Math.PI / 180 ** 以下canvas实例:通过角度去计算圆中某一点: 直接求得 x轴长度 , y轴长度需要使用 Math实例方法;Math.sin(),Math.cos(); l
分类: 其他 发布时间: 05-20 23:41 阅读次数: 7

.NETFramework-Web.Mvc:FilePathResult

ylbtech-.NETFramework-Web.Mvc:FilePathResult 1.程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35返回顶部 1、 #region 程序集 System.Web.Mvc, Version=5.2.3.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 // c:\users\adm
分类: 其他 发布时间: 05-20 23:41 阅读次数: 7

数据类型 tuple 的常用方法

# 元组tuple和列表list的区别就是:list可以进行修改,tuple是不允许修改的(将来在写代码时如果不让其修改-只有查的功能,就可以设计成元组)。 name_tuple = ("zhangSan", "liSi", "wangWu", "zhangSan") # 元组是用()括起来的 # 可以被查询 for i in name_tuple: print(i) print(name_tuple.index("liSi")) # 1.计算元素的索引 print(nam
分类: 其他 发布时间: 05-20 23:41 阅读次数: 7

20165302实验四报告

20165302实验四实验报告 提交点1 参考http://www.cnblogs.com/rocedu/p/6371315.html#SECANDROID,安装 Android Stuidio 完成Hello World, 要求修改res目录中的内容,Hello World后要显示自己的学号,自己学号前后一名同学的学号,提交代码运行截图和码云Git链接,截图没有学号要扣分 学习Android Stuidio调试应用程序 截图 提交点2 构建项目,运行教材相关代码 创建 ThirdActivi
分类: 其他 发布时间: 05-20 23:41 阅读次数: 7

【爬虫】把抓到数据存起来——爬虫绝配mongodb

【爬虫】把抓到数据存起来——爬虫绝配mongodb 视频地址 抓取数据的方法,前面的课程该讲的都已经讲了,爬取下来数据只是第一步,第二步就是要先存起来。我们最容易想到的就是存文件里喽,python写文件之前的课程也已经讲过了。存到文件里当然是可以的,但是你是否想过,每次使用都要把整个文件打开,然后读取,实在是有点不geek啊。 所以我们通常会选择存进数据库,方便写入和读取数据,并且对于大部分情况而言,python数据结构中的dict足够我们去结构化抓取的数据,那么能把两者发挥到极致的神器就是—
分类: 其他 发布时间: 05-20 23:41 阅读次数: 6

You have new mail in /var/spool/mail/root

ssh远程登陆到某台机器后,终端经常出现You have new mail in /var/spool/mail/root的提示信息。 在不经常查看系统自动生成的邮件或是想查看的时候使用命令查看时, 可停用邮件自动提示: echo "unset MAILCHECK" >> /etc/profile 然后 source /etc/profile 或 reboot
分类: 其他 发布时间: 05-20 23:41 阅读次数: 8