last

pymysql分页

巧了我就是萌 提交于 2019-12-03 15:00:06
def sqlexec(last_nid, is_next): import pymysql conn = pymysql.connect(host='192.168.12.29', port=3306, user='root', passwd='123', db='IndexDB', charset='utf8') cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) # 执行存储过程,获取存储过程的结果集,将返回值设置给了 @_存储过程名_序号 = if is_next: cursor.execute('select * from tb1 where nid>%s limit 10',last_nid) result = cursor.fetchall() else: cursor.execute('select * from tb1 where nid<%s order by nid desc limit 10', last_nid) result = cursor.fetchall() result = list(reversed(result)) conn.commit() cursor.close() conn.close() return result current_last_nid = 0 current_

区间和序列上的dp

懵懂的女人 提交于 2019-12-03 13:06:05
区间上的dp状态设计最基本的形式: \(F[i]\) 表示以i结尾的最优值或方案数。 \(F[i][k]\) 表示以i结尾附加信息为k的最优值或方案数。 当然可以有多维附加信息。 转移的话往往是枚举上一个断点。 \(F[i]=max \{ F[j]+ w(j+1,i) | j是一个满足转移条件的断点\}\) 。 另一个很常见的是:$ f[i][j]$前i个位置分成j段/选出j个的最优值。 这是最简单的一类序列上的dp bzoj1003 有m个码头和e条航线,每天航线有成本。有连续n天需要从1号码头到m号码头运输货物。每个码头会在某些天数区间内不许经过。每更换一次运输路线,要付出k的成本。 求这n天的最小总成本。 m<=20, n<=100 SOLUTION: 其实就是分成很多段,每一段选同一个运输路线,然后得到一个最优的划分方案,使得成本最小。 f[i]表示前i天的运输最小成本。 \(f[i]=min\{ f[j]+k+w(j+1,i)*(i-j) | j<i \}\) 其中w(x,y)表示最短的在第x天到第y天都能用的路线长度; 处理方法: 首先枚举所有的x,y,然后利用最短路算法(这里dijkstra)算出x~y这些天都可以满足的1到m的最短路径;(计算方法:首先数组$use[i][j] $记录第i个点在第j天是否可以使用,在dijkstra时传入x和y,提前预处理

机器学习算法------梯度下降法

倾然丶 夕夏残阳落幕 提交于 2019-12-03 11:55:38
优秀的讲解博客 刘建平的博客 算法简述 梯度下降通常是通过迭代的方式来搜索某个函数的极大/小值,他对目标函数每个变量求偏导得出梯度,也就是沿着梯度方向函数值会增加的最快,那么要求最小值就要沿着梯度值的反方向,梯度下降分为随机梯度下降与批量梯度下降,以及小批量梯度下降,随机梯度相比批量梯度耗时少,但精度不如批量高,批量每一步都沿着下降最快的方向下降,但是样本很多的话 耗时很多,还有就是随机梯度具有随机的特性,可能会跳出局部最优解从而到达全局最优解,而批量梯度则会一步步的走向局部最优解 模拟梯度下降法 梯度下降搜索一元二次方程最小值 通过梯度下降 求解 y = (x-2.5) ^ 2 - 1的 最小值 import numpy as np import matplotlib.pyplot as plt plot_x = np.linspace(- 1. , 6. , 141 ) # 造一个数据 plot_y = (plot_x- 2.5 ) ** 2 - 1. #plt.plot(plot_x, plot_y) #plt.show() epsilon = 1e-8 #误差 eta = 0.1 # 学习率 def J (theta) : # 要求解的函数 return (theta - 2.5 ) ** 2 - 1. def dJ (theta) : # 对函数求导之后的式子

10 31

主宰稳场 提交于 2019-12-03 11:06:51
  今天考的还是牛客 牛客的题的质量还是挺不错的 至少 我都不会qwq。 由于下一次的没有参加 所以这里把下一次的题也顺带说一下。(填坑期间。 给人的感觉 类似于二分之后模拟。但是模拟的话也就是每次我们选择最多的需求开始做 然后这样 每次都选取最高的那个 然后慢慢填 这样效率并不高如何快速判定答案? 不知道 其实是这样的我们容易得到答案的下界max{ai}和 令一个答案的下界 ceil(sum/m) ceil 向上取整的意思。 取max我们得到了一个答案我们猜想 一下这个答案是否合法 ?其实花了几个样例发现是合法的就可以写了 。 证明是这样的我们依次给每一天分配 第一天分配a1 第二天从a1之后继续分配 然后如果不够就从头开始 由于答案>=max{ai} 这满足了一个限制一天不会被同一个机器做两次 不可能绕一圈还多 然后发现这样做就是合法的 然后由于总次数大于sum所以可以发现不会出现不够的情况 所以我们成功的构造出来了。 那就是动态查询最大值了 multiset即可。值得一提的是我是二分找答案了 爆longlong了。 直接除较好。 //#include<bits/stdc++.h> #include<iostream> #include<queue> #include<iomanip> #include<cctype> #include<cstdio> #include

LinAlgError: Last 2 dimensions of the array must be square

心不动则不痛 提交于 2019-12-03 10:53:57
python 矩阵计算时出现错误 此时如果矩阵不是方阵,就会出现如下错误:      这里值得注意的是:当我们这样使用的时候,程序运行又会很正常: 貌似我们求得了非方阵的逆。 下面我们来验证一下: 仔细一看,这不是单位阵啊,笔者以为,这种方法并不可行,但带着博客严谨性的想法,笔者决定看看方阵的结果。 看到这里,笔者发现,方阵的求逆也出现了异常,,不由得仔细一看,,原来本该是0 的项非常小,学过数值分析的朋友们应该知道,这里是由于计算机的舍入误差所造成的的非零问题,所以二者我们都可以将其看做是单位阵。 注意:此处不要随意转换数据类型,因为转换数据类型会有数据精度损失,比如上述单位阵在转换数据类型时就会产生变化,对角线上的某一位可能会变为0. 来源: https://www.cnblogs.com/ambdyx/p/11792002.html

csp2019备赛之刷题赛-round3

牧云@^-^@ 提交于 2019-12-03 10:45:27
csp2019备赛之刷题赛-round3 link to this contest C. Winner 大意:有$n$个人打淘汰赛,每个人有$3$个权值,只要有一个权值大于对方就有可能获胜,问每个人是否有可能夺冠 $n \leq 10^5$ 题解:对于三维权值,每一维都排一次序,权值大的向权值小的连边,如果有权值相同,就开两个出入的虚点,如果存在一条$x-->y$的路径就说明$x$可能打败$y$,然后缩点,没有入度的那个块里面的点都可能拿冠军 1 #include<bits/stdc++.h> 2 namespace csx_std { 3 using namespace std; 4 typedef long long ll; 5 #define FOR(i,a,b) for (register int i=(a);i<=(b);i++) 6 #define For(i,a,b) for (register int i=(a);i>=(b);i--) 7 #define mem(i,j) memset(i,j,sizeof(i)) 8 #define pii pair<int,int> 9 #define MP make_pair 10 #define fi first 11 #define se second 12 #define GO(u) for (register int

Tkinter 之ListBox列表标签

本小妞迷上赌 提交于 2019-12-03 10:39:07
一、参数说明 参数 作用 background (bg) 设置背景颜色 borderwidth (bd) 指定 Listbox 的边框宽度,通常是 2 像素 cursor 指定当鼠标在 Listbox 上飘过的时候的鼠标样式 exportselection 选中的项目文本是否可以被复制到剪贴板, 默认值是 True font 指定 Listbox 中文本的字体 foreground (fg) 设置 Listbox 的文本颜色 height 设置 Listbox 显示的行数(不是像素), 默认值是 10 highlightbackground 指定当 Listbox 没有获得焦点的时候高亮边框的颜色 highlightcolor 指定高亮边框的宽度, 默认值是 1 listvariable 指向一个 StringVar 类型的变量,该变量存放 Listbox 中所有的项目 relief 指定边框样式, 默认值是 "sunken" selectbackground 指定当某个项目被选中的时候背景颜色 selectborderwidth 指定当某个项目被选中的时候边框的宽度 selectforeground 指定当某个项目被选中的时候文本颜色 selectmode "single"(单选) "browse"(也是单选,但拖动鼠标或通过方向键可以直接改变选项) "multiple"(多选

从0到1 快速建一个区块链

▼魔方 西西 提交于 2019-12-03 10:37:54
近期的区块链重回热点,如果你想深入了解区块链,那就来看一下本文,手把手教你构建一个自己的区块链。 弄懂区块链的最快方法-亲自构建一个 看到这篇文章,说明您也是对加密货币的兴起感兴趣,想知道区块链是如何工作的和其背后运行的技术原理。 但是想要搞懂区块链并不容易。我在众多的视频中苦苦钻研,跟随着漏洞百出的教程,经历着因区块链相关案例太少而产生的挫败感。 我喜欢从行动中学习。它迫使我从代码层面处理问题,从而解决问题。如果您和我一样做,那么在本指南的最后,您将拥有一个运行正常的区块链,并对它们的工作原理有深入的了解。 上手准备 请记住,区块链是一个不可变的、连续的记录链,称为块。它们可以包含事务、文件或您喜欢的任何数据。但是重要的是,它们通过使用哈希而被链接在一起。 如果您不确定什么是哈希值,请参考这里。 教程面向的人群? 可以轻松地阅读和编写一些基本的Python,并且对HTTP请求的工作方式有所了解,因为本文将通过HTTP与区块链进行交流。 需要准备什么? 确保已安装 Python 3.6 +(以及pip)。您还需要安装Flask和很棒的Requests库: pip install Flask==0.12.2 requests==2.18.4 您还需要HTTP客户端,例如Postman或cURL。 源代码可在此处获得。 步骤1:构建一个区块链 打开你最喜欢的文本编辑器或IDE

[LeetCode] 34. Find First and Last Position of Element in Sorted Array

十年热恋 提交于 2019-12-03 10:34:35
在有序数组中查找元素的第一个和最后一个位置。题意很简单,给了一个数组和一个数字A,问数字A第一次和最后一次在数组中出现的位置在哪里,若没有,return -1。例子, Example 1: Input: nums = [5,7,7,8,8,10], target = 8 Output: [3,4] Example 2: Input: nums = [5,7,7,8,8,10], target = 6 Output: [-1,-1] 也是一道典型的二分法题目,思路是通过二分法思想分别找到第一个插入的位置和第二个插入的位置。 时间O(log n) 空间O(1) 1 /** 2 * @param {number[]} nums 3 * @param {number} target 4 * @return {number[]} 5 */ 6 var searchRange = function(nums, target) { 7 // corner case 8 if (nums === null || nums.length === 0) { 9 return [-1, -1]; 10 } 11 // normal case 12 let start = findFirst(nums, target); 13 if (start === -1) { 14 return [-1, -1];

Get last created directory batch command

匿名 (未验证) 提交于 2019-12-03 10:24:21
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试): 问题: How can i get newest subfolder in directory ? I need it in MKLINK /D command. Thanks 回答1: FOR /F "delims=" %%i IN ('dir /b /ad-h /t:c /od') DO SET a=%%i echo Most recent subfolder: %a% ( %i for windows 10) /b is for bare format /ad-h only directories, but not the hidden ones t:c means to use the creation date for sorting (use t:w for last write date) /od sort oldest first The for /F executes the command and sets a to the directory name, the last one is the newest one. If you execute this directly on the command line (not in a batch file),