sum

拉牛叉欧巴诶

旧街凉风 提交于 2020-02-04 22:16:59
题意: 给定一组数据、乘法符号的个数和加法符号的个数,把这些加法和乘法符号添加各个数之间,求构成得到的最大的数 思路:这题需要使用动态规划来实现。sum是保存的是前i个数的和,dp[i][j]保存的是i个数中j个*的总和。首先来推一下转移方程 dp[i][0]表示的是前i个数有0个*号得到的值,即前i个数的和,也就是sum[i], dp[2][1] = dp[1][0]*num[2]; dp[3][1] = max(dp[1][0]*(sum[3]-sum[1]),dp[2][0]*(sum[3]-sum[1])); dp[4][1] = max(dp[1][0]*(sum[4]-sum[1]),dp[2][0],*(sum[4]-sum[2]),dp[3][0]*(sum[4]-sum[3])); 可以得到: dp[i][j] = max(dp[i][j],dp[v][j-1]*(sum[i]-sum[v])), 对此式的理解:i个数中j个*的最大值等于:当前值与在v中插入j-1个*的较大值。v依次从1递归到N-1, 代码: #include <iostream> #include<algorithm> using namespace std; int sum[16];//sum保存的是前i个数的和 long long dp[16][16];//保存的是i个数中有j个*的和

Go 函数与闭包

穿精又带淫゛_ 提交于 2020-02-04 12:43:44
函数 1.函数与闭包 func adder() func (value int){ sum := 0 return func(value int) int{ sum += value return sum } } func main() { adder := adder() for i := 0; i < 10; i++ { fmt.Println(adder(i)) } } 函数式编程 VS 函数指针 函数是一等公民:参数,变量,返回值都可以是函数 高阶函数 函数 -> 闭包 2.“正统”函数式编程 不可变性:不能有状态,只有常量和函数 函数只能有一个参数 type iAdder func(int) (int, iAdder) func adder(base int) iAdder { return func(value int) (int, iAdder){ return base+value, adder(base+value) } } func main(){ a := adder(0) for i := 0; i < 10; i++ { fmt.Println(a(i)) } } 3.其他语言的闭包 python的闭包 def adder(): sum = 0 def f(value): nonlocal sum sum += value return sum

75.ORM聚合函数详解:Sum

依然范特西╮ 提交于 2020-02-04 12:37:33
Sum:某个字段的总和。 1. 求图书的销售总额,示例代码如下: from django . http import HttpResponse from django . db import connections from . models import BookOrder , Book from django . db . models import Sum def index ( request ) : # 1.求图书的销售总额 sum = BookOrder . objects . aggregate ( sum = Sum ( 'price' ) ) print ( sum ) # {'sum': 622.0} print ( connection . queries ) # [{'sql': 'SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED', 'time': '0.000'}, # {'sql': 'SELECT SUM(`book_order`.`price`) AS `sum` FROM `book_order`', 'time': '0.000'}] return HttpResponse ( "success !" ) 其中,models.py文件中的模型定义为: from django . db

Linux Bash语法总结

喜欢而已 提交于 2020-02-04 12:05:46
在学习Linux的过程中,无可避免的会碰到一个既让人喜欢、又令人十分头疼的神奇的东西——bash编程,也就是shell脚本。那么什么是shell脚本呢?shell是一个命令语言解释器,而shell脚本则是Linux命令的集合,按照预设的顺序依次解释执行,来完成特定的、较复杂的系统管理任务,类似于windows中的批处理文件。本篇博文主要介绍bash编程的基础语法讲解。 一、bash编程之变量 1)bash变量类别 本地变量:只对当前shelll进程有效的变量,对其他shell进程无效,包含当前shell进程的子进程。 2)变量赋值: 即向变量的存储空间保存数据,如下 [root@localhost ~]# VAR_NAME=VALUE 3)变量的引用 格式为:${VAR_NAME} " ":弱引用,里面的变量会被替换; ' ':强引用,里面的所有字符都是字面量,直接输出,所见即所得; 4)环境变量 对当前shell进程及其子shell有效,对其他的shell进程无效! 定义:VAR_NAME=VALUE 导出:export VAR_NAME 撤销变量:unset VAR_NAME 只读变量:readonly VAR_NAME 5)局部变量 在shell脚本中定义,只可以在shell脚本中使用! 6)位置变量 $1,$2...,${10} 7)特殊变量 shell对一些参数做特殊处理

Parallel World 3 – Parallel Loop (2)

