begin

牛客 最长递增子序列

╄→尐↘猪︶ㄣ 提交于 2019-11-27 20:46:23
题目链接: https://www.nowcoder.com/practice/30fb9b3cab9742ecae9acda1c75bf927?tpId=101&tqId=33093&tPage=1&rp=1&ru=/ta/programmer-code-interview-guide&qru=/ta/programmer-code-interview-guide/question-ranking 题目大意   略。 分析   经典 DP,具体怎么 DP 的推荐看左神的书,这里解释一下为什么从后往前不断找第一个 dp[i] 减少并且位于 LIS 上的元素就可以找到字典序最小的 LIS。   下面以样例 2,1,5,3,6,4,8,9,7,5,7,2,3 来演示 smallEnds 数组的更新。      从图中可以直观地看出来,后更新的,并且位于 LIS 路径上的点,一定能取代被它更新的,并且位于 LIS 路径上的点。 代码如下 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 5 #define Rep(i,n) for (int i = 0; i < (int)(n); ++i) 6

SQLite进阶-18.事务

戏子无情 提交于 2019-11-27 19:17:31
目录 SQLite事务 事务的属性 事务控制 BEGIN TRANSACTION命令 COMMIT命令 ROLLBACK命令 SQLite事务 事务(Transaction) 是一个对数据库执行工作单元。事务是以逻辑顺序完成的工作单元或序列,可以是由用户手动操作完成,也可以是由某种数据库程序自动完成。 事务是指一个或者多个改变数据库的扩展。例如:如果你正在创建一个记录或者更新一个记录或者从表中删除一个记录,那么你正在该表上执行事务。重要的是要控制事务以确保数据的完整性和处理数据库错误。 实际上,你可以把许多的SQLite查询联合成一组,把所有这些放在一起作为事务的一部分进行执行。 事务的属性 事务(Transaction)具有以下四个标准属性,通常根据首字母缩写为ACID: 原子性(Atomicity) : 确保工作单位内的所有操作都成功完成,否则,事务会在出现故障时终止,之前的操作也会回滚到以前的状态。 一致性(Consistency) : 确保数据库在成功提交的事务上正确的改变状态。 隔离性(Isolation) : 使事务操作相互独立和透明。 持久性(Durability) : 确保已提交事务的结果或效果在系统发生故障的情况下仍然存在。 事务控制 使用下面的命令来控制事务: BEGIN TRANSACTION: 开始事务处理。 COMMIT: 保持更改,或者可以使用END

牛客 打气球的最大分数

人盡茶涼 提交于 2019-11-27 19:09:59
题目链接: https://www.nowcoder.com/practice/35119064d0224c35ab1ab612bffee8df?tpId=101&tqId=33088&tPage=1&rp=1&ru=/ta/programmer-code-interview-guide&qru=/ta/programmer-code-interview-guide/question-ranking 题目大意   略。 分析   区间 DP,计算某个区间时,暴力地枚举最后一个打爆的位置。 代码如下 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 5 #define Rep(i,n) for (int i = 0; i < (int)(n); ++i) 6 #define For(i,s,t) for (int i = (int)(s); i <= (int)(t); ++i) 7 #define rFor(i,t,s) for (int i = (int)(t); i >= (int)(s); --i) 8 #define ForLL(i, s, t) for (LL i = LL(s);

Java初学心得(二)

