num

PTA A1003&A1004

牧云@^-^@ 提交于 2020-02-27 07:29:44
第二天 A1003 Emergency (25 分) 题目内容 As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road between any pair of cities are marked on the map. When there is an emergency call to you from some other city, your job is to lead your men to the place as quickly as possible, and at the mean time, call up as many hands on the way as possible. Input Specification: Each input file contains one test case. For each test case, the first line contains

使用multi curl进行http并发访问

混江龙づ霸主 提交于 2020-02-27 07:24:06
curl是一款利用URL语法进行文件传输的工具,它支持多种协议,包括FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET等,我们既可以在命令行上使用它,也可以利用 libcurl进行相关编程。相信大部分同学都应该使用过libcurl的easy 接口,easy接口的使用非常的简单,curl_easy_init用来初始化一个easy curl对象,curl_easy_setopt对easy curl对象进行相关设置,最后curl_easy_perform执行curl请求,返回相应结果。easy接口是阻塞的,也就是说必须等到上一个curl请求执行完后,下一个curl请求才能继续执行,在一般的应用场合,这种阻塞的访问方式是没有问题的,但是当程序需要进行多次curl并发请求的时候,easy接口就无能为力了,这个时候curl提供的multi接口就派上用场了,网上关于libcurl的multi接口的使用资料比较少(百度出来的大部分都是php multi curl的资料),curl官网上貌似也只有相关函数的说明,有实际demo才能让我们更快速的上手使用,所以下面结合实际例子来讲讲multi curl接口的使用方法。 相比而言,multi接口的使用会比easy 接口稍微复杂点,毕竟multi接口是依赖easy接口的,首先粗略的讲下其使用流程:curl_multi

JS保留两位小数

纵然是瞬间 提交于 2020-02-27 06:00:53
四舍五入 以下处理结果会四舍五入: var num =2.446242342; num = num.toFixed(2); // 输出结果为 2.45 不四舍五入 以下处理结果不会四舍五入: 第一种,先把小数边整数: Math.floor(15.7784514000 * 100) / 100 // 输出结果为 15.77 第二种,当作字符串,使用正则匹配: Number(15.7784514000.toString().match(/^\d+(?:\.\d{0,2})?/)) // 输出结果为 15.77,不能用于整数如 10 必须写为10.0000 **注意:**如果是负数,请先转换为正数再计算,最后转回负数 来源: oschina 链接: https://my.oschina.net/miaojiangmin/blog/3160178

python实现猜字游戏

早过忘川 提交于 2020-02-27 05:06:54
import randomx = random.randint(0,99)while(True): num = input("please input a number\n") if(num.isdigit): num = int(num) if(x == num) : print("congratulations,you are winner!") break elif(x > num): print("you guess a little small!") elif (x < num): print("you guess a little big!") else : print("you input incorrect! please again!") 来源: https://www.cnblogs.com/CoolClare/p/10763361.html

request.GET之urlencode

