sum

洛谷 P4513 小白逛公园

删除回忆录丶 提交于 2020-02-08 22:06:19
题目背景 小新经常陪小白去公园玩,也就是所谓的遛狗啦… 题目描述 在小新家附近有一条“公园路”,路的一边从南到北依次排着 n n个公园,小白早就看花了眼,自己也不清楚该去哪些公园玩了。 一开始,小白就根据公园的风景给每个公园打了分-.-。小新为了省事,每次遛狗的时候都会事先规定一个范围,小白只可以选择第 a a个和第 b b个公园之间(包括 a a、 b b两个公园)选择连续的一些公园玩。小白当然希望选出的公园的分数总和尽量高咯。同时,由于一些公园的景观会有所改变,所以,小白的打分也可能会有一些变化。 那么,就请你来帮小白选择公园吧。 输入格式 第一行,两个整数 N N和 M M,分别表示表示公园的数量和操作(遛狗或者改变打分)总数。 接下来 N N行,每行一个整数,依次给出小白 开始时对公园的打分。 接下来 M M行,每行三个整数。第一个整数 K K, 1 1或 2 2。 K=1 K = 1表示,小新要带小白出去玩,接下来的两个整数 a a和 b b给出了选择公园的范围( 1≤a,b≤N 1 ≤ a , b ≤ N)。测试数据可能会出现 a>b a > b的情况,需要进行交换; K=2 K = 2表示,小白改变了对某个公园的打分,接下来的两个整数 p p和 s s,表示小白对第 p p个公园的打分变成了 s s( 1≤p≤N 1 ≤ p ≤ N)。 其中, 1≤N≤500 000

Python lambda表达式简单用法

五迷三道 提交于 2020-02-08 21:33:21
匿名函数 一.创建 python 使用 lambda 来创建匿名函数。 所谓匿名,意即不再使用 def 语句这样标准的形式定义一个函数。 lambda 只是一个表达式,函数体比 def 简单很多。 lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。 lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。 虽然lambda函数看起来只能写一行,却不等同于C或C++的内联函数,后者的目的是调用小函数时不占用栈内存从而增加运行效率。 语法 lambda 函数的语法只包含一个语句,如下: lambda [arg1 [,arg2,.....argn]]:expression 如下实例: #!/usr/bin/python3 # 可写函数说明 sum = lambda arg1, arg2: arg1 + arg2 # 调用sum函数 print ("相加后的值为 : ", sum( 10, 20 )) print ("相加后的值为 : ", sum( 20, 20 )) # 执行结果 相加后的值为 : 30 相加后的值为 : 40 条件运算时,对于简单的 if else 语句,可以使用三元运算来表示,即: # 普通条件语句 if 1 == 1: name = 'wupeiqi' else: name =

淘宝用户行为分析

房东的猫 提交于 2020-02-08 18:14:14
前言 现在越来越多的线下转型到了线上经营,线下体验店线上购物将成为日后消费的大趋势。分析用户行为,走好转型之路,掌握先机快人一步。 文章目录 前言 一、背景 Ⅰ 数据来源 Ⅱ 数据背景 Ⅲ 分析目的 二、探索性分析 Ⅰ 导入数据 Ⅱ 数据处理 1、缺失值处理 2、异常值处理 3、重复值处理 三、数据分析 Ⅰ 整体消费情况 总访问量(PV) 日均访问量 用户总数(UV) 购买用户数量及占总访问比 用户购物行为 复购率 Ⅱ 用户行为转化漏斗 Ⅲ 用户画像 购买率高的用户特征画像 购买率低的用户特征画像 Ⅳ 用户的行为习惯 一天用户活跃分布 一周中用户活跃时段分布 四、结论 一、背景 Ⅰ 数据来源 数据来源于阿里池公共数据集,搜索userbehavior就可出来。 Ⅱ 数据背景 本次数据分析从数据集中选取包含了2014年11月18日至2014年12月18日之间,10000名随机用户共12256906条行为数据,数据集的每一行表示一条用户行为,共6列。 列字段包含以下: user_id:用户身份 item_id:商品ID behavior_type:用户行为类型(包含点击、收藏、加购物车、购买四种行为,分别用数字1、2、3、4表示) user_geohash:地理位置(有空值) item_category:品类ID(商品所属的品类) time:用户行为发生的时间 PS

FM 模型推导

