sum

Lazy Tag 查询Sum && 区间更新

扶醉桌前 提交于 2020-01-21 14:54:19
1.Lazy Tag 查询Sum void pushdown(int sn) { if (node[sn].add != 0) { node[sn * 2].add += node[sn].add; node[sn * 2 + 1].add += node[sn].add; node[sn * 2].sum += node[sn].add * (node[sn * 2].r - node[sn * 2].l + 1); node[sn * 2 + 1].sum += node[sn].add * (node[sn * 2 + 1].r - node[sn * 2 + 1].l + 1); node[sn].add = 0; } } //查询sum ll query(int sn, int l, int r) { if (node[sn].l == l && node[sn].r == r) { return node[sn].sum; } pushdown(sn); int mid = node[sn].mid(); if (r <= mid) return query(sn * 2, l, r); else if (l > mid) return query(sn * 2 + 1, l, r); else { return query(sn * 2, l, mid) +

Understanding SUM(NULL) in MySQL

好久不见. 提交于 2020-01-21 04:03:52
问题 Usually when NULL is involved in any equation then the whole result resolves into NULL (e.g. SELECT 2 + NULL + 5 returns NULL ) Same holds for the following case: SELECT SUM(NULL) returns NULL . Proposition #1 What happens when SUM is used to aggregate a column and the column can contain NULL values too ? Based on the proposition #1 why the output doesn't result in NULL . CREATE TABLE t (age INT NULL); INSERT INTO t (age) VALUES (15),(20), (NULL), (30), (35); SELECT SUM(age) FROM t; Output:

字符串转换整数 (atoi)

南笙酒味 提交于 2020-01-21 03:09:48
题目: 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 思路: 这道题,就从左往右开始遍历。寻找数据的起始值。情况如下: 开始遇到空格则跳过。 非空格情况 1)符号’-‘或者’+'则记录为正还是负,用flag标记,然后开始处理数据转换,将当前i++之后开始处理数据。 2)符号不是数字则返回0.是数字则开始记录当前i,开始处理数字。 寻找到起始值之后开始向右遍历转换数字。数字获取可以通过sum=sum*10+str.charAt(i)-‘0’,将sum定义为long型,只要sum!=(int)sum说明已经超过int最大值,则通过判断flag返回int最大、最小值。 class Solution { public int

寒假Day7:最短路

╄→гoц情女王★ 提交于 2020-01-20 23:47:08
HDU2112-HDU Today-dijkstra 题面: 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强。这时候,XHD夫妇也退居了二线,并在风景秀美的诸暨市浬浦镇陶姚村买了个房子,开始安度晚年了。 这样住了一段时间,徐总对当地的交通还是不太了解。有时很郁闷,想去一个地方又不知道应该乘什么公交车,在什么地方转车,在什么地方下车(其实徐总自己有车,却一定要与民同乐,这就是徐总的性格)。 徐总经常会问蹩脚的英文问路:“Can you help me?”。看着他那迷茫而又无助的眼神,热心的你能帮帮他吗? 请帮助他用最短的时间到达目的地(假设每一路公交车都只在起点站和终点站停,而且随时都会开)。 Input 输入数据有多组,每组的第一行是公交车的总数N(0<=N<=10000); 第二行有徐总的所在地start,他的目的地end; 接着有n行,每行有站名s,站名e,以及从s到e的时间整数t(0<t<100)(每个地名是一个长度不超过30的字符串)。 note:一组数据中地名数不会超过150个。 如果N==-1,表示输入结束。 Output 如果徐总能到达目的地,输出最短的时间;否则,输出“-1”。 View Code 样例: Sample Input 6 xiasha westlake

前端学习(455):return

蹲街弑〆低调 提交于 2020-01-20 13:38:27
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <script> // return 可以返回一个数据给函数运行的外面 function sum(a,b){ return a+b; } console.log(sum(10,20)); function fn1(a,b){ var sum=a+b; console.log("sum"+sum); } console.log(fn1(3,5)); </script> </body> </html> 运行结果 来源: CSDN 作者: 你知道歌谣吗? 链接: https://blog.csdn.net/weixin_43392489/article/details/104049465

PAT 实验5-7 使用函数求1到10的阶乘和

拜拜、爱过 提交于 2020-01-20 00:26:02
本题要求实现一个计算非负整数阶乘的简单函数,使得可以利用该函数,计算1!+2!+⋯+10!的值。 函数接口定义: double fact( int n ); 其中n是用户传入的参数,其值不超过10。如果n是非负整数,则该函数必须返回n的阶乘。 代码如下 #include <stdio.h> double fact( int n ); int main(void) { int i; double sum; sum = 0; for(i = 1; i <= 10; i++) sum = sum + fact(i); printf("1!+2!+...+10! = %f\n", sum); return 0; } double fact( int n ) { int i; long result = 1; for(i = 1 ; i<=n ; i++) { result *= i; } return result ; } 来源: CSDN 作者: Yaqsist 链接: https://blog.csdn.net/naturly/article/details/104044554

『网络流算法及其运用』