有些话、适合烂在心里 提交于 2020-02-27 04:44:33
urlencode()的作用 urlencode()是request.GET的一种方法,那他的功能是什么,我们先来测试一下。 这里以一个crm项目的一个功能为例进行测试。 首先,在URL地址中输入想要携带的参数,并发送请求给后台,如下: 后台我们首先看一下request.GET的类型以及调用urlencode()方法 输出结果: 从输出的结果中我们能看到:request.GET是一个queryDict,关于这个queryDict我们后面详细了解,先来看request.GET.urlencode()方法的调用结果,它将url上的参数完整的‘截取’了下来。那么这个方法的工作原理是什么呢?我们来看queryDict的源码。 首先,导入queryDict,然后点进去 from django.http.request import QueryDict 找到urlencode方法 根据方法的注释我们能知道,它是用来 将查询参数编码成字符串后返回 的方法,也就是说它request.GET中的查询参数的一个个键值对,编码成字符串然后返回。关于上图中的example说的是关于对url上参数等于某个路径的参数的编码,可以看一下。 接下来我们大概的看一下源码: def urlencode(self, safe=None): """ Returns an encoded string of all

LeetCode152-乘积最大子序列

只谈情不闲聊 提交于 2020-02-27 03:51:18
今天偶发灵感,在线创作了一句卑微的歌词 想分享给我的百万粉丝品品 我拼了命的想被你看见 而你却总是视而不见! 诸位看官请笑纳。 题目描述: 给定一个整数数组 nums ,找出一个序列中乘积最大的连续子序列(该序列至少包含一个数)。 示例 1: 输入: [2,3,-2,4] 输出: 6 解释: 子数组 [2,3] 有最大乘积 6。 示例 2: 输入: [-2,0,-1] 输出: 0 解释: 结果不能为 2, 因为 [-2,-1] 不是子数组。 思路: 本题是经典的动态回归方法,关于动态回归方法我前面有专门写了一篇文章来介绍如何作答的,感兴趣的朋友可以看看这篇文章。 https://blog.csdn.net/weixin_36431280/article/details/86616672 在这篇文章里,我也提到了,其实解答动态回归的题目的关键点就是要找到 动态方程 。而本题的方程式比较难归纳到,让我们一步一步来分析。 首先,本题的难点无非就是要把负数和正数给区分开,而负数其实就是分两种情况:个数为单数和偶数。如果负数的个数为偶数的话,那好办了,最大乘积和为列表所有元素的乘积。如果负数个数为奇数个的话,其实也是两种情况: 所以,我们就是要能标记出这两种情况。一般来说,我们就是要初始化两个标记列表max_ num和min_ num来一次记录不同子序列的最大值和最小值。请注意

基于canvas的仪表盘效果

纵饮孤独 提交于 2020-02-27 02:21:54
概述 基于Canvas实现的仪表盘及效果。通过配置参数,可以任意修改仪表盘颜色,刻度,动画过渡时间等,满足不同场景下的使用。同时使用原生的Canvas,也是学习Canvas的很好的例子。 详细 代码下载: http://www.demodashi.com/demo/13031.html 一、演示效果 仪表盘效果如下: 二、项目结构截图 gauge.js文件是canvas仪表盘的主逻辑,demo.html中是使用的方法。 注:本例子只有2个文件,如上图所示。 三、使用方法 在html中,加入一个canvas的元素,设置宽高为510。 <canvas width=510 height=510 id="gauge"></canvas> <script src="./gauge.js"></script> //然后配置仪表盘 var my_canvas_obj= document.getElementById("gauge"); var gauge2 = new Gauge({ "tick_length": 12, "large_tick_length": 22, "tick_thickness": 1, "tick_group_length": 9, "ticks_groups_begin": 0, "total_degrees": 250, "total_tick": 101,

leetcode27:移除元素

笑着哭i 提交于 2020-02-27 01:49:33
题目的意思是不要额外新增数组,消耗内存。 一开始采用了笨方法,即删除一个字符时,就再循环一遍。那么就很浪费时间,时间复杂度应该是 O ( N 2 ) O(N^2) O ( N 2 ) 。 int benfangfa ( vector < int > & nums , int val ) { int num = nums . size ( ) ; int num1 = nums . size ( ) ; for ( int i = 0 ; i < num1 ; i ++ ) { for ( int j = 0 ; j < num ; j ++ ) { if ( nums [ j ] == val ) { nums . erase ( nums . begin ( ) + j ) ; num -- ; break ; } } } cout << "num is " << num << endl ; return num ; } 然后精简了一下,在循环中当向量值等于需要消除的值时,令变量i置为0,相当于重新循环。但是这里犯了一个错误,for循环是执行完括号内容再++的,所以此处应该令i = -1,这样的话执行完i+1刚好等于0。 int benfangfa2 ( vector < int > & nums , int val ) { int num = nums . size ( ) ;

动态连接

家住魔仙堡 提交于 2020-02-26 22:01:57
[TOC] 动态连接 这里有一系列的对象(一开始之间没有连接) graph TD 0((0)) 1((1)) 2((2)) 3((3)) 4((4)) Union command(连结命令):连接两个对象 Find/connected query(连结查询):这两个对象间有没有连接? 通过Union操作使得对象之间产生连接 union(0,1) union(2,3) union(3,4) graph TD 0((0))===1((1)) 2((2))===3((3)) 3===4((4)) 现在可以做一些查询 connected(0,1) 是,0和1之间有连线 connected(1,3) 否,从1无法通过连线到达3 connected(2,4) 是,2可以通过连线到达4 这里连接的特性 自反性 对称性 传递性 快速查找 数据结构 使用简单的长度为N的数组来表示(N为节点个数) 解释:以数组下标标识每一个独立的节点,如果数组不同下标的位置上数字相同则表示这两个下标标识的节点有连接关系 方法实现 上面提到的Find(i,j)只需要检查数组下标为i,j的位置是否有相同的数字,如果是就返回true,反之返回false 上面提到的union(i,j)只需要将数组下标为i,j的位置的数字记录下来为a,b,然后在数组中寻找,如果有某一个下标的位置上的数字为b,就将该下标位置的数字更改为a

查询内存溢出

人走茶凉 提交于 2020-02-26 21:33:30
首先我们来看一个带排序的查询,点击工具栏的 显示包含实际的执行计划。 1 SELECT * FROM AdventureWorks2008R2.Person.Person WHERE FirstName LIKE 'w%' ORDER BY 1 从执行计划里可以看出,SELECT运算符包含了 内存授予(Memory Grant) 信息(一般情况下不会出现,这里是因为我们的语句包含排序操作)。内存授予是KB为单位,是当执行计划中的一些运算符(像Sort/Hash等运算符)的执行,需要使用内存来完成——因此也被称为 查询内存(Query Memory) 。 在查询正式执行前,查询内存必须被SQL Server授予才可以。对于提供的查询,查询优化器根据查询对象的对应统计信息来决定需要多少查询内存。现在的问题就是,当统计信息过期了,SQL Server就会低估要处理的行数。在这个情况下,SQL Server对于提供的查询还是会请求更少的查询内存。但当查询真正开始后,SQL Server就不能改变授予的内存大小,也不能请求更多的内存。查询必须在授予的查询内存里完成操作。在这个情况下,SQL Server需要把Sort/Hash运算符涌进TempDb,这就意味我们原先在内存里快速操作变成物理磁盘上慢速操作。SQL Server Profiler可以通过 Sort Warnings 和 Hash