01 2017 档案
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1153 题意:中文题诶~ 思路:一个比较简单的方法是dfs隐式图搜索,不过用单调队列会快一点 1.先说一下隐式图搜索吧: 假设所有元素都满足条件的话,那么B数组元
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1127 题意:中文题诶~ 思路:尺取法 维护一个队列,若当前队首的元素在后面出现了,那么我们就将其删除,若当前队列里含有26个字母,我们就记录其size。 取所有
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1117 题意:中文题诶~ 思路:简单huffman tree 维护一个优先队列,每次合并两个最小元素。。 代码:
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1241 题意:中文题诶~ 思路:通过观察我们不难发现就是找连续上升子序列,答案就是n-最长连续上升子序列长度; 注意:我们要找的是3, 4, 5, 6这样的连续上
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1103 题意:中文题诶~ 思路:抽屉原理 对于两个数a, b, 若a=b(modx),那么(a-b)%x=0; 所以求满足题意的数列,我们可以在连续子序列里面找到
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1102 题意:中文题诶~ 思路:单调栈/预处理 (这篇博客就不细写了啦,只给出代码和转过来的两篇不错的题解,好困了~) 单调栈:http://blog.csdn.
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1101 题意:中文题诶~ 思路:dp 我们用dp[i][j]存储前i中币值总价值为j的方法数,那么动态转移方程式为: if(j>=gg[i]) //放的下第i中币
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1100 题意:中文题啦~ 思路:算斜率不用多说吧?本题唯一一个小问题是数据量是1e4,O(n^2)可能超时,我们可以用个小技巧来解决这个问题; 对这些点用x坐标排
阅读全文
摘要:题目链接:http://poj.org/problem?id=3191 题意:将一个数转换为-2为基数的数 思路:套路,看代码就好了 代码:
阅读全文
摘要:题目链接:http://poj.org/problem?id=3186 题意:给一行n个数,每次可以取出行首或者行末的数,如果第ai是第i次取出的,可以得到ai*i的收益,求最大的总收益; 思路:区间dp 我们可以用dp[i][j]表示当前是取出第i个行首元素,第j次取出行尾元素,那么不然想到动态转
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1065 题意:中文题诶~ 思路: 解法1:set容器,将所有前缀和存储到set和sum数组里,再用set.upper_bound()查找sum[i]后面第一个大于
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1043 题意:中文题诶~ 思路:数位dp 我们用dp[i][j]来存储长度为2*i且一半和为j的所有情况(包括前导0的情况),为了方便我们现在只讨论其一半的和的情
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1035 题意:中文题诶~ 思路:求满足 10^k=1(mod x) (k<=x) 的最小k(不懂的看这里:http://w3.math.sinica.edu.tw
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021 题意:中文题诶~ 思路:区间dp 我们用num[i]存储前i个元素的和,用dp[i][j]存储合并从第i个到第j个元素的代价,那么有动态转移方程式为: d
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1521 题意:中文题诶~ 思路: 我们先看一下set容器的三个库函数:
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1489 题意:中文题诶~ 思路:dfs 首先我们要通过攻击第1个人和倒数第2个人来杀死第一个和最后一个人。 接下来我们考虑如何最高效的杀死中间的人: 假设当前我们
阅读全文
摘要:题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1428 题意:中文题诶~ 思路:贪心 问最少要多少教室就是求最多有多少个时间段产生了交集咯。我们先用结构体存储区间并将其按照左端点升序排列,若左端点相同则按右端点升
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1315 题意:中文题诶~ 思路:位或(|)运算是二进制位有一个为1就为1,否则为0.你们我们不难想到如果大于k的元素加入运算中其结果一定大于k, 与k异或结果大于
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1279 题意:中文题诶~ 思路: 就想短板效应一样,很显然决定当前盘子能否到达高度x位置的是井口到x位置的最窄地方能否放下盘子,那么我们可以用 vis[i]存储井
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1138 题意:中文题诶~ 思路:假设 x=a1+(a1+1)+...+(a1+n-1)=n*a1+(n-1)*n/2; 所以:a1=(2*x-(n-1)*n)/(
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1126 题意:中文题诶~ 思路:构造矩阵: ( 0, 1 )^n-1 * ( f0, f1 ) ( b, a ) ( f1, f2 ) 代码:
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1119 题意:中文题诶~ 思路:这题数据比较大直接暴力肯定是不行咯,通过一部分打表我们不难发现这个矩阵就是由两个杨辉三角构成的,那么求f(n, m)就是求组合数c
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1092 题意:中文题诶~ 思路: 解法1:最坏的情况就是在原字符串的右边添加该字符串的倒序字符串咯,长度为a.size(),不难想到原字符串和其倒序字符串可能存在
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1067 题意:中文题诶~ 思路:直接规律就好了... 代码:
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1049 题意:中文题诶~ 思路:本题和51nod1049(题解)类似,不同的是本题的数列是一个环; 我们可以这样想,取得最大和的子段有两种情况: 1.从第i个元素
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1042 题意:中文题诶~ 思路:这道题和前面的51nod1009好像,直接套用那个算法也是能ac的,不过我还是喜欢换个口味; 求a, b之间个数字出现的次数。可以
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1031 题意:中文题诶~ 思路:对于第x块骨牌的情况,我们用a[x]表示其方法数;其比x-1块骨牌时多了一块骨牌,多出的骨牌有两种放法: 1.我们可以直接将其竖着
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1024 题意:中文题诶~ 思路:要是能求出a^b的值来就好了。。a<=100, b<=100,直接求显然是相当麻烦的; 高中数学学过对数,对于指数问题我们可以考虑
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1010 题意:中文题诶~ 思路:求第一个比 x (1<=x<=1e18)大或者等于的数y, 且y的因子只有2, 3, 5,即y=pow(2, i)*pow(3,
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1007 题意:中文题诶~ 思路:尽量将一个数组分成两个相等的部分,就是从原数组中选出一些元素使其和尽量接近所有元素的和的一半啦.至于如何选元素,我们可以用01背包
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1347 题意:中文题诶~ 思路:稍推理一下就可以发现字符串a是对偶串是其可以由对偶串旋转得到的充要条件; 代码:
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1305 题意:中文题诶~ 思路:1e5的数据直接暴力肯定是不行的,我们不难想到: (a+b)/(a*b)的结果只有4种情况: 1.a=b=1, 结果为2; 2.
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1091 题意:中文题诶~ 思路:贪心; 我们先将数据按照左端点升序排列,对于左端点一样的区间我们再按照右端点升序排列;其实对于左端点相同的区间影响答案的只是其中右
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1009 题意:中文题诶~ 思路:分别考虑各个数位上出现1的次数,再求和就好了.. 注意当前数位上数字为0, 1, 2~9三种情况的计数方法略有不同,想到这里其他的
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1002 题意:中文题诶~ 思路:简单dp 从底层往上递推,每个节点的最大和为当前节点的值加上两个儿子中较大的值; 状态转移方程式为:dp[i][j]=max(dp
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1459 题意:中文题诶~ 思路:带权值的最短路,这道题数据也没啥特殊,spaf,floyd, dijkstra 都可以过,我这里就写个dijkstra好了...
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1265 题意:中文题诶~ 思路:假设现有a, b, c, d四个点,若直线 ab, ac, ad线性相关,那么有a, b, c, d共线; 那么我们如何判断其是否
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1264 题意:中文题诶~ 思路:对于直线a1a2, b1b2,我们可以通过跨立实验判断其是否相交(通过计算斜率也可以啦,不过好像有点麻烦); 其公式为:s=((向
阅读全文
摘要:题目链接:https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1240 题意:中文题诶~ 思路:直接暴力筛选就好了。。。 代码:
阅读全文

浙公网安备 33010602011771号