Can you answer these queries? Time Limit:2000MS     Memory Limit:65768KB     64bit IO Format:%I64d & %I64u Submit Status Practice HDU 4027 Description A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use…
Can you answer these queries? Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65768/65768 K (Java/Others) Total Submission(s): 16260    Accepted Submission(s): 3809 Problem Description A lot of battleships of evil are arranged in a line befor…
https://cn.vjudge.net/problem/HDU-4027 题意 给一个有初始值的数组,存在两种操作,T=0时将[L,R]的值求平方根,T=1时查询[L,R]的和. 分析 显然不符合加法合并原理,只能考虑直接点更新,可这样就完蛋了..突破口在于sqrt,2^63-1只需要sqrt了6.7次就变为1了,而1再sqrt也无意义.所以在更新时,只要这段区间的和等于区间长度,说明都为1,那么就不需要继续更新下去了.查询时就是区间求和. #include <iostream> #inc…
题目链接 题意 : 给你N个数,进行M次操作,0操作是将区间内的每一个数变成自己的平方根(整数),1操作是求区间和. 思路 :单点更新,区间查询,就是要注意在更新的时候要优化,要不然会超时,因为所有的数开几次方之后都会变成1,所以到了1不用没完没了的更新. //HDU 4027 #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #define LL __int6…
<题目链接> 题目大意: 给定一段序列,现在对指定区间进行两种操作:一是对指定区间进行修改,对其中的每个数字都开根号(开根号后的数字仍然取整):二是对指定区间进行查询,查询这段区间所有数字的和. 解题分析: 本题虽然是区间修改,但是不需要用 lazy标记,因为要对指定区间的每个数进行开根号的处理,也就是说,每次 update ,都要延伸到该区间涉及到的叶子节点,进行开根,而不是在叶子节点上端的某个节点就将开根的指令存储下来.那么是不是说我们每次只能对 update 的每个区间所涉及到的每个节点…
给定一个长度为n的序列,m次操作. 每次操作 可以将一个区间内的所有数字变为它的根号. 可以查询一个区间内所有元素的和. 线段树的初级应用. 如果把一个区间内的元素都改为它的根号的话,是需要每个数字都进行修改的.这样就会超时. 一个优化就是区间修改的当区间时,若区间长度等于区间和,那这个区间里的所有元素都不用修改了. 而题目中区间里的元素之和最大是 2^63,时间完全够用. #include <iostream> #include <cstdlib> #include <cs…
题目 题意: 输入一个 :n  .(1<=n<<100000) 输入n个数    (num<2^63) 输入一个m :代表m个操作    (1<=m<<100000;) 接下来m行,每行三个数a,b,c,如果a==0,执行操作1:如果a==1,执行操作2. 操作1:对[b,c]区间上的每一个数进行开平方操作 操作2:对[b,c]区间求和,输出. 一直超时,这道题的关键在于: 2^63−1也就最多开8次平方根,,,而且开到1时再开平方根还是1. 所以再开到区间所有数…
这题主要考察观察能力. 2^63最多只需要开7次根号就会变成1,当数字变成1之后就不需要再对其进行操作. 对于含有大于1数字的区间,向下更新. 对于数字全为1的区间,直接返回. #include <cstdio> #include <cstring> #include <cstdlib> #include <algorithm> #include <cmath> #define LL long long int #define lson l, m…
SPOJ GSS1_Can you answer these queries I(线段树区间合并) 标签(空格分隔): 线段树区间合并 题目链接 GSS1 - Can you answer these queries I You are given a sequence A1, A[2], ..., A[N] . ( |A[i]| ≤ 15007 , 1 ≤ N ≤ 50000 ). A query is defined as follows: Query(x,y) = Max { a[i]+a…
描述 A lot of battleships of evil are arranged in a line before the battle. Our commander decides to use our secret weapon to eliminate the battleships. Each of the battleships can be marked a value of endurance. For every attack of our secret weapon,…