馋奶兔 提交于 2020-02-08 17:25:27
FM 模型推导 论文地址: https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf 在使用 LR 的时候,要进行大量的特征工程,如对离散值进行独热编码,在进行大量的独热编码之后,特征矩阵会变得非常稀疏。在特征创建的时候,两两特征进行组合,由于特征向量过于稀疏,无法学习到很多组合特征的权重,FM 模型在 LR 模型的基础上,多了特征两两组合的部分,需要比 LR 多学习对应参数的权重。 只讨论二阶特征组合的情况 LR 多了两两特征组合的形式如下 , n n n 是特征向量的维度: y ^ = ω 0 + ∑ i = 1 n ω i x i + ∑ i = 1 n ∑ j = i + 1 n ω i j x i x j \hat{y} = \omega_0 + \sum^n_{i=1}\omega_ix_i +\sum^n_{i=1}\sum^n_{j=i+1} \omega_{ij}x_ix_j y ^ ​ = ω 0 ​ + i = 1 ∑ n ​ ω i ​ x i ​ + i = 1 ∑ n ​ j = i + 1 ∑ n ​ ω i j ​ x i ​ x j ​ 假设每个特征有它对应的隐因子向量,那么 ω i j \omega_{ij} ω i j ​ 就可以用两个特征对应的 k k k 纬隐因子向量 v i v

退役后做题记录

老子叫甜甜 提交于 2020-02-08 11:08:23
退役后做题记录 AGC030E Less than 3 神仙题Orz 首先,如果你修改了一个位置 \(i\) ,那么 \(i-1\) , \(i+1\) 一定不同,否则一定会出现连续三个一样的 将0和1之间插入一条红线,1和0之间插入一条蓝线。那么红蓝线一定交替出现 修改相当于移动一条线,移动方案相当于一个匹配(位置1以前、位置n以后可以看做有无数条红蓝交替的线) 最妙的是,“不能出现连续三个一样的”限制没有了(因为一定能找到方案) 枚举匹配的方案即可 https://atcoder.jp/contests/agc030/submissions/6933519 AGC029B Garbage Collector 首先,取垃圾的代价固定,为 \(nX\) ,可以无视。 设取了 \(K\) 次垃圾,放垃圾代价就会是 \(KX\) 。 考虑一次取垃圾的过程,取了 \(x_1<x_2<\ldots<x_s\) 处的垃圾。 显然一定会先走到 \(x_s\) ,然后返回途中收辣鸡。 推一下,代价会是 \(5x_s+5x_{s-1}+7x_{s-2}+9x_{s-3}+\ldots+(2s+1)x_1\) 。 收了 \(K\) 次辣鸡,会有 \(2K\) 个系数 \(5\) , \(K\) 个系数 \(7,9,11,\ldots\) ,可以任意乘给 \(x\) 显然最大的 \(2K\) 个拿 \

C语言循环知识

拜拜、爱过 提交于 2020-02-08 10:22:30
循环预览 循环:入口条件循环(while\for):就是判断条件在循环入口处。先判断,后执行。 退出条件循环(do while)就是判断条件在循环尾处。其首先会执行一次循环体,然后判断。 使用风格:在循环涉及到初期化和更新变量时,使用for恰当。其他条件下while较好。就如while(scanf("%d",&a)==1)这样的,就会使用while比较自然;而涉及到索引计数的循环,如for(a=1;a<=12;a++),使用for比较自然。 while循环 例子 例子 : //计算多个鞋码对应的英寸尺长 #include<stdio.h> #define ADJUST 7.64 #define SCALE 0.325 int main(void) { double shoe,foot; printf(“Shoe size(men’s) foot length\n”); shoe = 3.0; while(shoe<18.5) //while循环 { //代码块 foot = SCALE*shoe+ADJUST; printf("%10.1f %15.2f inches\n",shoe,foot); shoe = shoe +1; } printf(“If the shoe fits,wear it.\n”); getchar(); return 0; } //对用户输入的整数求和

hadoop hive窗口函数求和

