update

hdoj 4325 Flowers 线段树+离散化

穿精又带淫゛_ 提交于 2020-01-08 10:18:24
hdoj 4325 Flowers 题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4325 思路: 直接线段树,按照花的开放区间的大小建树,要注意虽然花的周期数据可能会达到1e9,这样的话线段树开四倍时不可能的。但是我们可以看到一共可能的数据时N行,那么每行两个数,再开4倍的区间。计算下来,在离散化的帮助下,我们只需要开8*N被的线段树即可。 另外询问的数据也需要放入离散化的范围,如果不这样做,有可能在询问时使用lower_bound函数会导致数据的改变,询问的原数据发生变化。 eg:1~3 7~10 询问6,结果应该时0,但因为lower_bound的原因询问时使用7,得到结果1。etc. 代码: #include <iostream> #include <algorithm> #include <stdio.h> #include <string.h> #include <math.h> using namespace std; const int maxn = 1e5+5; struct node { int l,r,sum,lazy; inline void update(int val) { lazy+=val; sum+=val; } } tr[maxn*8]; int a[maxn],b[maxn],c[maxn<<1

MongoDB起步

风格不统一 提交于 2020-01-08 07:04:38
1.Mongodb基本概念和SQL的区别: SQL术语 MongoDB术语 database database table collection row document column field index index primary key primary key MongoDB自动将_id字段设置文主键 2.删除数据库表(Table) db.collection.drop(); 3.创建数据库 use test db db.test.insert({"":""})必须插入一条数据才能看到他的表 3.插入文档: db.test.insert(document) 4.更新文档: update()和save() update(): db.collection.update( <更新条件,类似SQL update的where语句>, <update:类似sql update的set后面的语句>, { upsert:可选参数,表示如果不存在该更新条件的记录是否插入一个新的,(可选值:true/false,默认FALSE不插入) multi:可选参数,表示只更新找到的第一条数据 writeConcern:可选参数,抛出异常的级别 } } save():使用传入的文档替换已有文档 db.collection.save( <document>,该document需要带上_id属性

MongoDB基本操作

↘锁芯ラ 提交于 2020-01-08 04:50:26
1、创建数据库    格式 :usr database_name    如果数据库存在创建数据库,否则切换到指定数据库 > use mydbswitched to db mydb> 2、查看数据库   查看数据库列表:      格式 :show dbs     注意:如果是刚创建的新数据库并不会出现在数据库列表中,要显示它需要插入数据。        查看当前使用数据库:      格式 : db  >db mydb>    注意 :     1、在MongoDB中默认数据库为test,如果你没有创建新的数据库,集合会放在test数据库中。     2、在MongoDB中,集合只有插入内容后才会创建,也就是说创建集合后需要插入一个文档,集合才会被创建。 三、删除数据库   格式:db.dropDatabase()      再查看下数据库是否被删除,使用show dbs;    四、创建集合   格式:db.createCollection(name, options)   参数说明:name 要创建的集合名称,options可选参数,指定有关内存大小及索引选项      查看已有的集合使用:show collections      在MongoDB中,插入一些文档时,如果集合不存在,它会自动帮你创建    五、删除集合:   格式:db.COLLECTIONS_NAME

JAVA--Mybatis-Spring-SpringMVC框架整合

我的未来我决定 提交于 2020-01-07 22:40:23
------Mybatis-Spring-SpringMVC框架整合示例----- mybatis SQL映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.bdit.dao.IUserDao"> <!--查询所有的操作--> <select id="findAll" resultType="com.bdit.model.User"> select * from user </select> <!--根据id去查询--> <select id="findByid" resultType="com.bdit.model.User" parameterType="int"> select * from user where id=#{id} </select> <!--保存信息--> <insert id="insert" parameterType="com.bdit.model.User"> insert into user(userName,gender,address)values(

JAVA--Mybatis-Spring-SpringMVC框架整合

扶醉桌前 提交于 2020-01-07 21:02:33
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> ------Mybatis-Spring-SpringMVC框架整合示例----- mybatis SQL映射文件 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.bdit.dao.IUserDao"> <!--查询所有的操作--> <select id="findAll" resultType="com.bdit.model.User"> select * from user </select> <!--根据id去查询--> <select id="findByid" resultType="com.bdit.model.User" parameterType="int"> select * from user where id=#{id} </select> <!--保存信息--> <insert id="insert" parameterType="com.bdit.model.User"> insert into

不为人所知的分布式锁实现全都在这里了!

◇◆丶佛笑我妖孽 提交于 2020-01-07 20:52:39
1、引入业务场景 首先来由一个场景引入: 最近老板接了一个大单子,允许在某终端设备安装我们的APP,终端设备厂商日活起码得几十万到百万级别,这个APP也是近期产品根据市场竞品分析设计出来的,几个小码农通宵达旦开发出来的,主要功能是在线购物一站式服务,后台可以给各个商家分配权限,来维护需要售卖的商品信息。 老板大O :谈下来不容易,接下来就是考虑如何吸引终端设备上更多的用户注册上来,如何引导用户购买,这块就交给小P去负责了,需求尽快做,我明天出差! 产品小P :嘿嘿~,眼珠一转儿,很容易就想到了,心里想:“这还不简单,起码在首页搞个活动页... ”。 技术小T: 很快了解了产品的需求,目前小J主要负责这块,找了前端和后端同学一起将活动页搞的快差不多了。 业务场景一出现 : 因为小T刚接手项目,正在吭哧吭哧对熟悉着代码、部署架构。在看代码过程中发现,下单这块代码可能会出现问题,这可是分布式部署的,如果多个用户同时购买同一个商品,就可能导致商品出现 库存超卖 (数据不一致) 现象,对于这种情况代码中并没有做任何控制。 原来一问才知道,以前他们都是售卖的虚拟商品,没啥库存一说,所以当时没有考虑那么多... 这次不一样啊,这次是售卖的实体商品,那就有库存这么一说了,起码要保证不能超过库存设定的数量吧。 小T大眼对着屏幕,屏住呼吸,还好提前发现了这个问题,赶紧想办法修复,不赚钱还赔钱

通过composer发布自己的包

做~自己de王妃 提交于 2020-01-07 20:25:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 前提: 已经学会了composer的基础用法,知道composer.json的作用,知道install和update命令的作用。 你会使用git,并在github上有一个账号。 基本流程: 1.在github上创建自己的项目,例如:helloworld 2.将项目通过git克隆到本地,创建composer.json 3.commit并push到github上 4.到 https://packagist.org/ 上点击右上角"submit package",需要登录,点击"login with github"使用github账号登录即可,初次登录会让你登记邮箱,完了再次点击"submit package"。 5.填写项目地址" Repository URL ",这个url就是你github上helloworld项目的url。 6.点击"check"按钮,系统自动检测你的项目中composer.json是否合格,并给出原因。如果没有错误的话,请点击提交。 7.包创建成功,可以根据提示继续配置github自动同步功能,这样每次push后,packagist对应包的版本号也会更新。 8.修改包并更新,修改后git push,然后到使用该包的项目中执行composer --dev --prefer-source

Mybatis-select、insert、update、delete标签详解

不想你离开。 提交于 2020-01-07 20:24:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> <select id="selectPerson" parameterType="int" parameterMap="deprecated" resultType="hashmap" resultMap="personResultMap" flushCache="false" useCache="true" timeout="10000" fetchSize="256" statementType="PREPARED" resultSetType="FORWARD_ONLY"> Select Attributes 属性 描述 id 在命名空间中唯一的标识符,可以被用来引用这条语句。 parameterType 将会传入这条语句的参数类的完全限定名或别名。这个属性是可选的,因为 MyBatis 可以通过 TypeHandler 推断出具体传入语句的参数,默认值为 unset。 parameterMap 这是引用外部 parameterMap 的已经被废弃的方法。使用内联参数映射和 parameterType 属性。 resultType 从这条语句中返回的期望类型的类的完全限定名或别名。注意如果是集合情形,那应该是集合可以包含的类型,而不能是集合本身。使用 resultType 或 resultMap

最新用的PHP mysql类

爷,独闯天下 提交于 2020-01-07 18:43:29
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> <?php Class DB { private $link_id; private $handle; private $is_log; private $time; private $getLastSql; public function DB($dbhost='localhost',$dbuser='', $dbpw='', $dbname='' ) { if ($dbhost && $dbuser && $dbpw && $dbname) { $this->connect($dbhost,$dbuser, $dbpw, $dbname); } } //数据库连接 public function connect($dbhost, $dbuser, $dbpw, $dbname, $pconnect = 0,$charset='utf8') { if( $pconnect==0 ) { $this->link_id = @mysql_connect($dbhost, $dbuser, $dbpw, true); if(!$this->link_id){ $this->halt("数据库连接失败"); } } else { $this->link_id = @mysql_pconnect($dbhost,

Java双缓冲技术

我是研究僧i 提交于 2020-01-07 17:42:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 双缓冲技术是为了解决Java在游戏编程的过程中由于页面刷新频率太快,而引起的页面闪烁问题。 它的执行过程是这样的:repaint() 到update()再到paint(),而我们的双缓冲代码就写在update()里, 下面是一段代码: Image offScreenImage=null; public void update(Graphics g) { //双缓冲技术 if(offScreenImage==null){ offScreenImage=this.createImage(GAME_WIDTH,GAME_HEIGHT); } Graphics goffScreen=offScreenImage.getGraphics(); Color c=goffScreen.getColor(); goffScreen.setColor(Color.GREEN); goffScreen.fillRect(0, 0, GAME_WIDTH,GAME_HEIGHT); goffScreen.setColor(c); paint(goffScreen); g.drawImage(offScreenImage, 0, 0,null); } ... } 这就是它的核心代码。 来源: oschina 链接: https:/