a 夏天 提交于 2020-02-04 06:33:14
I. Parallel.For Parallel.For共有12个重载的方法,这里不每个都讲,只说一个最基本的,其他的大家可以自己尝试。 第一个参数, fromInclusive它可以是Int32型的也可以是Int64型的,注意它是inclusive的,也就是说它在循环体中会被用到,在顺序循环Refactor到并行循环时要注意这一点。 第二个参数, toExclusive它可以是Int32型的也可以是Int64型的,注意它是exclusive的,也就是说它在循环体中不会被用到,在顺序循环Refactor到并行循环时要注意这一点。 它们的区别就类似于下述代码中的0和100这两个值: 第三个参数就是一个Action,它可以是Action<Int32>也可以是Action<Int64> 对开篇中的代码使用Parallel.For后,可以得到下面代码: 1: private static void ParallelQuadraticSum() 2: { 3: double sum = 0; 4: var sw = Stopwatch.StartNew(); 5: //for (int i = 0; i < NUM_MAX; i++) 6: //{ 7: // sum = sum + (2 * i + 1) * (i + 1) * i / 6; 8: //} 9: 10: Parallel

蓝桥杯训练 日期训练

对着背影说爱祢 提交于 2020-02-04 03:07:19
这道题做起来还是有些麻烦的,做了一个小时多点,码力不行呀。。。 思路: 首先输入a的年月日,b存储2011,11,11,交换两个日期变量,让日期a 存储较小的日期,日期b存储较大的。 我们需要计算出两个日期之间相差多少天,我想的是计算 a日期所在年过去了多少天sum1,再计算b日期所在年还有多天没过sum2,最后用a的年份到b的年份的总天数-(sum1+sum2),得到两个日期差了多少天。 最后还得分类一下两个日期是否交换过,有无交换过处理不同。。注释有。。 代码 #include <iostream> #include <malloc.h> #include <cstdio> #include <algorithm> #include <queue> #include <cstring> using namespace std; typedef long long LL; const int maxn = 1000 + 10; const int inf = 0x3f3f3f3f; int c[13] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; struct Data { int year, month, day; }; bool check(int n) { if ((n % 100 != 0 && n % 4

How to find what values of a list sum to a specified value

家住魔仙堡 提交于 2020-02-03 02:25:19
问题 I am programming a knapsack encryption algorithm. I am new to Python programming. I have a list and an integer value I have determined. I want to find what elements in my list will sum up to my integer value. I can get it running for two elements or less but I can not run it for more than two elements. Assume: privkey = [2,3,6,13,27,52] cipher = 9 My current function can run the scenario above: searchList = [] for i, number in enumerate(privkey[:-1]): complementary = cipher - number if

杭电 HDOJ 2015 偶数求和

天大地大妈咪最大 提交于 2020-02-03 01:23:56
杭电 HDOJ 2015 偶数求和 Problem Description 有一个长度为n(n<=100)的数列,该数列定义为从2开始的递增有序偶数,现在要求你按照顺序每m个数求出一个平均值,如果最后不足m个,则以实际数量求平均值。编程输出该平均值序列。 Input 输入数据有多组,每组占一行,包含两个正整数n和m,n和m的含义如上所述。 Output 对于每组输入数据,输出一个平均值序列,每组输出占一行。 结题思想 用一个for循环来控制当前数列的个数,在for中使用一个变量sum来记录当前的累加结果,再使用一个“标记”功能的变量j来判断当前sum的值是否是m个数列项相加的结果,如果是则输出这m个值的平均数,否则继续循环。当结束循环后判断一下m能否整除n,不能则表示有题中“最后不足m个…”的情况,就把当前的sum值除以n除以m的余数来输出即可! 本人的C++解决方案 # include <iostream> using namespace std ; int main ( ) { int m , n , i , j , sum , temp ; while ( cin >> n >> m ) { // 初始化“累加和”的值和数列项 sum = 0 ; temp = 2 ; for ( i = 0 , j = 0 ; i < n ; i ++ ) { sum + = temp ;

算法与数据结构之稀疏数组

半世苍凉 提交于 2020-02-03 00:48:34
欢迎查看我的博客: https://Mr00wang.github.io 学习笔记 算法与数据结构之稀疏数组 稀疏数组 一、介绍 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组,也可以理解为压缩数组。 稀疏数组的处理方法: 记录数组一共有几行几列,有多少个不同的值。 把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模。 二、实例 使用稀疏数组,来保留类似前面的二维数组(棋盘、地图等等) 把稀疏数组存盘,并且可以从新恢复原来的二维数组数 整体思路分析: 首先需要将二维数组转换为稀疏数组,然后再将稀疏数组写入到磁盘文件中 通过磁盘文件读取稀疏数组,然后再转换为原来数组 二维数组转稀疏数组的思路: 遍历原始的二维数组,得到有效数据的个数sum 根据sum就可以创建稀疏数组 spareArray = int [sum+1] [3] 将二维数组的有效数据存入到稀疏数组 稀疏数组转原始数组的思路: 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二位数组,比如上面的array = int [11] [11] 在读取稀疏数组后几行的数据,并赋给原始的二维数组即可 三、代码实现 public class SparseArray { public static void main ( String [ ] args ) { /

实验一 Java开发环境的熟悉

自作多情 提交于 2020-02-02 06:33:59
实验一 Java开发环境的熟悉 实验内容及步骤 1、使用JDK编译、运行简单的Java程序 在文件夹中建立有自己学号的文件。 敲入以下代码(附带个人学号信息)。 1 package FRH; 2 import java.util.Scanner; 3 public class Hello{ 4 public static void main(String[] args){ 5 System.out.println("Input your first name, please:"); 6 Scanner s = new Scanner(System.in); 7 String name = s.next(); 8 System.out.println("Hello " + name + " !"); 9 } 10 } 用javac编译(一定要加上-d参数)。 项目完成截图: 2、IDEA下Java程序开发、调试 创建HelloJDB.java文件,敲入以下代码 package exp1; public class HelloJDB { public static void main(String[] args) { int i = 5; int j = 6; int sum = add(i, j); System.out.println(sum); sum = 0; for(i=0;