僤鯓⒐⒋嵵緔 提交于 2020-02-07 23:30:40
聚合函数: 例如sum()、avg()、max()等,这类函数 可以将多行数据按照规则聚集为一行 ,一般来讲聚集后的行数是要少于聚集前的行数的。 窗口函数: 既能显示聚集前的数据,又能显示聚集后的数据 。窗口函数又叫OLAP函数/分析函数,窗口函数 兼具分组和排序功能 。 ​ 窗口函数最重要的关键字是 partition by 和 order by。 核心语法:over (partition by xxx order by xxx) 案例【求和】 原始数据: --只使用聚合函数sum来对数据进行操作 select sum(pv) from itcast_t1; 结果如下: --sum函数搭配窗口函数的使用【根据cookieid分组,根据createtime排序】 select cookieid,createtime,pv, sum(pv) over(partition by cookieid order by createtime) as pv1 from itcast_t1; 结果: --此时sum聚合:默认是第一行到当前行聚合 --还可以通过window子句 来控制聚合的行的范围:rows between含义,也叫做window子句 --除了sum之外 avg max min都可以配合窗口函数使用 来源: CSDN 作者: ponslee 链接: https://blog

解题思路-leetcode第八题:字符串转换整数

安稳与你 提交于 2020-02-07 23:29:42
解题思路-leetcode第八题:字符串转换整数 请你来实现一个 atoi 函数,使其能将字符串转换成整数。 首先,该函数会根据需要丢弃无用的开头空格字符,直到寻找到第一个非空格的字符为止。 当我们寻找到的第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字组合起来,作为该整数的正负号;假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成整数。 该字符串除了有效的整数部分之后也可能会存在多余的字符,这些字符可以被忽略,它们对于函数不应该造成影响。 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换。 在任何情况下,若函数不能进行有效的转换时,请返回 0。 说明: 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 − 1) 或 INT_MIN (−231) 。 示例 1: 输入: “42” 输出: 42 示例 2: 输入: " -42" 输出: -42 解释: 第一个非空白字符为 ‘-’, 它是一个负号。 我们尽可能将负号与后面所有连续出现的数字组合起来,最后得到 -42 。 示例 3: 输入: “4193 with words” 输出: 4193 解释: 转换截止于数字 ‘3’

省选模拟20 题解

☆樱花仙子☆ 提交于 2020-02-07 22:07:30
A. Ring 似乎算是一道半原题,原题的做法是维护环上的最小编号边,然后替换。 本题的是否存在环更好维护。 容易发现对于一个左端点,右端点的答案是单调的。 存在一个分界点,满足分界点左侧没有环,分界点右侧有环。 因为单调,所以可以在左端点移动的同时,右端点用单调指针维护分界点的位置。 方法是使用LCT的$link,cut,findroot$操作进行维护。 如果左端点对应的边连接的两个点已经在一个连通块,那么不断$cut$右端点对应的边即可。 B. Exchange 与$zkw$线段树的操作类似,将$n$补为$2^k$的形式,满足$2^k>n$,$2^{k-1}<=n$。 然后发现交换操作对应着线段树上一个节点的更改。 所以直接维护一棵区间修改、区间查询、标记下传、动态开点的线段树即可。 C. Match 首先将方差转化为$\frac{n*val-sum^2}{n^2}$的形式。 其中$val$表示该方案中每一项的平方的和,$sum$表示每一项的线性加和。 考虑通过总和/总方案来算得期望值。 设$f_n$表示$2n$个数,对应的总方案数,显然有$f_n=\prod_{i=1}^n(2*i-1)$。 这个可以通过$dp$转移方程$f_n=f_{n-1}*(2*n-1)$解释,也可以直接按照搜索的思想来。 设$w$表示总和中前一项的贡献。 有$w=f_{n-1}*n*\sum

夜空中的守望者的目光

拜拜、爱过 提交于 2020-02-07 11:38:31
我的博客 import random class Card: ranks=['A','2','3','4','5','6','7','8','9','10','J','Q','K'] suits=['梅花','方片','红桃','黑桃'] def __init__(self,rank,suit,face_up=True): self.rank=rank self.suit=suit self.is_face_up=face_up def __str__(self): if self.is_face_up: rep=self.suit+self.rank else: rep='没有这样的牌' return rep def pic_order(self): if self.rank=='A': FaceNum=1 elif self.rank=='J': FaceNum=11 elif self.rank=='Q': FaceNum=12 elif self.rank=='K': FaceNum=13 else : FaceNum=int(self.rank) if self.suit=='梅花': Suit=1 elif self.suit=='方片': Suit=2 elif self.suit=='红桃': Suit=3 else: Suit=4 return(Suit-1)