sum

leetcode 599. Minimum Index Sum of Two Lists

◇◆丶佛笑我妖孽 提交于 2020-03-12 05:44:05
目录 一、问题描述 二、代码实现 1、暴力法 2、使用HashMap https://leetcode.com/problems/minimum-index-sum-of-two-lists/ 从两个人喜欢的餐厅列表中找到共同喜欢并下标之和最小的餐厅(如果有多个则将它们都返回) 一、问题描述 测试用例: Example 1: Input: ["Shogun", "Tapioca Express", "Burger King", "KFC"] ["Piatti", "The Grill at Torrey Pines", "Hungry Hunter Steakhouse", "Shogun"] Output: ["Shogun"] Explanation: The only restaurant they both like is "Shogun". Example 2: Input: ["Shogun", "Tapioca Express", "Burger King", "KFC"] ["KFC", "Shogun", "Burger King"] Output: ["Shogun"] Explanation: The restaurant they both like and have the least index sum is "Shogun" with index

(PTA)6-2 使用函数求1到10的阶乘和 (10分)

风格不统一 提交于 2020-03-11 23:35:25
本题要求实现一个计算非负整数阶乘的简.单函数,使得可以利用该函数,计算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; } /* 你的代码将被嵌在这里 */ 输入样例: 本题没有输入。 输出样例: 1!+2!+…+10! = 4037913.000000 double fact ( int n ) { int i ; double p ; p = 1 ; for ( i = 1 ; i <= n ; i ++ ) { p = p * i ; } return p ; } 来源: CSDN 作者: Overdrive13 链接: https://blog.csdn.net/Overdrive13/article/details/104804960

使用python3编写程序,生成10个随机数,每个元素的值介于1到100之间,并计算所有元素的和、平均值。

匆匆过客 提交于 2020-03-11 21:35:32
代码如下: 1 import random 2 3 n = 0 4 sum = 0 5 while n < 10: 6 num = random.randint(1, 100) 7 sum = sum + num 8 n += 1 9 print(num, end=",") 10 print() 11 print("10个数的和为:%d" % sum) 12 print("10个数的平均值为:%.2f" % (sum / 10)) 运行结果: 来源: https://www.cnblogs.com/youliang-null/p/12463131.html

oracle的分析函数‘over’

亡梦爱人 提交于 2020-03-11 18:35:03
分析函数语法: 例 : sum(sal) over (partition by deptno order by ename) new_alias sum 就是函数名 (sal) 是分析函数的参数 , 每 个函数有 0~3 个参数 , 参数可以是表达式 , 例如 :sum(sal+comm) over 是一个 关键 字 , 用于 标识 分析函数 , 否 则查询 分析器 不能区 别 sum() 聚集函数和 sum() 分析函数 分析函数用于 计 算基于 组 的某 种 聚合 值 ,它和聚合函数的不同之 处 是: 对 于 每 个 组 返回多行,而聚合函数 对 于 每 个 组 只返回一行。 常用的分析函数如下所列 : row_number() over ( partition by ... order by ...) rank() over ( partition by ... order by ...) dense_rank() over ( partition by ... order by ...) count() over ( partition by ... order by ...) max() over ( partition by ... order by ...) min() over ( partition by ... order by ...) sum() over

F. SUM and REPLACE

跟風遠走 提交于 2020-03-11 14:48:36
F. SUM and REPLACE 题意 定义D数组为一个数的约数个数 ,接下来有两种操作 1操作对于区间[l,r],将al-ar用D(ai)替代。 2操作求区间和。 思路 此题有一个小技巧就是:1e6以内的数都可以在6次求约数个数操作内变为2和1 ,而且1e6以内的最大因字数。 而2的因子个数是2,1的因子个数是1,如果需要更新的位置 所存的数 <=2则就不需要更新了 。 代码实现 #include<bits/stdc++.h> using namespace std; typedef long long ll; const int maxn = 3e5+10; ll s[4*maxn];//存放因子个数 ll sum[4*maxn];//存放和 ll mx[4*maxn]; //维护区间最大值 ll node[maxn]; void pushup(int rt){ sum[rt] = sum[rt<<1]+sum[rt<<1|1]; mx[rt] = max(mx[rt<<1],mx[rt<<1|1]); } void build(int l,int r,int rt){ if(l==r){ sum[rt] = mx[rt] = node[l]; return ; } int m = (l+r)>>1; build(l,m,rt<<1); build(m+1,r,rt<<1

【CSP-S 2019】【洛谷P5665】划分

