ACM
文章平均质量分 77
Tezuka1001
这个作者很懒,什么都没留下…
展开
-
动态规划有感
在诸多算法中,我认为动态规划是其中上下限差距最大,也是最有魅力的一种算法,可以很难,很精妙,如鸡蛋掉落;也可以很简单,如斐波那契数列;也可以很经典,如LIS,LCS;也可以很复杂,如数字0-9的数量等等。针对于动态规划,经过一段时间的刷题做个简单的总结。动态规划的关键是状态及转移,而核心则为无后效性,如果有后效性则无法使用动态规划求解。第一步是进行分析,将题目中隐晦的逻辑进行简化或者转化,这点可以说是经验与知识的积累;第二步则是抽取出题目提到的状态,比如股票买卖系列中的,每天的收益,这里天,收益都原创 2020-11-08 15:37:41 · 211 阅读 · 1 评论 -
DLUT OJ 1121 A Easy Problem(贪心,倒序)
1121: A Easy ProblemTime Limit:5000/3000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:48 Accepted:15[Submit][Status][Discuss]Description小薛想吃山楂球原创 2017-11-14 13:54:26 · 362 阅读 · 0 评论 -
Codeforces-876B-Divisiblity of Differences(取模)
B. Divisiblity of Differencestime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard outputYou are given a multiset of n integers. You should select原创 2017-10-17 13:46:43 · 296 阅读 · 0 评论 -
51nod 1174区间中最大的数(线段树)
题目:1174 区间中最大的数题解:线段树。(只是用来学习记录模板的)解决RMQ问题一般有以下方法:1.暴力,优点就是简单,缺点就是很慢了,基本没用2.线段树,初始化的复杂度是O(2n),更新和查询的操作都是O(logn),比较快也比较简单,所以用的比较多。3.Sparse Table(稀疏表),采用了动态规划和二分的思想。相比线段树就是更新比较困难,一般涉及到原创 2017-11-02 14:24:51 · 410 阅读 · 0 评论 -
51nod 1639绑鞋带(组合数学)
1639 绑鞋带基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有n根鞋带混在一起,现在重复n次以下操作:随机抽出两个鞋带头,把它们绑在一起。可以想象,这n次之后將不再有单独的鞋带头,n条鞋带系成了一些环。那么有多大概率刚好所有这些鞋带只形成了一个环?Input仅一行,包含一个整数n (2Output输出一行,为刚好成环的概原创 2017-10-15 20:35:47 · 395 阅读 · 0 评论 -
51nod 1396还是01串(前缀和)
1396 还是01串基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注给定一个0-1串s,长度为n,下标从0开始,求一个位置k,满足0(1) 如果k = 0, s[0..k - 1]视为空串(2) 如果k = n, s[k..n - 1]视为空串(3) 如果存在多个k值,输处任何一个都可以(4) 如果不存在这样的k值,请输出-原创 2017-10-23 20:47:16 · 290 阅读 · 0 评论 -
51nod 1640天气晴朗的魔法(克鲁斯卡尔,并查集)
1640 天气晴朗的魔法题目来源: 原创基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注这样阴沉的天气持续下去,我们不免担心起他的健康。51nod魔法学校近日开展了主题为“天气晴朗”的魔法交流活动。N名魔法师按阵法站好,之后选取N - 1条魔法链将所有魔法师的魔力连接起来,形成一个魔法阵。魔法链是做法成功与否的关原创 2017-10-14 10:10:46 · 329 阅读 · 0 评论 -
51nod 1636 教育改革(动态规划)
题目:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1636题解:其实仔细想想好像这道题也就是DP的题了,因为其他的算法很难应用。但是这里的DP是三维数组的DP,其实我自己估计是不敢这么想的,看了网上大佬的DP数组定义之后,尝试自己推倒了一下递推公式,发现递归公式其实很简单,关键就是这个定义提出的确是不错,还原创 2017-10-30 21:24:24 · 334 阅读 · 0 评论 -
51nod 1625夹克爷发红包(贪心+枚举)
1625 夹克爷发红包基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注在公司年会上,做为互联网巨头51nod掌门人的夹克老爷当然不会放过任何发红包的机会。现场有n排m列观众,夹克老爷会为每一名观众送出普通现金红包,每个红包内金额随机。接下来,夹克老爷又送出最多k组高级红包,每组高级红包会同时给一排或一列的人派发 ,每个高级红原创 2017-10-21 10:14:59 · 293 阅读 · 0 评论 -
51nod 1483 化学变换(暴力,预处理)
1483 化学变换题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有n种不同的化学试剂。第i种有ai升。每次实验都要把所有的化学试剂混在一起,但是这些试剂的量一定要相等。所以现在的首要任务是把这些化学试剂的量弄成相等。有两种操作:· 把第i种的量翻倍,即第i种的量变成2ai。· 把第i种的量减原创 2017-10-12 10:15:50 · 307 阅读 · 0 评论 -
codefoces 868C(二进制,状态压缩)
C. Qualification Roundstime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputSnark and Philip are preparing the problemset for the upcoming原创 2017-10-05 20:47:46 · 353 阅读 · 0 评论 -
51nod 1536不一样的猜数游戏(找规律)
1536 不一样的猜数游戏题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注瓦斯亚和皮台亚在玩一个简单的游戏。瓦斯亚心中想一个整数x,它是1到n之间的整数。然后皮台亚尝试着猜这个数字。皮台亚每次问一个形如这样的问题:这个x是y的倍数吗?这个游戏的流程是这样的:首先皮台亚把所有他想问的形如上述的问题都问出原创 2017-10-04 16:09:51 · 356 阅读 · 0 评论 -
51nod 1418放球游戏(逻辑简化)
1418 放球游戏题目来源: TopCoder基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注有N个球排成一排,每个球都是R、G、B三种颜色之一。现在想重新排列这一排球,你要重复以下过程N次:1)从原来的那排球中的最左侧取出一个球;2)将取出的求插入新的球排列的任意位置,即可以放在最左或最右端,也可以插入那排球的任意两个相邻球之间;原创 2017-10-27 09:25:27 · 393 阅读 · 0 评论 -
51nod 1621花钱买车牌(贪心)
1621 花钱买车牌题目来源: CodeForces基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注一个车牌号由n位数字组成。如果一个车牌至少有k位数字是相同的,那么我们就说这个车牌漂亮的车牌。现在华沙想要改变他自己的车牌,使得他的车牌变得漂亮。当然,改车牌是要花钱的。每改变一位数字所要花费的费用等于当前位上的新旧数字之差的绝对值。那么原创 2017-10-17 15:45:17 · 987 阅读 · 7 评论 -
51nod 1416两点问题(DFS)
题目: 51nod 1416两点问题题解:仔细简化一下题目逻辑,其实就是等价于:在图中寻找一个环路(环路的长度大于等于4),而这个环路必须是所有结点颜色都是相同的,也就是对某种颜色寻找环路的时候,其他的颜色看做断路,就好了。这样就转化成了基础的dfs搜索环路问题了。但是这个环路长度的限制不是很好解决,但是题目的数据量又很小,所以大可以暴力一点,也就是从每一点都开始dfs,寻找的结果就是原创 2017-11-04 11:15:32 · 322 阅读 · 0 评论 -
树的直径(最长的简单路径)
题解:分析一下,由于是树,所以两点之间的路径有且只有一条,为了求出欧拉路,所以必然会向回走,从递归的角度来看,假设x看作一个树根,有t个孩子y1…yt。其中每个孩子为根的子树欧拉路都加起来,然后去掉最长的两条欧拉路作为起点和终点。所以其实就是所有边权重之和的二倍减去树的直径(即树中最长的简单路)。所以此题的关键是求出树的直径,算是经典问题之一,有两种方法。树形dp:dp[x]表示经过x的最长...原创 2019-02-17 13:00:44 · 2360 阅读 · 0 评论 -
树形dp,拆位思想学习
过年了,最近甚为咸鱼,赶紧来练练代码,顺便练练用Java写算法(写的好慢。。)https://ac.nowcoder.com/acm/contest/370/C签到题,只需要记录每行,每列最新的记录,然后对于一个点(x,y)求x行和y列刷新的最大值即可,复杂度O(mn)import java.util.Scanner;public class Main{ static pr...原创 2019-02-10 11:47:57 · 378 阅读 · 0 评论 -
dfs序列思想+LIS Java扩栈
原题链接:https://ac.nowcoder.com/acm/contest/368/B题解:直接从树的角度解决很难,因为不属于一种常用的树形数据结构,考虑dfs的序列的思想,可以将此问题转化为,求出根右左的dfs序列,然后对这个序列求最长上身子序列(LIS)即可解决,复杂度O(nlogn)。需要注意的这个题,用Java写会再dfs的时候,会出现JVM栈溢出,所以只能通过90%,需要扩栈...原创 2019-02-15 17:33:51 · 377 阅读 · 0 评论 -
牛客网-Various Tree(BFS)
链接:https://www.nowcoder.com/acm/contest/106/J来源:牛客网Various Tree时间限制:C/C++ 1秒,其他语言2秒空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld题目描述 It’s universally acknowledged that there’re innumerable tr...原创 2018-04-29 15:58:56 · 295 阅读 · 0 评论 -
manacher算法
字符串常见的匹配算法有kmp算法,但是还有一种求回文串很高效的算法,可以快速到O(n)的,就是manacher算法。manacher算法解决的问题是,给定一个字符串不可增删改(对于可增删改的情况是进行倒序,然后用dp求最长公共序列),求存在的最长回文字符串,朴素的做法是进行枚举对称中心,然后进行两端延伸,复杂度是n^2,在这里manacher算法就很高效。算法思想:核心就是回文串里仍然可能有回文串...原创 2018-04-04 15:38:12 · 195 阅读 · 0 评论 -
二分搜索
二分搜索1.二分查找。最基础的二分应用,在一个按照随机存储的有序序列中,查找某个值,或者刚好大于某个值的数据和刚好小于某个值的数据。复杂度都可以达到log(n)。这个应用没什么难度,唯一需要注意的地方就是二分的实现代码临界条件。需要用到的库函数可能有排序sort,lower_bound和up_bound这三个...原创 2017-04-08 14:25:54 · 282 阅读 · 0 评论 -
并查集
并查集概念: 并查集是一种用来管理元素分类情况的数据结构。并查集可以高效的进行合并和查询操作,但是却无法进行分割操作。既然是数据结构,自然有逻辑结构和存储结构。逻辑结构: 树存储结构: 顺序存储的结构,方便操作。应用:1. 基本应用: 并查集最基础的应用就是在大量的数据中,进行分类。给定任意两个元素,可以高效的判断是否为同一类。参考:HDU121...原创 2017-04-09 15:53:59 · 466 阅读 · 0 评论 -
51nod二级算法题全部题解
首先对二级算法做一个总结吧,大体上都是一些不是很难的题,但是很有助于提高的,毕竟对于我这样的萌新来说。既然题已经刷完了,当然还是写一篇总结,对学到的经验进行一下总结。。。不然下次碰到不会的还是不会就很尴尬了。下面进入正文:1873 初中的算术:就是大数运算,如果想写的同学可以用C++去写写,也不是很难就是麻烦点,就当是练手了,这方面的博客很多直接百度就好了。这里笔者比较懒就直接用Java暴力过了。...原创 2017-09-11 10:18:53 · 865 阅读 · 0 评论 -
家庭房产(并查集)
L2-3 家庭房产(25 分)给定每个人的家庭成员和其自己名下的房产,请你统计出每个家庭的人口数、人均房产面积及房产套数。输入格式:输入第一行给出一个正整数N(≤1000),随后N行,每行按下列格式给出一个人的房产:编号 父 母 k 孩子1 ... 孩子k 房产套数 总面积其中编号是每个人独有的一个4位数的编号;父和母分别是该编号对应的这个人的父母的编号(如果已经过世,则显示-1);k(0≤k≤...原创 2018-03-25 20:13:12 · 1012 阅读 · 0 评论 -
DLUTOJ 1158艾尔大停电(二分答案+预处理DP)
1158: 艾尔大停电Time Limit:5000/3000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:59 Accepted:11[Submit][Status][Discuss]Description在艾尔上,建筑的电能都由原创 2017-11-22 09:19:48 · 1194 阅读 · 0 评论 -
DLUTOJ 1147: 翼神的跑毒之旅(bfs)
1147: 翼神的跑毒之旅Time Limit:4000/2000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:43 Accepted:7[Submit][Status][Discuss]Description翼神沉迷吃鸡,但他的技术和人品只能让他不断跑毒。原创 2017-11-29 10:48:01 · 367 阅读 · 0 评论 -
51nod 1770数数字(找规律)
1770 数数字基准时间限制:1 秒 空间限制:262144 KB 分值: 20 难度:3级算法题 收藏 关注统计一下 aaa ⋯ aaan个a × b 的结果里面有多少个数字d,a,b,d均为一位数。样例解释:3333333333*3=9999999999,里面有10个9。Input多组测试数据。第一行有一个整数T,表示测试数据的数原创 2017-10-09 13:57:50 · 606 阅读 · 0 评论 -
51nod 1562玻璃切割(降维,反向处理)
1562 玻璃切割题目来源: CodeForces基准时间限制:1.5 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注现在有一块玻璃,是长方形的(w 毫米× h 毫米),现在要对他进行切割。切割的方向有两种,横向和纵向。每一次切割之后就会有若干块玻璃被分成两块更小的玻璃。在切割之后玻璃不会原创 2017-09-21 15:02:59 · 501 阅读 · 0 评论 -
51nod-1138 连续整数的和(预处理)
51nod 1138 连续正整数的和原创 2017-05-30 10:04:41 · 441 阅读 · 0 评论 -
51nod 1315 合法整数集问题(预处理)
51nod 1315 合法整数集一个整数集合S是合法的,指S的任意子集subS有Fun(SubS)!=X,其中X是一个固定整数,Fun(A)的定义如下:A为一个整数集合,设A中有n个元素,分别为a0,a1,a2,...,an-1,那么定义:Fun(A)=a0 or a1 or ... or an-1;Fun({}) = 0,即空集的函数值为0.其中,or为或操作。现在给你一个集合Y与整原创 2017-05-27 18:21:35 · 529 阅读 · 0 评论 -
51nod-1279 扔盘子(单调栈)
51nod 1279扔盘子 单调栈原创 2017-05-29 14:57:49 · 692 阅读 · 0 评论 -
ZOJ-3261(并查集续路径压缩,灵活应用)
Connections in Galaxy WarTime Limit: 3 Seconds Memory Limit: 32768 KB In order to strengthen the defense ability, many stars in galaxy allied together and built many bidirectional tunne原创 2017-04-05 21:01:06 · 1228 阅读 · 1 评论 -
HDU 3038(并查集续带权并查集)
上一篇博客,写了对并查集的基本了解和应用,主要是还是从数组的角度去理解并查集,应用也局限于并查集的基础操作,对于大批数据的合并查询功能,这篇博客写了点自己对并查集树角度的理解,和一些稍微复杂的应用。How Many Answers Are WrongTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K原创 2017-03-25 17:11:09 · 491 阅读 · 0 评论 -
CodeForces 724B(暴力枚举)
B. Batch Sorttime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a table consisting of n rows andm colum原创 2017-03-16 19:56:44 · 450 阅读 · 0 评论 -
CodeForces-723B(记录一下自己的失误。。。)
B. Text Document Analysistime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputModern text editors usually show some inform原创 2017-03-12 09:10:51 · 351 阅读 · 0 评论 -
DLUT OJ1085(矩阵快速幂)
1085: Water ProblemTime Limit:3000/1000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:1225 Accepted:119[Submit][Status][Discuss]Description函数 f:Z+→Z原创 2017-03-06 21:31:00 · 348 阅读 · 0 评论 -
DUTOJ-1084(二分答案)
1084: 数学题Time Limit:5000/3000 MS (Java/Others) Memory Limit:163840/131072 KB (Java/Others)Total Submissions:803 Accepted:94[Submit][Status][Discuss]Description现在有两个数组 A和B, 分别包含原创 2017-03-09 20:15:23 · 481 阅读 · 0 评论 -
CodeForces 754B(模拟)
B. Ilya and tic-tac-toe gametime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputIlya is an experienced player in tic-tac-toe on t...原创 2017-02-04 11:48:21 · 640 阅读 · 0 评论 -
POJ 2236(并查集)
Wireless NetworkTime Limit: 10000MS Memory Limit: 65536KTotal Submissions: 26276 Accepted: 10939DescriptionAn earthquake takes place in Southeast Asia. The ACM (Asia Cooperated Medical team) have set原创 2017-03-19 16:30:15 · 353 阅读 · 0 评论 -
51nod一级算法题全部题解
51nod一级算法题1001数组中和等于k的数对:对数组排序,枚举其中一个数,然后二分对应的另一个数。1002数塔取数问题:初等的动态规划,自底向上进行更新就好。1003阶乘后面0的数量:分析可以发现,只需要统计5,5^2,5^3...的倍数在n中出现的次数,最后相加就是结果。#include#include#include#include#include原创 2017-05-10 15:47:47 · 1455 阅读 · 0 评论