05 2018 档案
摘要:题意 : 给出一个数n(n<500,000), 再给出n个数的序列 a1、a2.....an每一个ai的范围是 0~999,999,999 要求出当通过相邻两项交换的方法进行升序排序时需要交换的次数 分析:其实经过一次模拟后,会发现奇妙的东西,这个排序都是按位置排的,最大要求到最大,最小要去到最小,
阅读全文
摘要:我对树状数组的认识可以参考视频1与视频2,每个人的理解不一样,建议去观看大牛的理解,视频1讲的不太深入,但还是推荐先去看视频1,再去看视频2. 单点修改,区间最大 #include<cstdio> #include<iostream> #include<cstring> #include<cmath
阅读全文
摘要:ST表与线段树相比,这是静态的,无法改动,但是他的查询速度比线段树要快,这是牺牲空间换时间的算法。 O(nlogn)预处理,O(1)查询。空间O(nlogn)。
阅读全文
摘要:http://poj.org/problem?id=3368 给出一个升序数组和 q 个查询。对每个查询,返回 a b 之间出现次数最多的那个元素的出现次数。 这一类区间查询的问题很容易想到用线段树来做。显然我们首先要线段树的节点中维护么i各区间的最大次数。但这样是不够的,如果一个查询区间跨越了两个
阅读全文
摘要:飞翔 题意 : 给定一个区间长度 n ,接下来给出 m 个子区间,要求最少选出多少个区间才能使得 1~n 这个区间被所选的所有子区间覆盖 分析: 首先是动态规划,dp[i]表示把最大值从1位置搞到第i个小装置结尾最少需要多少个小装置,这样的话,从小到大遍历所有装置,每次查询当前装置之前的装置区间和当
阅读全文
摘要:题意 : 在墙上贴海报, n(n<=10000)个人依次贴海报,给出每张海报所贴的范围li,ri(1<=li<=ri<=10000000)。求出最后还能看见多少张海报。 分析 : 很容易想到利用线段树来成段置换,最后统计总区间不同数的个数。但是这里有一个问题,就是区间可以很大,线段树开不了那么大的空
阅读全文
摘要:反素数 拿按上次你上次 从OSCN FSK从的viv红尘饿哦v你的的v你v 0 JCOD NVEN AODKVN ODV D DVDDV
阅读全文
摘要:约瑟夫问题的升级版,每次出去的是前一个出去的人位置+手上的数字(正往前,负往后)。第i个出去的人拿的糖是i的约数的个数。求拿糖最多的人和他的糖果数。 这里用到了反素数的知识,在这直接打表 题目 AC代码: #include<stdio.h> #include<string.h> #define ls
阅读全文
摘要:飞翔 问题是这样的:现在有n个人要买票,但是天黑可以随便插队。依次给出将要买票的n个人的数据信息。包含两项:pos,当前第i号人来了之后他肯定要插入到pos这个位置,如果当前pos无人,那最好了,直接把他插入即可。但如果pos这个位置有人了,从现实意义上讲,第i号人插入之后,相当于他 后面的人在原来
阅读全文
摘要:题目 题意: 有n * k块木板,每个木桶由k木板组成,每个木桶的容量定义为它最短的那块木板的长度。 任意两个木桶的容量v1,v2,满足|v1-v2| <= d。 问n个木桶容量的最大的和为多少,或者说明不可能做出这样的n个木桶。 思路: 一道纯粹的贪心题,可以确定最小的数MIN,那莫其他区间的最小
阅读全文
摘要:飞! 题解 首先,求逆序数对的思路: 1.得到整个数列后,从前往后扫,统计比a[i]小的,在a[i]后面的有多少个 这样做的话,应该是只有n2的暴力作法,没想到更好的方法 2.统计a[i]前面的,且比它大的数 这样做的话,就可以利用输入的时效性,每输入一个数,就把这个数的num[i]值加1, 然后统
阅读全文
摘要:题意:h*w的木板,放进一些1*L的物品,求每次放空间能容纳且最上边的位子思路:每次找到最大值的位子,然后减去L线段树功能:query:区间求最大值的位子(直接把update的操作在query里做了) #include<stdio.h> #include<algorithm> using names
阅读全文
摘要:线段树的认识,可以参考哔哔丽丽的视频。 (1)单点曽减,区间求和 飞翔 #include<stdio.h> #define lson l,m,rt<<1///左儿子 #define rson m+1,r,rt<<1|1///右儿子 const int maxn = 55555; int sum[ma
阅读全文
摘要:在做图有关的题目,在一些情况下邻接矩阵耗费空间较大、动态开辟的邻接表又耗时耗内存,这时候你可能需要一个静态邻接表! 静态邻接表在各种图的算法当中也是有一席之地的,比如利用堆优化的Dij算法求最短路、SPFA等等 #include<bits/stdc++.h> using namespace std;
阅读全文
摘要:问题: 在w*h的格子上画了n条垂直或者水平的宽度为1的直线。求出这些直线将格子划分为了多少个区域? 限制条件: 1<= w,h <= 1000000 1<= n <= 500 输入:首先输入w,h,n;然后输入对应的x1,x2,y1,y2.输出区域的个数。 输入: 10 10 5 x1:1 1 4
阅读全文
摘要:何为离散化?离散化,就是把无限空间中有限的个体映射到有限的空间中去,以此提高算法的时空效率。 有些数据本身很大, 自身无法作为数组的下标保存对应的属性。 如果这时只是需要这堆数据的相对属性, 那么可以对其进行离散化处理! 离散化:当数据只与它们之间的相对大小有关,而与具体是多少无关时,可以进行离散化
阅读全文
摘要:来呀 题意:给n杯盐水,每一杯水有a单位盐,b单位水。给你一个x和y,问有多少种方法能配成x比y的盐水。 因为n只有35,没法枚举全部情况,如果n只有一般大,那么我们可以枚举所有情况。 我们可以把n分为两部分,枚举一部分的所有情况,然后找是否能和另一部分构成解。 对于(a1,b1)和(a2,b2)这
阅读全文
摘要:题目: 2520是最小的能被1-10中每个数字整除的正整数。 最小的能被1-20中每个数整除的正整数是多少? 分析: 解题方法 题目的实质是求几个数的最小公倍数。 任何一个正整数都可以表示成几个素数的次方的乘积 假设PnPn表示第n个素数,那么任意正整数可以通过下面的式子获得: Num=Pk11Pk
阅读全文
摘要:飞翔 题意:给你一个含有n(n<=1000)个数的数列,问这个数列中是否存在四个不同的数a,b,c,d,使a+b+c=d;若存在则输出最大的d 思路:子集最多有1000C4*4个,时限只有一秒。折半枚举有些讲究,以前折半都是在集合上折半,这次是在等式上。将等式变化为 a + b = d – c,预先
阅读全文
摘要:题目 题意:在一个集合中找到一个非空子集使得这个子集元素和的绝对值尽量小,和绝对值相同时保证元素个数尽量小 分析:1.二分枚举的思想,先分成两个集合; 2.枚举其中一个集合中所有的子集并且存到数组中,并排序; 3.枚举另一个集合中所有的子集并且与第一个集合中的合适子集相加(可以通过二分查找在数组中找
阅读全文
摘要:题目 大致题意 大致题意 n表示要进行n次操作,接着给出三个字符串,表示三个人初始拥有的串。每次操作要替换字符串中的字母,询问最后在游戏中曾出现过的相同的子串谁最多。 思路 (1) 讨论最多的子串,肯定是全部转换成单个的字母是最优的,这样就把子串转换成了讨论出现过最多的字母的问题。接下来只需要模拟,
阅读全文
摘要:Description 求最长上升子序列。 求最长上升子序列。 Input 单测试用例。 第一行是一个正整数n,0 < n ≤ 3000 第二行是n个非负整数。 单测试用例。 第一行是一个正整数n,0 < n ≤ 3000 第二行是n个非负整数。 Output 两行结果。 第一行是最长上升子序列的长
阅读全文
摘要:Description 给出一个m×n的矩阵,请输出它的最大子矩阵和。 给出一个m×n的矩阵,请输出它的最大子矩阵和。 Input 多测试用例,每个测试用例: 第一行是两个正整数m和n,表示该矩阵的行数和列数。1 < m, n < 400 接下来m行,每行n个整数,空格分隔。 多测试用例,每个测试用
阅读全文
摘要:Description 给出n个整数序列(可能为负数)组成的序列a1, a2, ..., an,求该序列形如的子段和的最大值。当所有整数均为负数时,定义最大子段和为0。 给出n个整数序列(可能为负数)组成的序列a1, a2, ..., an,求该序列形如的子段和的最大值。当所有整数均为负数时,定义最
阅读全文
摘要:Description 背包体积为C,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品要么至多取1件,要么至多取Mi件(Mi > 1),要么数量无限,在所装物品总体积不超过C的前提下所装物品的价值的和的最大值是多少? 背包体积为C,给出N个物品,每个物品占用体积为Vi,价值为Wi,每个物品
阅读全文
摘要:(1)二进制的优化 这是一个多重背包的模板,也是十分好用的一种模板,因为这个比直接拆除01 背包来做 要省些时间。这是为啥呢,首先先由我讲一下为什么能换成01 背包吧。 举个例子。假如给了我们 价值为 2,但是数量却是10 的物品,我们应该把10给拆开,要知道二进制可是能够表示任何数的,所以10 就
阅读全文
摘要:Description 有重量和价值分别为 wi ( 1 ≤ wi ≤ 1015 )、vi ( 1 ≤ vi ≤ 1015 ) 的 n (1 ≤ n ≤ 40 )个物品。从这些物品中挑选总重量不超过 C (1 ≤ C ≤ 1015)的物品,求所选挑选方案中价值总和的最大值。 有重量和价值分别为 wi
阅读全文
摘要:题目链接:http://codeforces.com/contest/979/problem/C 大致题意 给出n个点,有n-1个边将他们链接。给出x,y,当某一路径中出现x....y时,此路不通。路径(u,v)和(v,u)是不同的。 思路:一开始大神是给每个点都用BFS找出能到的点的路径,同时记录
阅读全文
摘要:题目:http://172.21.85.56/oj/exercise/problem?problem_id=21568 题目大意:老板需要你帮忙浇花。给出N滴水的坐标,y表示水滴的高度,x表示它下落到x轴的位置。 每滴水以每秒1个单位长度的速度下落。你需要把花盆放在x轴上的某个位置,使得从被花盆接着
阅读全文
摘要:题目:http://codeforces.com/contest/602/problem/B 题意 :给出一个含有 n 个数的区间,要求找出一个最大的连续子区间使得这个子区间的最大值和最小值的差值不超过 1 ,最后输出这个子区间的长度。 分析: 因为区间里面的数只能相差1,我就用fs与fx来表示这个
阅读全文
摘要:链接:https://www.nowcoder.com/acm/contest/27/F 双11又到了,小Z依然只是一只单身狗,对此他是如此的苦恼又无可奈何。 为了在这一天脱单小Z决定向女神表白,但性格腼腆的小Z决定隐晦一点,截取一段包含'L'、'O'、'V'、'E'的英文。(顺序不限) 小Z想起之
阅读全文
摘要:求两个三位数乘机是回文数的最大值 其实就是求 10000-998001之间、可由两个三位数的乘机的最大回文数 abccba然后简化为:100000a + 10000b + 1000c + 100c + 10b + a然后:100001a + 10010b + 1100c分解11,得到:11(9091
阅读全文
摘要:13195的质数因子有5,7,13和29. 600851475143的最大质数因子是多少? 这里可以肯定的是:1.数字很大,绝对不能暴力。2.如果这是一到OJ题,那么我们的目的就是尽量缩小这个数,减少计算量。 我们都知道,任何一个合数都是可以由他的所有质因素相乘得到的,比如15=3*3*3*3*3,
阅读全文
摘要:尺取法:顾名思义,像尺子一样取一段,借用挑战书上面的话说,尺取法通常是对数组保存一对下标,即所选取的区间的左右端点,然后根据实际情况不断地推进区间左右端点以得出答案。之所以需要掌握这个技巧,是因为尺取法比直接暴力枚举区间效率高很多,尤其是数据量大的 时候,所以尺取法是一种高效的枚举区间的方法,一般用
阅读全文
摘要:这是一道天坑题,不存在NO的情况,都是YES; 所以如果K是偶数就先放左边,如果K是奇数就从中间开始放; 题意: 有一个城市有4行n列,n是奇数,有一个村庄在(1,1),村民的活动地点是(4,n); 有一个村庄在(4,1),村民的活动地点是(1,n); 现在要修建k个宾馆,不能修建在边界上,问能否给
阅读全文
摘要:康托展开是一个全排列到一个自然数的双射,常用于构建hash表时的空间压缩。设有n个数(1,2,3,4,…,n),可以有组成不同(n!种)的排列组合,康托展开表示的就是是当前排列组合在n个不同元素的全排列中的名次。 逆康托展开给一个数字求出第几个排列组合。 给出n和操作数k,要求资瓷: P x求n的第
阅读全文
摘要:Description Here, we want to solve path planning for a mobile robot cleaning a rectangular room floor with furniture. Consider the room floor paved wi
阅读全文
摘要:首先,我们得知道一定定理,如果10的n次方,那这个n就是多少位,对不对!对,这就很秒了 比如如果求一个N的数,N=10的log10N的次方,那么它的位数就是log10 N,流弊!! 有人说log10 怎么打?很简单c++的库函数里面有 log10(100)的返回值就是2,log(999)的返回值是二
阅读全文
摘要:素数的判断其实谁都会,所以这篇跳过简单的素数判断,直接学习如何快速判断1到N的素数,以及判断大数据是否为素数。 (1)埃氏筛法 现在我们先学习埃氏筛选法,此法实用与大规模判断素数,比如1到N的素数有那些啊,等等等等。 这个算法流弊哦,与辗转相除法一样古老哇。 首先,将2到n范围内的所有整数写下来。其
阅读全文
摘要:Description It's Bessie's birthday and time for party games! Bessie has instructed the N (1 < N < 100,000) cows conveniently numbered 1..N to sit in a
阅读全文
摘要:Description What would a programming contest be without a problem featuring an ASCII-maze? Do not despair: one of the judges has designed such a probl
阅读全文
摘要:这是一道意想不到的规律题。。。。。。。。。。。。或许是我比较菜,找不到把。 Description Farmer John commanded his cows to search for different sets of numbers that sum to a given number. T
阅读全文