十年热恋 提交于 2020-03-11 06:41:54
前言 \(csp\) 时发现自己做过类似这道题的题目 : P4954 [USACO09Open] Tower of Hay 干草塔 然后回忆了差不多 \(15min\) 才想出来。。。 然后就敲了 \(88pts\) 的部分分。当时的内存是 \(950MB\) 左右,写一个高精就炸内存了。 题目 2048 年,第三十届 CSP 认证的考场上,作为选手的小明打开了第一题。这个题的样例有 \(n\) 组数据,数据从 \(1 \sim n\) 编号, \(i\) 号数据的规模为 \(a_i\) 。 小明对该题设计出了一个暴力程序,对于一组规模为 \(u\) 的数据,该程序的 运行时间 为 \(u^2\) 。然而这个程序运行完一组规模为 \(u\) 的数据之后,它将在任何一组规模 小于 \(u\) 的数据上运行错误。样例中的 \(a_i\) 不一定递增,但小明又想在不修改程序的情况下正确运行样例,于是小明决定使用一种非常原始的解决方案:将所有数据划分成若干个数据段,段内数据编号 连续 ,接着将同一段内的数据合并成新数据,其规模等于段内原数据的 规模之和 ,小明将让新数据的规模能够递增。 也就是说,小明需要找到一些分界点 \(1 \leq k_1 \lt k_2 \lt \cdots \lt k_p \lt n\) ,使得 \[ \sum_{i=1}^{k_1} a_i \leq \sum_

leetcode 682. Baseball Game

邮差的信 提交于 2020-03-10 10:27:46
思路就是用一个栈来存储分数,剩下的就是对栈的操作了。 class Solution { public int calPoints ( String [ ] ops ) { Stack < Integer > stack = new Stack < > ( ) ; int sum = 0 ; for ( int i = 0 ; i < ops . length ; i ++ ) { String tmp = ops [ i ] ; if ( tmp == "C" ) { int a = stack . pop ( ) ; sum -= a ; } else if ( tmp == "D" ) { int b = stack . peek ( ) * 2 ; stack . push ( b ) ; sum += b ; } else if ( tmp == "+" ) { int c = stack . pop ( ) ; int d = stack . pop ( ) ; int e = c + d ; sum += e ; stack . push ( d ) ; stack . push ( c ) ; stack . push ( e ) ; } else { int res = myInt ( tmp ) ; stack . push ( res ) ; sum +=

lua语言---浮点数转16进制

元气小坏坏 提交于 2020-03-10 09:37:06
--这个版本,经过验证 ,可把16进制,转浮点数,验证时间 2018-5-28 23:02 --[[ 0.0001 38D1B717 -0.0001 B8D1B717 178.125 43322000 20.59375 41A4C000 -1.275 BFA33332 0.125 3E000000 -0.65 BF266666 0.75 3F400000 0.5 3F000000 0.6 3F199999 0.7 3F333333 0.8 3F4CCCCC 0.9 3F666666 --]] --鍔熻兘锛氭妸4涓瓧鑺傜殑16杩涘埗锛岃浆鎹㈡垚锛屾诞鐐规暟锛屽苟鎵撳嵃鍑烘潵 function DatToFloat1(x) local temp local aa = 8388608 s = (x&0x80000000)>>31 e = (x&0x7F800000)>>23 temp = (x&0X7FFFFF)/aa --print(s, e, temp) local res = (1<<(e-127)) (1+temp) --local res = (1<<math.abs(e-127)) (1+temp) if s==1 then res = 0-res end return res end --璁$畻2 鐨?-n 娆℃柟 function pow(n) local temp

线段树合并

偶尔善良 提交于 2020-03-09 20:07:55
  线段树合并就是把两个维护相同区间的线段树合并到一块.   什么叫维护相同区间?就是每次操作的最大的那个区间是一样的,根节点维护的区间一样,根节点的左儿子维护的也一样,右儿子维护的也一样,左儿子的左儿子....   显然只需要建树的时候都建成一样的就好了.一般我们采用动态开点.   由于线段树合并的均摊复杂度是log的, 虽然我看不懂证明 可以开成权值线段树.   对于两个线段树该如何合并呢?我们递归的定义:   1.对于线段树a,b.如果只有a有当前区间或只有b有当前区间,那么把那个认定为新线段树的节点.   2.否则我们同时递归a的左儿子和b的左儿子,递归完后把刚认定的节点作为a的左儿子.   3.递归a的右儿子和b的右儿子,递归完后把刚认定的节点作为a的右儿子.   4.把a认定为新线段树的节点.   如果有两个满的线段树,每次复杂度是O(n)还多的.但是如果刚开始有n个线段树,每个线段树用动态开点维护一个数,那么合并n-1次后均摊复杂度是nlogn的.   校内oj并没有找到例题.我口述一个例题好了.   给你一棵有n个点的树,树上每个节点都有一种颜色 ci,求以每个点为根的子树出现最多的颜色的和.   这是一个最简单的线段树合并了.先对每个节点的每个颜色做一个权值线段树,从根dfs整颗树.dfs完儿子后,合并父亲和儿子的权值线段树,记录答案.没了.   口胡还是开心的

牛客_剑指offer题集——二叉树中和为某一值的路径(java实现)

删除回忆录丶 提交于 2020-03-09 13:10:06
题目链接: https://www.nowcoder.com/practice/b736e784e3e34731af99065031301bca?tpId=13&tqId=11177&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking 思路:边遍历边记录节点,如果节点和等于目标值,则在全局变量中加入路径 需要注意的点: 1. 因为arrayList传入方法后会产生永久性改变,所以要进行回溯,否则会将所有节点记录 2. 因为定义的一个对象就对应一个特定的对象,所以在存入全局变量时需要新建立对象,否则存入的只是指针,在后续的操作中存入的数据也会改变 实现源码: package niuke; import java.util.ArrayList; public class 二叉树中和为某一值的路径 { private ArrayList<ArrayList<Integer>> list = new ArrayList<>(); public ArrayList<ArrayList<Integer>> FindPath(TreeNode root, int target) { find_path_by_inOrder(new ArrayList<Integer>(),root,target,0);