04 2018 档案

摘要:http://bailian.openjudge.cn/practice/2815?lang=en_US 题意:给你一个地图(二进制处理) 问有几个连通块,与最大连通块的面积。 题解:处理输入时,用四个if位运算判断。连通块模板处理。 阅读全文
posted @ 2018-04-30 12:13 SuuTTT 阅读(215) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1724 题意:最短路的模板,不过每条边加上一个费用,要求总费用不超过k 题解:不能用dijkstra ,直接暴力,dfs维护len和cost。 普通的剪枝:如果当前的cost大于k直接跳出,如果当前的len大于minlen(目前的最优解),跳出。 阅读全文
posted @ 2018-04-30 11:20 SuuTTT 阅读(222) 评论(0) 推荐(0) 编辑
摘要:https://www.nowcoder.com/acm/contest/105/G 题意 :这是一个加强版的斐波那契数列。 给定递推式求F(n)的值(n<1e18),由于这个值可能太大,请对1e9+7取模。 题解:线性代数题。矩阵快速幂 仿照斐波那契的快速幂模板。 算出F(i)与F(i+1)之间相 阅读全文
posted @ 2018-04-27 17:26 SuuTTT 阅读(579) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1011 题意:若干根棍子被截成小段的木棒,现在给你这些木棒,问最短可以拼出的棍子长度。 题解:搜索,dfs(r,m) 二个参数分别代表还剩r个木棒,当前棍子还剩m长度。 从dfs(N,L)搜到dfs(0,0)停止。 棍子从大到小排序 从小到大枚 阅读全文
posted @ 2018-04-26 16:40 SuuTTT 阅读(286) 评论(0) 推荐(0) 编辑
摘要:http://acm.zjnu.edu.cn/DataStruct/showproblem?problem_id=1004 题解:表达式计算 书上的模板 http://acm.zjnu.edu.cn/DataStruct/showproblem?problem_id=1004 题解:表达式计算 书上 阅读全文
posted @ 2018-04-23 20:04 SuuTTT 阅读(329) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.nowcoder.com/acm/contest/104/C来源:牛客网 The Sparrow is for trial, at next bird assizes,we should select a connected subgraph from the whol 阅读全文
posted @ 2018-04-23 16:23 SuuTTT 阅读(209) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.nowcoder.com/acm/contest/104/B来源:牛客网题意:A few days ago, WRD was playing a small game called Salty Fish Go. We can simplify the rules of 阅读全文
posted @ 2018-04-23 16:11 SuuTTT 阅读(231) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.nowcoder.com/acm/contest/104/A来源:牛客网 题目描述 Let be a regualr triangle, and D is a point in the triangle. Given the angle of . Then let AD 阅读全文
posted @ 2018-04-22 23:01 SuuTTT 阅读(354) 评论(0) 推荐(0) 编辑
摘要:链接:https://www.nowcoder.com/acm/contest/104/G来源:牛客网 题目描述 Given n positive integers , your task is to calculate the product of these integers, The answ 阅读全文
posted @ 2018-04-22 22:12 SuuTTT 阅读(254) 评论(0) 推荐(0) 编辑
摘要:题意: 链接:https://www.nowcoder.com/acm/contest/107/G 来源:牛客网 初始的时候小国和小杰各有1个。经过了很久的修炼,汀老师学会了两种魔法,他每次可以动用自己的智慧来使用魔法。 第一个魔法:(小杰变小国)可以将自己的智慧复制和当前小杰一样数量的小国出来; 阅读全文
posted @ 2018-04-22 11:58 SuuTTT 阅读(290) 评论(0) 推荐(0) 编辑
摘要:题意:一个迷宫,起点到终点的路径,不用递归。 题解: 附:之前模仿bfs写的,不知道怎么存路径。。 阅读全文
posted @ 2018-04-20 19:37 SuuTTT 阅读(448) 评论(0) 推荐(0) 编辑
摘要:http://acm.zjnu.edu.cn/DataStruct/showproblem?problem_id=1005 题解:kmp模板题。 如何理解kmp? 背下来就好了 阅读全文
posted @ 2018-04-19 21:06 SuuTTT 阅读(137) 评论(0) 推荐(0) 编辑
摘要:https://www.nowcoder.com/acm/contest/96/H 坑点:INF开太小了。。。 阅读全文
posted @ 2018-04-17 21:19 SuuTTT 阅读(215) 评论(0) 推荐(0) 编辑
摘要:题意:1e5个数围成一个环。现在要输出每个数左右第一个大于它的数的下标。若没有,则输出-1. 题解:单调栈板题。只是要把数据压入栈压两遍来模仿环。 具体分析:考虑一个递减的数列。要找左边最大的数,我们从左到右对于每一个数,只要往回枚举一步就能找到,时间复杂度为O(n); 考虑一个递增的数列。同样用 阅读全文
posted @ 2018-04-17 19:29 SuuTTT 阅读(168) 评论(0) 推荐(0) 编辑
摘要:首先是数学题问题很大,而且现在基本除了 模拟 图论 dp 数据结构 就全是数学题了。 数学题: 找递推公式,找规律,瞎搞的套路还不熟悉,导致周六比赛卡了一道,三道不会。周日训练赛四道不会。 图论:偏序,哈希图什么鬼orz dp,数据结构,二分:没看出来到底用哪个啊QAQ 本周就补一下数学题。 复习一 阅读全文
posted @ 2018-04-17 10:38 SuuTTT 阅读(122) 评论(0) 推荐(0) 编辑
摘要:题意:给你画了一颗树,你要把它的前序输出。 题解:读进到二维数组。边解析边输出。 坑:少打了个-1. 阅读全文
posted @ 2018-04-13 19:58 SuuTTT 阅读(151) 评论(0) 推荐(0) 编辑
摘要:题意:给你1e5个字符串,若前一个的末尾字母等于当前的首字母,则可以连在一起(成语接龙一个意思)判断是否可以将他们连在一起 题解:将首位看作点,单词看作边。变成欧拉回路问题。 判断出入度是否相等,再用并查集判一下连通性 (dfs/bfs也行:随便取一个点,搜索一遍。如果每个点都被标记,则是连通的。) 阅读全文
posted @ 2018-04-13 19:02 SuuTTT 阅读(164) 评论(0) 推荐(0) 编辑
摘要:题意:给你一些任务1~n,给你m个数对(u,v)代表做完u才能做v 让你给出一个做完这些任务的合理顺序。 题解:拓扑排序版题 dfs到底再压入栈。 附:不判环的ac代码(便于理解) 阅读全文
posted @ 2018-04-13 17:46 SuuTTT 阅读(281) 评论(0) 推荐(0) 编辑
摘要:题意:一个迷宫,每个交叉路口有一路标,限制了你从某方向进入该路口所能进入的路口。 题解:1.对于方向的处理:将node多增加一维dir,通过一个const 字符数组 加 上dir_id函数 以及一个方向数组 快速完成从读取字母到模拟路口限制的转换。 2.用一个四位数组记录某节点某方向是否能走, 3. 阅读全文
posted @ 2018-04-13 15:36 SuuTTT 阅读(328) 评论(0) 推荐(0) 编辑
摘要:题意:给你一个地图,求联通块的数量。 题解: for(所有还未标记的‘@’点) 边dfs边在vis数组标记id,直到不能继续dfs。 输出id及可; ac代码: 阅读全文
posted @ 2018-04-12 21:04 SuuTTT 阅读(153) 评论(0) 推荐(0) 编辑
摘要:题意:前序遍历给出两个像素方块。求两个方块叠加后有几个黑色格子。 题解:每次读进来一个方块,就在二维数组上涂色。每次把白色涂黑就cnt++; 具体递归方法是以右上角坐标与边长为参数,每次通过几何规律往下递归一层。 如果当前节点是'p'就继续递归,如果是f,e就说明是叶子结点,e直接返回,f对整个区域 阅读全文
posted @ 2018-04-12 20:39 SuuTTT 阅读(207) 评论(0) 推荐(0) 编辑
摘要:题意:给你一颗二叉树的前序遍历,空子树以-1表示,将左右子树的权值投影到一维数轴上,左儿子位置为根位置-1,右儿子+1求个个整点上的和; 题解:递归,整个过程只需维护一个sum数组。 代码: 阅读全文
posted @ 2018-04-12 19:07 SuuTTT 阅读(143) 评论(0) 推荐(0) 编辑
摘要:题意:判断某个天平是否平衡,输入以递归方式给出。 题解:递归着输入,顺便将当前质量作为 &参数 维护一下,顺便再把是否平衡作为返回值传回去。 坑:最后一行不能多回车 附:天秀代码 阅读全文
posted @ 2018-04-12 17:54 SuuTTT 阅读(146) 评论(0) 推荐(0) 编辑
摘要:题意:给你中序后序 求某叶子节点使得从根到该节点权值和最小。若存在多个,输出其权值最小的那个。 题解:先建树,然后暴力dfs/bfs所有路径,取min 技巧:递归传参数,l1,r1,l2,r2, sum,root, 代码: 阅读全文
posted @ 2018-04-12 17:30 SuuTTT 阅读(183) 评论(0) 推荐(0) 编辑
摘要:题意:给你一些字符串,代表某个值被插入树中的位置。让你输出层序遍历。 题解:动态建树。 由于输入复杂,将输入封装成read_input。注意输入函数返回的情况 再将申请新节点封装成newnode(). 最后层序输出直接用bfs实现。 坑:我把ans.clear放到主程序的if里面,导致某特定情况无法 阅读全文
posted @ 2018-04-12 16:10 SuuTTT 阅读(131) 评论(0) 推荐(0) 编辑
摘要:题意:判断出栈顺序是否合法 题解:两个指针,A指向入栈序列,B指向出栈。 的分三种情况:if 1.A==B :直接入栈加出栈即可A++,B++ else 2.和栈顶相同,直接出栈A==stack.top A++,stack.pop else 3. 都不符合 压入栈stack.push(A) 阅读全文
posted @ 2018-04-12 10:55 SuuTTT 阅读(150) 评论(0) 推荐(0) 编辑
摘要:题意:有一排box,各有不同的颜色。你可以通过点击某个box使得与其相邻的同色box全部消掉,然后你可以得到的分数为消去长度的平方,问怎样得到最高分? 题解:考虑用一维dp,/*dp[i]为1~i个block(我们称颜色相同的一段box为一个block)所能得到的最大得分*/发现无法递推。 考虑用二 阅读全文
posted @ 2018-04-11 14:59 SuuTTT 阅读(173) 评论(0) 推荐(0) 编辑
摘要:第一种是用以前状态更新当前状态(人人为我) 第二种是用当前状态更新以后状态(我为人人) 都是n^2代码: 对于人人为我的更新方法,可以用数据结构储存“人人”对其进行线性\二分优化。 阅读全文
posted @ 2018-04-11 13:53 SuuTTT 阅读(278) 评论(0) 推荐(0) 编辑
摘要:题意:你有无数个长度可变的区间d 满足 2a<=d<=2b且为偶数. 现在要你用这些区间填满一条长为L(L<1e6且保证是偶数)的长线段。 满足以下要求: 1.可变区间之间不能有交集,且不能超过长线段的左右边界 2.长线段上有若干短线段,给出他们的起始点与终点。你要保证对于任意一条短线段,你的某个 阅读全文
posted @ 2018-04-10 21:18 SuuTTT 阅读(166) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=3026 题意:给你一个迷宫,里面有 ‘S’起点,‘A’标记,‘#’墙壁,‘ ’空地。求从S出发,经过所有A所需要的最短路。你有一个特殊能力,当走到S或A时可以分身出任意多个人一起走。计算路程时就是所有人的总路程之和。 题解:想一下,是裸的最短路套 阅读全文
posted @ 2018-04-10 09:55 SuuTTT 阅读(109) 评论(0) 推荐(0) 编辑
摘要:题意:求一个无向图的最小生成树,如果有多个最优解,输出"Not Unique!" 题解: 考虑kruskal碰到权值相同的边: 假设点3通过边(1,3)连入当前所维护的并查集s。 然后有一条边(下图蓝色的边)满足: 1.长度等于(1,3) 2.一端连到3,一端连入S。 那么该边可以替换掉(1,3)。 阅读全文
posted @ 2018-04-09 20:46 SuuTTT 阅读(133) 评论(0) 推荐(0) 编辑
摘要:题意:找串的最长回文字串(连续) 题解:manacher版题 一些理解:首位加上任意两个字符是为了判断边界。 本算法主要是为了 1.省去奇偶分类讨论。 2.防止形如aaaaaaa的串使得暴力算法蜕化为n^2; 阅读全文
posted @ 2018-04-09 19:44 SuuTTT 阅读(113) 评论(0) 推荐(0) 编辑
摘要:两个模板: kruskal prim 阅读全文
posted @ 2018-04-08 22:25 SuuTTT 阅读(163) 评论(0) 推荐(0) 编辑
摘要:题意:中文版https://vjudge.net/problem/UVA-400#author=Zsc1615925460 题解:首先读取字符,维护一个最长字符串长度M,再排序。 对于输出,写一个print(string s,int len,char c) 函数,用来输出s,不足len的用c补齐。 阅读全文
posted @ 2018-04-08 17:53 SuuTTT 阅读(135) 评论(0) 推荐(0) 编辑
摘要:http://bailian.openjudge.cn/practice/4152?lang=en_US 题解 :dp[i][j]代表前i个字符加j个加号可以得到的最小值,于是dp[i+k[j+1]可以由dp[i][j]得到。具体转移方程看代码。 然后数字是50位所以要用高精度类。自己写了一个 坑: 阅读全文
posted @ 2018-04-08 13:44 SuuTTT 阅读(510) 评论(0) 推荐(0) 编辑
摘要:http://bailian.openjudge.cn/practice/1088?lang=en_US 题解: 阅读全文
posted @ 2018-04-08 11:21 SuuTTT 阅读(181) 评论(0) 推荐(0) 编辑
摘要:题意:模拟栈,正常pop,push,多一个merge A B 形象地说就是就是将栈B堆到栈A上。 题解:直接用list 的pop_back,push_back,splice 模拟, 坑:用splice,第一次超时,正要大改 发现是cin超时。。。 阅读全文
posted @ 2018-04-07 19:34 SuuTTT 阅读(542) 评论(0) 推荐(0) 编辑
摘要:http://acm.zju.edu.cn/onlinejudge/showContestProblem.do?problemId=5738 题意 给你一个map 每个格子里有一个红绿灯,用0,1表示状态。当所在格子为0时只能上下移动,为1时左右移动。人一秒动一次,并且每一秒必须移动,灯每秒改变依次 阅读全文
posted @ 2018-04-07 18:27 SuuTTT 阅读(424) 评论(0) 推荐(0) 编辑
摘要:存个代码 阅读全文
posted @ 2018-04-07 14:01 SuuTTT 阅读(243) 评论(0) 推荐(0) 编辑
摘要:题意:中文 https://vjudge.net/problem/POJ-1661 题解:设两个dp数组,dpl[i]存 从第i块板左边到地上所花的最短时间,dpr[i]存右边的。 将所有板按高度排序 ,从地面到人分别编号为0,1~n, n+1 坑:dp方程写错了个字母。 一开始只用了一个dp数组( 阅读全文
posted @ 2018-04-06 19:45 SuuTTT 阅读(195) 评论(0) 推荐(0) 编辑
摘要:关于set_union系列函数(需要有序)的第五个参数,output iterator。 网上都是用inserter(c,c.begin()) 但vs会编译报错 所以改成了back_inserter,(不能用set存) //发现auto可以输出数组。。。 阅读全文
posted @ 2018-04-06 16:53 SuuTTT 阅读(213) 评论(0) 推荐(0) 编辑
摘要:用栈来模拟递归的技巧 阅读全文
posted @ 2018-04-03 12:19 SuuTTT 阅读(373) 评论(0) 推荐(0) 编辑
摘要:http://poj.org/problem?id=1191 题意:中文题。 题解: 1.关于切割的模拟,用递归 有这样的递归方程(dp方程):f(n,棋盘)=f(n-1,待割的棋盘)+f(1,割下的棋盘) 2.考虑如何计算方差,根据以下方差公式 我们只需算∑Xi 2的最小值//然后将它乘以n,减去 阅读全文
posted @ 2018-04-02 21:39 SuuTTT 阅读(361) 评论(0) 推荐(0) 编辑
摘要:题意:给你一个地图,上面有一些‘X',给你起点终点,让你输出从起点到终点的路径中转向(改变方向)次数最少的路径,注意,不能穿过别的’X'并且可以超过边界 题解:关于超过边界,只要在外围多加一圈‘ ’。然后正常dfs就行。 关于转向次数的记录,每次dfs时传递上一次的方向f,然后进行判断。 技巧:if 阅读全文
posted @ 2018-04-02 20:13 SuuTTT 阅读(316) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示