雨燕双飞 提交于 2020-01-19 23:44:36
本文将重点从运用角度讲解网络流,不会过多阐述网络流基本理论,只讲必要的理论内容,更详细的理论内容可以参考算法导论。 网络流的定义 一个流网络 \(G=(V,E)\) 为一张满足以下条件的 有向图 : 每一条边有一个非负容量,即对于任意 \(E\) 中的 \((u,v)\) , 有 \(c(u,v)≥0\) 。 如果 \(G\) 中存在边 \((u,v)\) ,那么不存在 \((v,u)\) 。我们将图中不存在的边的容量定为 \(0\) 。 图中含有两个特殊节点:源 \(s\) 与汇 \(t\) 。 一个流 \(f\) 是定义在节点二元组 \((u\in V,v\in V)\) 上的 实数函数 ,满足以下两个个性质: 容量限制 :对于任意 \((u,v)\) ,满足 \(0\leq f(u,v)\leq c(u,v)\) 。 流量守恒 :对于任何非源汇的中间节点 \(u\) ,有 \(\sum_{v\in V}f(v,u)=\sum_{v\in V}f(u,v)\) 一个流 \(f\) 的 流量 \(|f|\) 定义为: \(|f|=\sum_{v\in V}f(s,v)-\sum_{v\in V}f(v,s)\) 。 最大流问题 定义 由于图 \(G\) 中不存在反向边,所以在我们一般只关注流量定义式的前半部分,即: \(|f|=\sum_{v\in V}f(s,v)\) 。

7-7 N进制高精度加法 (20分)

萝らか妹 提交于 2020-01-19 23:12:27
到底应该怎样理解进制呢?首先得有“一个”的数量概念,然后就是这样的: 把用来表示数量的符号依次排列,例如: q w e r 然后定义最前面的符号为“零”,即“没有”,后面的符号表示的数量依次比前一个符号多“一个” 进制就这样产生了: 例如当我们数数,依次数到 q w e r ,再往后数一个,符号不够用了,那么就写成 wq 并且,我们把这种进制命名为“wq”进制。 感觉怪异吗? 那么请换成我们熟悉的所谓“10”进制看看: 我们的用于表示数量的符号依次是: 0 1 2 3 4 5 6 7 8 9 , 当数到9,再往后数“一个”时,就数到了 10 看这幅漫画(来源于网络),看看能不能理解“进制”的概念? 现在,给定表示数量的符号(这些符号就形成了某种进制),以及该种进制下的两个不超过100位的正整数,请计算两数之和。 输入格式: 第一行给定表示数量的符号,每个符号为一个字符、各不相同且中间没有空格,最多有30个符号且符号的可能范围是:数字 0 - 9 、大小写字母、 ! 、 @ 、 # 、 $ 、 % 、 ^ 、 & 、 * 、 ( 、 ) 接下来两行每行给出一个该进制下的不超过100位的正整数 输出格式: 在一行中输出该进制下的两数之和。 输入样例1: 0123456789 123 12 输出样例1: 135 输入样例2: abcd bcd bc 输出样例2: cab 1

【题解】Jury Compromise(链表+DP)

守給你的承諾、 提交于 2020-01-19 22:19:15
【题解】Jury Compromise(链表+DP) 传送门 题目大意 给你 \(n\le 200\) 个元素,一个元素有两个特征值, \(c_i\) 和 \(d_i\) , \(c,d \in [0,20]\) ,现在请你选出 \(m\le 20\) 个元素使得 \(\sum c+\sum d\) 最大,使得$|\sum c - \sum d|最小,输出\sum c \(和\) \sum d$和一组合法方案。 分析 是DP无误了。 我们可以先不考虑绝对值,平移一下值域,假如说我们知道 \(\sum c +- \sum d\) 就可以通过解方程解出来 \(\sum c\) 和 \(\sum d\) 了,考虑设置状态: 要考虑 \(m\) 的限制,所以要把已经选择了多少元素记录在状态里面。 要考虑 \(|\sum c - \sum d|\) ,有绝对值不好考虑,有两个转移的方向,所以我们考虑直接把绝对值里面的值记录到状态里,也不大, \(8000\) 而已。 这个时候,只要考虑 \(\sum c + \sum d 最大,直接DP\) \(dp(i,j)\) 表示选取了 \(i\) 个数之后,绝对值里面的值是 \(j\) 的最大的 \(c_i+d_i\) 为多少,转移: \[ t\text{第t个元素}:dp(i,j)=max\{dp(i-1,k-(d[t]-c[t]))\} \]

小小白(上)

 ̄綄美尐妖づ 提交于 2020-01-19 19:05:39
今天,小白参加了小白月赛,然后发现,自己连做小白的资格都没有(嘤嘤嘤),从此自封为小小白 真是得自我反省(10-1)道题啊!!!!! 下面请看那些“刀”是如何将小小白的心割成碎片的~~~~ Audio (某位大佬的代码,膜拜膜拜) # include <bits/stdc++.h> using namespace std ; int main ( ) { int x1 , y1 , x2 , y2 , x3 , y3 ; scanf ( "%d %d" , & x1 , & y1 ) ; //输入已知的三个点 scanf ( "%d %d" , & x2 , & y2 ) ; scanf ( "%d %d" , & x3 , & y3 ) ; double k2 = - 1.0 * ( x2 - x1 ) / ( y2 - y1 ) ; //找出两条中垂线的斜率 double k3 = - 1.0 * ( x3 - x1 ) / ( y3 - y1 ) ; double ctx2 = ( x1 + x2 ) * 1.0 / 2 , cty2 = ( y1 + y2 ) * 1.0 / 2 ; //求出中点 double ctx3 = ( x1 + x3 ) * 1.0 / 2 , cty3 = ( y1 + y3 ) * 1.0 / 2 ; double x = ( cty3 -