解题报告
文章平均质量分 84
code_lxm
默默敲码中~~~
展开
-
NEERC 2016年B题 Binary code
读研以后好久没有研究算法竞赛的题目了。这段时间算法课,刚好作业是要讲算法,就选了一道题目研究了一下,感觉还是蛮有意思的。但是说实话本弱鸡太菜了,靠自己肯定解决不了这么难的题,就参考了别人的代码啦(这个也找了半天,有好多人的实现都没看懂)。而且这个过程也接触到了以前没有接触过的构图技巧,叫什么前后缀优化建图,还是很有意义的。题目链接(里面B题):https://codeforces.com/...原创 2019-10-29 19:02:11 · 479 阅读 · 1 评论 -
poj1226(哈希)
点击打开题目链接大意:多组数据,每组n个字符串,寻找最长的X,使得对n个字符串中的任意一个,X或者X反转过来的字符串是其子串。(输出X的长度即可)思路:这道好像KMP或者后缀数组都能做,但我还是习惯用哈希。此题可以先二分这个长度(显然如果某个长度满足那么小于这个长度的串也是能找到的),不妨记这个长度为len。然后呢,以第一个字符串为标准,正一遍反一遍扫过去得到该字符串中,以原创 2017-05-22 23:23:04 · 282 阅读 · 0 评论 -
poj2524(并查集)
点击打开题目链接大意:多组数据。每组数据中,n个学生,每个学生信最多一种教。给出m对学生信息,每对中两个学生信的教一样。求这n个学生信教种数最多有多少。思路:并查集,基础练手题代码如下:import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream原创 2017-05-23 19:27:27 · 322 阅读 · 0 评论 -
poj2528(离散化+线段树)
点击打开题目链接大意:n(n 求出最后还能看见多少张海报。思路:离散化,根据所输数据处理,分成len段。然后对于各个海报,二分求得其占据第a段到第b段。 然后,利用线段树,区间染色(比如第i张海报,相当于在区间上染色i)。 最后,求出所有区间上不同颜色数。代码如原创 2017-05-23 20:38:03 · 295 阅读 · 0 评论 -
poj2001(Trie树)
点击打开题目链接大致题意:给定一系列单词,为每个单词寻找最短前缀使其能被唯一标识,与其他单词都区分开来网上百度出的几道Trie树的题目发现用容器,比如HashMap等就可以做,但是这道似乎就不行了,相当来说应该是Trie树的典型应用题。思路比较简单,就是Trie树建立,结点统计被几个单词占用了,然后再对每个单词遍历一遍Trie树找到第一个结点只被该单词占用的(即该结原创 2017-05-12 19:39:12 · 382 阅读 · 0 评论 -
poj2019(二维线段树)
点击打开题目链接大致题意:给定一个n*n矩阵以及k个查询。每个查询中给出两个数x,y,则该查询询问以第x行第y列为左上角的b*b矩阵中元素最大值与最小值之差。思路:二维问题简单化,可先考虑一维的情形,即考虑区间内元素最大最小值问题。这个可以用RMQ解决,当然,写线段树也可以,这道题我就直接以线段树为基础了。主要的式子就是maxval[o]=max(maxval[o*原创 2017-05-13 20:50:49 · 432 阅读 · 0 评论 -
poj1659(纯搜索)
题目一道中文题,应该比较好理解了吧~~~这道用搜索,就是一个一个湖泊过去,搜索这些湖泊与哪些湖泊相连,动态更新邻接矩阵以及各个湖泊剩余与其有水路相连的未确定湖泊数(这里用brr数组)。而且,对于第i个湖泊,因为已经搜索了前面i-1个湖泊,这i-1个湖泊与该湖泊的水路相连状态也就确定了。所以就直接从第i+1个湖泊搜下去,搜brr[i]个。相当于平常的求n个数中取k个的组合方案问题多了一层原创 2017-05-05 22:49:21 · 265 阅读 · 0 评论 -
poj1200(字符串哈希)
点击打开题目链接题意就是,给出一个字符串,里面有NC个不同字符,求其中长度为n的不同子字符串个数差不多就是字符串的哈希算法的一道简单应用题了,《挑战程序设计竞赛》书上第373页开始有相关内容其中,假设字符串C=c1c2...cm,选取两个合适的互素常数b和h,可定义哈希函数H(c)=(c1*b^(m-1)+c2*b^(m-2)+c2*b^(m-3)+...+cm*b^0) mod原创 2017-05-07 15:04:54 · 452 阅读 · 0 评论 -
poj1952(经典dp题)
点击打开题目链接下面是别处找来的中文翻译版【问题描述】 “逢低吸纳”是炒股的一条成功秘诀。如果你想成为一个成功的投资者,就要遵守这条秘诀:"逢低吸纳,越低越买"这句话的意思是:每次你购买股票时的股价一定要比你上次购买时的股价低.按照这个规则购买股票的次数越多越好,看看你最多能按这个规则买几次。给定连续的N天中每天的股价。你可以在任何一天购买一次股票,但是购买时的股价一原创 2017-05-07 21:03:01 · 782 阅读 · 0 评论 -
poj1949(拓扑,dp)
点击打开题目链接大意:有n个任务,第i个任务需要时间xi来完成,并且第i个任务必须在它 “前面的” 某些任务完成之后才能开始。给你任务信息,问你最短需要多少时间来完成任务。这道题做完了以后感觉分类不太清晰,看了网上,有说拓扑排序,大多都是说是dp。我先是想到拓扑排序的,感觉递推自然而然就用上了,dp[i]=max(dp[j]+t[i]) (j是i之前要完成的原创 2017-05-08 17:03:57 · 314 阅读 · 0 评论 -
poj3977(折半搜索)
点击打开题目链接多数据集,每个数据集给出不超过35个数,求其中非空子集使得该子集数字和的绝对值最小。如果有多个这样的子集,取元素数目最少的。最后输出该子集中数字的和的绝对值,以及子集所含元素数目。35个数,容易想到折半,对半分开搜索,这样的话对于某一半的序列单纯枚举各数选与不选,差不多就是2^17种,复杂度显然可以接受。这道题思路就是前一半先搜完(各个元素枚原创 2017-05-08 22:34:12 · 551 阅读 · 0 评论 -
第七届 蓝桥杯 决赛 碱基(哈希,不保证对)
碱基生物学家正在对n个物种进行研究。其中第i个物种的DNA序列为s[i],其中的第j个碱基为s[i][j],碱基一定是A、T、G、C之一。生物学家想找到这些生物中一部分生物的一些共性,他们现在关注那些至少在m个生物中出现的长度为k的连续碱基序列。准确的说,科学家关心的序列用2m元组(i1,p1,i2,p2....im,pm)表示,满足:1且对于所有q(0原创 2017-05-09 18:46:22 · 2119 阅读 · 0 评论 -
蓝桥杯 Log大侠 题解
标题:Log大侠 atm参加了速算训练班,经过刻苦修炼,对以2为底的对数算得飞快,人称Log大侠。 一天,Log大侠的好友 drd 有一些整数序列需要变换,Log大侠正好施展法力... 变换的规则是: 对其某个子序列的每个整数变为: [log_2 (x) + 1] 其中 [] 表示向下取整,就是对每个数字求以2为底的对数,然后取下整。原创 2017-05-09 22:02:19 · 1272 阅读 · 1 评论 -
poj2440(矩阵快速幂)
点击打开题目链接大意:L位由0和1组成的基因,基因中不能包含子串101以及111,求这样的基因数(L思路:10^8,果断快速幂。然后不包含101及111,不妨用f[i,k]表示满足条件,共含i位,且末三位为k的基因数然后按k分情况进行递推。例如:f[i,000]=f[i-1,100]+f[i-1,000],f[i,010]=f[i-1,001](不能是101)等等然原创 2017-05-22 17:42:50 · 257 阅读 · 0 评论 -
hdu6242(随机化)
题目链接:点击打开链接大致题意:给出N个不同的点,让你找出一个点P使得其到至少⌈N/2⌉个点的距离均为R思路:先解决较简单情形,比如N=1,2时可以考虑在所给点中随便选一个点,取距离为0即符合题意而N=3,4时则不妨取第一个点和第二个点的中点,然后距离取两者到其中点的距离然后N>=5,则P点至少要到其中三个点距离相同显然,如果这三点共线,是达不到上述要求的而题目保证至少存在这样一个P,所以若...原创 2018-05-09 21:59:41 · 600 阅读 · 0 评论 -
poj3080(枚举+kmp)
点击打开题目链接大致题意:多组数据,每组给定m个字符串,求这些字符串最长公共子串。若子串长度小于3,则输出no significant commonalities。若有多个最长公共子串(长度相等),则取其中字典序最小的那个。思路:以第一个字符串为参考标准,假设其长为len,则其有len个前缀。题目就转化为求剩余m-1个字符串与得到的这len个字符串的最长公共前缀原创 2017-05-11 20:48:33 · 813 阅读 · 0 评论 -
poj2955(区间dp)
题目大意:给出一个字符串,求其中最长括号都已匹配好子串(只需知道长度即可)比较简单的区间dp,对于f[i][i+1],如果第i个字符与第i+1个匹配则f[i][i+1]=2否则等于0其他的,f[i][j]=max(f[i][k]+f[k+1][j])(分两段考虑),(形式类似(S1)(S2))如果第i个字符与第j个字符匹配,则最优方案中两者可能在同一段,此时f[i][j]=原创 2017-05-02 23:28:44 · 217 阅读 · 0 评论 -
poj1047(树形dp)
题目转化下就是给出一棵树求最少要断掉多少条边才能分隔出一个有p个节点的子树这道树形dp就相对难一点了,我写的中还用到了数组的滚动,整理出来方程即f[root][j]=min{f2[root][j]+1,f2[root][k]+f[node][j-k]}前面那部分,即把root->node这条边分隔开来而后面那部分,即是前面保留k个结点,而以node为根的子树保留j-k个结点原创 2017-05-02 18:57:39 · 214 阅读 · 0 评论 -
小朋友排队 解题报告
问题描述n 个小朋友站成一排。现在要把他们按身高从低到高的顺序排列,但是每次只能交换位置相邻的两个小朋友。 每个小朋友都有一个不高兴的程度。开始的时候,所有小朋友的不高兴程度都是0。 如果某个小朋友第一次被要求交换,则他的不高兴程度增加1,如果第二次要求他交换,则他的不高兴程度增加2(即不高兴程度为3),依次类推。当要求某个小朋友第k次交换时,他的不高兴程度增加k。原创 2017-02-10 10:47:36 · 499 阅读 · 0 评论 -
波动数列 解题报告
问题描述 观察这个数列:1 3 0 2 -1 1 -2 ... 这个数列中后一项总是比前一项增加2或者减少3。 栋栋对这种数列很好奇,他想知道长度为 n 和为 s 而且后一项总是比前一项增加a或者减少b的整数数列可能有多少种呢?输入格式 输入的第一行包含四个整数 n s a b,含义如前面说述。输出格式 输出一行,包含一个整数,表示满足条件的方案数原创 2017-02-10 14:43:56 · 1070 阅读 · 6 评论 -
poj3685 解题报告
原题链接:http://poj.org/problem?id=3685这道题题意就是给定一个n*n的矩阵A,A(i,j)= i2 + 100000 × i + j2 - 100000 × j + i × j,求其中第M小元素思路:这道题是《挑战程序设计竞赛》后面的练习题之一,书上是将该题划分到"查找第K大的值"这一部分那么之后应该如何解决呢?二分答案!假设二分到某数值是va原创 2017-02-28 19:33:31 · 326 阅读 · 0 评论 -
国王的烦恼 解题报告
历届试题 国王的烦恼 时间限制:1.0s 内存限制:256.0MB 问题描述C国由n个小岛组成,为了方便小岛之间联络,C国在小岛间建立了m座大桥,每座大桥连接两座小岛。两个小岛间可能存在多座桥连接。然而,由于海水冲刷,有一些大桥面临着不能使用的危险。 如果两个小岛间的所有大桥都不能使用,则这两座小岛就不能直接到达了。然而,只要这两座小岛的居民能通过其他的桥原创 2017-02-10 17:23:09 · 805 阅读 · 0 评论 -
蚂蚁感冒 解题报告
历届试题 蚂蚁感冒 时间限制:1.0s 内存限制:256.0MB 问题描述 长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。 当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。 这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。原创 2017-02-11 15:32:36 · 680 阅读 · 0 评论 -
城市建设 解题报告
历届试题 城市建设 时间限制:1.0s 内存限制:256.0MB 问题描述 栋栋居住在一个繁华的C市中,然而,这个城市的道路大都年久失修。市长准备重新修一些路以方便市民,于是找到了栋栋,希望栋栋能帮助他。C市中有n个比较重要的地点,市长希望这些地点重点被考虑。现在可以修一些道路来连接其中的一些地点,每条道路可以连接其中的两个地点。另外由于C市有一条河从中穿原创 2017-02-21 13:47:44 · 401 阅读 · 0 评论 -
地宫取宝 解题报告
历届试题 地宫取宝 时间限制:1.0s 内存限制:256.0MB 问题描述X 国王有一个地宫宝库。是 n x m 个格子的矩阵。每个格子放一件宝贝。每个宝贝贴着价值标签。 地宫的入口在左上角,出口在右下角。 小明被带到地宫的入口,国王要求他只能向右或向下行走。 走过某个格子时,如果那个格子中的宝贝价值比小明手中任意宝贝价值都大,小明就可原创 2017-02-14 10:28:52 · 237 阅读 · 0 评论 -
打印十字图 解题报告
思路:这道题本菜一开始确实没有什么头绪,知道是模拟而且对称,但是由于字符要么是.要么是$,感觉比较乱,规律感觉无从下手。网上别人都说该题简单,但是我看代码还是看不懂~~~不过后来看到下面这张图以后就豁然开朗了!(参考:http://blog.csdn.net/u013451048/article/details/43865259)然后呢,就是代码的实现了。首先模拟中间画十字原创 2017-02-15 19:26:13 · 333 阅读 · 0 评论 -
公式求值 解题报告
历届试题 公式求值 时间限制:1.0s 内存限制:256.0MB 问题描述 输入n, m, k,输出下面公式的值。 其中C_n^m是组合数,表示在n个人的集合中选出m个人组成一个集合的方案数。输入格式 输入的第一行包含一个整数n;第二行包含一个整数m,第三行包含一个整数k。输出格式 计算上面公式的值,由于答案非常原创 2017-03-03 21:01:39 · 3052 阅读 · 0 评论 -
斐波那契 解题报告
历届试题 斐波那契 时间限制:1.0s 内存限制:256.0MB 问题描述 斐波那契数列大家都非常熟悉。它的定义是:f(x) = 1 .... (x=1,2)f(x) = f(x-1) + f(x-2) .... (x>2) 对于给定的整数 n 和 m,我们希望求出:f(1) + f(2) + ... + f(n) 的值。但这个值可能非常原创 2017-03-04 17:08:34 · 1774 阅读 · 0 评论 -
邮局 解题报告
历届试题 邮局 时间限制:1.0s 内存限制:256.0MB 问题描述C村住着n户村民,由于交通闭塞,C村的村民只能通过信件与外界交流。为了方便村民们发信,C村打算在C村建设k个邮局,这样每户村民可以去离自己家最近的邮局发信。 现在给出了m个备选的邮局,请从中选出k个来,使得村民到自己家最近的邮局的距离和最小。其中两点之间的距离定义为两点之间的直线距离。原创 2017-03-21 15:45:56 · 741 阅读 · 0 评论 -
算法提高 Problem S4: Interesting Numbers 加强版 解题报告
Problem Description We call a number interesting, if and only if: 1. Its digits consists of only 0, 1, 2 and 3, and all these digits occurred at least once. 2. Inside this number, all 0s occu原创 2017-03-14 19:10:29 · 1264 阅读 · 0 评论 -
poj2441(状压dp)
题目链接:http://poj.org/problem?id=2441,题意相当于给定n个公牛及它们各自想打的篮球场地,求取方案数使得这n个公牛都有场地可打且这些场地均不重复。看完《挑战程序设计竞赛》做的第一道状态压缩动态规划题,状态转移方程相对比较好想。注意这道数据还是比较大,亦用滚动数组~~~一开始我是用n作为第二维进行状态转移的,超时了~~~后来看了讨论,便转为m作为第二维,原创 2017-02-18 11:21:33 · 326 阅读 · 0 评论 -
poj2282(数位dp)
题目这题题目比较好理解,就是统计a,b之间的数中数码0~9分别出现的次数思路:如果a>b不妨将两者互换顺序,这样就相当于a减去1~a-1中数码0~9出现次数。考虑某个数num,令v[i][j]表示该数前i位中j出现的次数,这个比较好算,预处理一下就行了然后呢,用f[i][j]表示1~该数前i位表示的数中j出现的个数则通常情况下f[i][j] = f[i - 1][j]原创 2017-05-02 17:30:36 · 313 阅读 · 0 评论 -
格子刷油漆 解题报告
问题描述 X国的一段古城墙的顶端可以看成 2*N个格子组成的矩形(如下图所示),现需要把这些格子刷上保护漆。 你可以从任意一个格子刷起,刷完一格,可以移动到和它相邻的格子(对角相邻也算数),但不能移动到较远的格子(因为油漆未干不能踩!) 比如:a d b c e f 就是合格的刷漆顺序。c e f d a b 是另一种合适的方案。 当已知 N 时,求总的方案原创 2017-02-08 22:37:10 · 468 阅读 · 0 评论