主宰稳场 提交于 2019-11-27 19:06:11
数组概述 一,数组基本操作 ①一维数组的创建: 数组元素类型[] 数组名字=new 数组类型[数组元素个数]   例:int []arr=new int[5];数组长度为5 ②初始化一维数组:第一种:int []arr=new int[]{1,2,3,5,25}  第二种:int []arr={34,2,1,3}; ③二维数组的创建: 数组元素类型 [][]数组名字=new 数组元素类型[第一维长度][第二维长度] ④二维数组初始化:类型 arr[][]={v1,v2,v3....};创建成功后每个元素初值为0 ⑤填充替换数组: fill(int []a,int value) ,将value的值赋值给数组每个元素; fill(int []a,int begin,int end,int v) 区段赋值,从begin到end赋值给v ⑥数组排序: Arrays.sort(数组名称) ⑦复制数组: copyOf(数组名,int 长度) 返回新数组,复制指定区间数组: copyOfRange(数组名,begin,end) 从begin下标开始到end-1下标复制到新数组,返回新数组。 ⑧数组查询:在查询之前需对 数组进行sort排序 ,之后用 Arrays.binarySearch(数组名,搜索值) 返回数组下标,在指定范围内搜索: Arrays.binarySearch(数组名

亚特兰蒂斯

落爺英雄遲暮 提交于 2019-11-27 15:44:37
题目链接 题意:给n个矩形到一个平面上,求他们的总面积。 思路:将他们的x坐标从小到大排序,然后根据对于当前x坐标而言他们的y坐标区间进行相应的维护某些变化,这种解题思路就是扫描线。对于这题,我们要维护的是y区间的覆盖情况。 然后用覆盖的总长度去乘以当前两个x之间的距离,再全部加起来就是答案。对于如何去计算每一个x后的y区间覆盖情况,我们可以令(x1,y1,y2,1)表示左区间,(x2,y1,y2,-1)为右区间。因为 去累加的时候相当于在x2后面的就没覆盖到了。也就是说只有x1~x2的[y1,y2]区间被覆盖,还要维护个cnt表示被覆盖的次数。因为数据太大且为double记得离散化。 #include<cstring> #include<algorithm> #include<vector> #include<map> #include<queue> #include<cstdio> #include<cmath> #define ll long long #define lowbit(x) x&(-x) using namespace std; const int N=1000+10; struct node{ double x,y1,y2; int val; node() {} node(double x, double y1, double y2,int val){

牛客 派队最大快乐值

不羁的心 提交于 2019-11-27 15:29:09
题目链接: https://www.nowcoder.com/practice/a5f542742fe24181b28f7d5b82e2e49a?tpId=101&tqId=33255&tPage=1&rp=1&ru=/ta/programmer-code-interview-guide&qru=/ta/programmer-code-interview-guide/question-ranking 题目大意   略。 分析   树型 DP + 记忆化搜索。 代码如下 1 #include <bits/stdc++.h> 2 using namespace std; 3 4 #define INIT() ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); 5 #define Rep(i,n) for (int i = 0; i < (int)(n); ++i) 6 #define For(i,s,t) for (int i = (int)(s); i <= (int)(t); ++i) 7 #define rFor(i,t,s) for (int i = (int)(t); i >= (int)(s); --i) 8 #define ForLL(i, s, t) for (LL i = LL(s); i <= LL(t); ++i

Java初学心得(一)

扶醉桌前 提交于 2019-11-27 13:37:20
Java中基本组成单元是类,在类中又包含属性和方法。 每个应用程序都包含一个main()方法,main方法里的称为主类。 一,基本变化 ①全局变量:在类中的属性  局部变量:在方法中的属性 ②基本数据类型的变化   在基本数据类型中没有c++中的:long long类型,但是新增了{ byte,boolean }   其中不同之处在于:   1.long 的使用:当赋值的数大于int的最大或最小值时,要在数字后加上 L或l ;   2.float类型的使用:要在数字后加上 F或f   3.byte是1字节,范围 -128~127 ,char是两个字节的   4.boolean和c++中的bool一样。 ③常量的变化   c++中的常量是用:const+数据类型+常量名,而Java中的: final+数据类型+常量名 ④switch的不同   switch中的表达式可以是整数或字符型,在Java中还支持 字符串类型 。 二,String 类   1.创建字符串:String s=null;可以截取字符数组的一部分来创建字符串;也可以将字符数组全部当成字符串来创建。   2.字符串的连接:字符串可以和不同数据类型的数据进行连接,连接时直接将该数据转换成字符串。   3.查找字符串:获取长度 s.length()   字符串的查找: indexOf()

题解 P1576 【最小花费】

不打扰是莪最后的温柔 提交于 2019-11-27 12:38:49
嘛,其实是一道dijkstra果题,pascal题解少了点,我也来水一水 $Round 1$ 作死 这道NOIp模拟题,我记得我做过吧,用dijkstra过十分之简单 于是乎,我抱着试一试de心态——用floyed做一做 floyed的效率大概是 $O(n^3)$ 由于是无向图所以可以优化为 $O(n^2*n/2)$ 变形嘛,改一改就好 于是乎: for k:=1 to n do Begin for i:=1 to n do Begin for j:=1 to i do Begin if w[i,k]*w[k,j]>w[i,j] then Begin w[i,j]:=w[i,k]*w[k,j]; w[j,i]:=w[i,j]; end; end; end; end; floyed就如此完成 结果……全部TLE 超了2000毫秒ヾ(≧へ≦)〃可恶至极 (我不会说就算用了dijkstra也是可耻的慢(毕竟没有堆优化)) 上TLE程序: Var n,m,i,j,k,x,y,z,a,b:longint; w:array[0..2003,0..2003] of double; Begin readln(n,m); for i:=1 to m do Begin readln(x,y,z); w[x,y]:=(100-z)/100; w[y,x]:=w[x,y]; end; readln(a,b

表格分页——tablePagination

▼魔方 西西 提交于 2019-11-27 12:19:15
背景:表格是最为通用的展示方式,为了展示的统一性,以及分页组件的重用,这里写一个分页组件,供比较多或者较少数据2种表格进行分页展示。 分页组件: <template> <el-pagination style="margin-top: 15px" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage" :page-sizes="pageSizes" :page-size="pageSize" layout="total, sizes, prev, pager, next, jumper" :total="pageTotal"/> </template> <script> export default { props: { tableBegin: {// 需要的参数统一传过来 type: Array, default () { return [] } } }, data () { const pageSizes = [15, 25, 50, 100] return { currentPage: 1, pageSizes: pageSizes, pageSize: pageSizes[0] } }, computed: { pageTotal ()

LightOJ 1245 除法分块

不羁的心 提交于 2019-11-27 12:08:36
I was trying to solve problem ‘1234 - Harmonic Number’, I wrote the following code long long H( int n ) { long long res = 0; for( int i = 1; i <= n; i++ ) res = res + n / i; return res; } Yes, my error was that I was using the integer divisions only. However, you are given n, you have to find H(n) as in my code. Input Input starts with an integer T (≤ 1000), denoting the number of test cases. Each case starts with a line containing an integer n (1 ≤ n < 231). Output For each case, print the case number and H(n) calculated by the code. Sample Input 11 1 2 3 4 5 6 7 8 9 10 2147483647 Sample